#  ============LICENSE_START=======================================================
#   Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
#  ================================================================================
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 304
  persistence: {}
  aafEnabled: true

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.db.credsExternalSecret) . }}'
    login: '{{ .Values.db.user }}'
    password: '{{ .Values.db.password }}'
    passwordPolicy: required
  - uid: restserver-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.restServer.credsExternalSecret) . }}'
    login: '{{ .Values.restServer.user }}'
    password: '{{ .Values.restServer.password }}'
    passwordPolicy: required
  - uid: keystore-password
    type: password
    externalSecret: '{{ tpl (default "" .Values.certStores.keyStorePasswordExternalSecret) . }}'
    password: '{{ .Values.certStores.keyStorePassword }}'
    passwordPolicy: required
  - uid: truststore-password
    type: password
    externalSecret: '{{ tpl (default "" .Values.certStores.trustStorePasswordExternalSecret) . }}'
    password: '{{ .Values.certStores.trustStorePassword }}'
    passwordPolicy: required

certStores:
  keyStorePassword: Pol1cy_0nap
  trustStorePassword: Pol1cy_0nap

certInitializer:
  nameOverride: policy-api-cert-initializer
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  fqdn: policy
  fqi: policy@policy.onap.org
  public_fqdn: policy.onap.org
  cadi_latitude: "0.0"
  cadi_longitude: "0.0"
  credsPath: /opt/app/osaaf/local
  app_ns: org.osaaf.aaf
  uid: 100
  gid: 101
  aaf_add_config: >
    echo "export KEYSTORE='{{ .Values.credsPath }}/org.onap.policy.p12'" > {{ .Values.credsPath }}/.ci;
    echo "export KEYSTORE_PASSWD='${cadi_keystore_password_p12}'" >> {{ .Values.credsPath }}/.ci;
    chown -R {{ .Values.uid }}:{{ .Values.gid }} $(dirname {{ .Values.credsPath }});


#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/policy-api:2.5.0
pullPolicy: Always

# flag to enable debugging - application support required
debugEnabled: false

# application configuration
db:
  user: policy_user
  password: policy_user
  service:
    name: policy-mariadb
    internalPort: 3306

restServer:
  user: healthcheck
  password: zb!XztG34

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 20
  periodSeconds: 10
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 20
  periodSeconds: 10

service:
  type: ClusterIP
  name: policy-api
  portName: policy-api
  externalPort: 6969
  internalPort: 6969
  nodePort: 40

ingress:
  enabled: false

flavor: small
resources:
  small:
    limits:
      cpu: 1
      memory: 4Gi
    requests:
      cpu: 100m
      memory: 1Gi
  large:
    limits:
      cpu: 2
      memory: 8Gi
    requests:
      cpu: 200m
      memory: 2Gi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: policy-api
  roles:
    - read
