# Copyright © 2018 AT&T USA
# Copyright © 2020 Huawei
# 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.
#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  nodePortPrefixExt: 304
  aafAgentImage: onap/aaf/aaf_agent:2.1.20
  mariadbGalera:
    nameOverride: mariadb-galera
    serviceName: mariadb-galera
    servicePort: '3306'
    service: mariadb-galera
    internalPort: '3306'
    # mariadbRootPassword: secretpassword
    # rootPasswordExternalSecret: some secret
    #This flag allows SO to instantiate its own mariadb-galera cluster,
    #serviceName and nameOverride should be so-mariadb-galera if this flag is enabled
    localCluster: false
  persistence:
    mountPath: /dockerdata-nfs
  #This configuration specifies Service and port for SDNC OAM interface
  sdncOamService: sdnc-oam
  sdncOamPort: 8282
  #This configuration will run the migration. The configurations are for backing up the data
  #from DB and then restoring it to the present versions preferred DB.
  migration:
    enabled: false
    dbHost: mariadb-galera
    dbPort: 3306
    dbUser: root
    dbPassword: secretpassword
    # dbCredsExternalSecret: some secret
  msbEnabled: true
  security:
    aaf:
      enabled: false
  aaf:
    auth:
      header: Basic c29Ac28ub25hcC5vcmc6ZGVtbzEyMzQ1Ngo=
      encrypted: 3EDC974C5CD7FE54C47C7490AF4D3B474CDD7D0FFA35A7ACDE3E209631E45F428976EAC0858874F17390A13149E63C90281DD8D20456
  app:
    siteName: onapheat
    auth: 3EDC974C5CD7FE54C47C7490AF4D3B474CDD7D0FFA35A7ACDE3E209631E45F428976EAC0858874F17390A13149E63C90281DD8D20456
    defaultCloudOwner: onap
    msoKey: 07a7159d3bf51a0e53be7a8f89699be7
  client:
    certs:
      truststore: /app/client/org.onap.so.trust.jks
      keystore: /app/client/org.onap.so.jks
      trustStorePassword: LHN4Iy5DKlcpXXdWZ0pDNmNjRkhJIzpI
      keyStorePassword: c280b25hcA==
  certificates:
    path: /etc/ssl/certs
    share_path: /usr/local/share/ca-certificates/

readinessCheck:
  wait_for:
    - so-mariadb-config

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-root-pass
    name: &dbRootPassSecretName '{{ include "common.release" . }}-so-db-root-pass'
    type: password
    externalSecret: '{{ ternary .Values.global.mariadbGalera.rootPasswordExternalSecret (default (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) .Values.global.mariadbGalera.rootPasswordExternalSecret) .Values.global.mariadbGalera.localCluster }}'
    password: '{{ .Values.global.mariadbGalera.mariadbRootpassword }}'
  - uid: db-backup-creds
    name: &dbBackupCredsSecretName '{{ include "common.release" . }}-so-db-backup-creds'
    type: basicAuth
    externalSecret: '{{ ternary .Values.global.migration.dbCredsExternalSecret "migrationDisabled" .Values.global.migration.enabled }}'
    login: '{{ ternary .Values.global.migration.dbUser "migrationDisabled" .Values.global.migration.enabled }}'
    password: '{{ ternary .Values.global.migration.dbPassword "migrationDisabled" .Values.global.migration.enabled }}'
    passwordPolicy: required
    annotations:
      helm.sh/hook: pre-upgrade,pre-install
      helm.sh/hook-weight: '0'
      helm.sh/hook-delete-policy: before-hook-creation
  - uid: db-user-creds
    name: &dbUserCredsSecretName '{{ include "common.release" . }}-so-db-user-creds'
    type: basicAuth
    externalSecret: '{{ .Values.dbCreds.userCredsExternalSecret }}'
    login: '{{ .Values.dbCreds.userName }}'
    password: '{{ .Values.dbCreds.userPassword }}'
    passwordPolicy: generate
  - uid: db-admin-creds
    name: &dbAdminCredsSecretName '{{ include "common.release" . }}-so-db-admin-creds'
    type: basicAuth
    externalSecret: '{{ .Values.dbCreds.adminCredsExternalSecret }}'
    login: '{{ .Values.dbCreds.adminName }}'
    password: '{{ .Values.dbCreds.adminPassword }}'
    passwordPolicy: generate
  - uid: 'so-onap-certs'
    name: &so-certs '{{ include "common.release" . }}-so-certs'
    externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
    type: generic
    filePaths:
      - resources/config/certificates/msb-ca.crt
  - uid: "mso-key"
    name: &mso-key '{{ include "common.release" . }}-mso-key'
    type: password
    password: '{{ .Values.global.app.msoKey }}'
  - uid: mso-oof-auth
    name: &mso-oof-auth '{{ include "common.release" . }}-mso-oof-auth'
    type: basicAuth
    login: '{{ .Values.mso.oof.login }}'
    password: '{{ .Values.mso.oof.password }}'
    passwordPolicy: required

aafConfig:
  permission_user: 1000
  permission_group: 999

aaf:
  trustore: org.onap.so.trust.jks

#################################################################
# Application configuration defaults.
#################################################################

dbSecrets: &dbSecrets
  userCredsExternalSecret: *dbUserCredsSecretName
  adminCredsExternalSecret: *dbAdminCredsSecretName

# unused in this, just to pass to subcharts
dbCreds:
  userName: so_user
  adminName: so_admin

image: onap/so/api-handler-infra:1.7.10
pullPolicy: Always
replicaCount: 1
minReadySeconds: 10
containerPort: &containerPort 8080
logPath: ./logs/apih/
app: api-handler-infra
service:
  type: NodePort
  nodePort: 77
  internalPort: *containerPort
  externalPort: *containerPort
  portName: so-apih-port
updateStrategy:
  type: RollingUpdate
  maxUnavailable: 1
  maxSurge: 1

#################################################################
# soHelpers part
#################################################################
soHelpers:
  nameOverride: so-apih-cert-init
  certInitializer:
    nameOverride: so-apih-cert-init
  credsPath: /opt/app/osaaf/local
  certSecret: *so-certs
  containerPort: *containerPort

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
persistence:
  certificatesPath: /certificates
resources:
  small:
    limits:
      cpu: 2000m
      memory: 4Gi
    requests:
      cpu: 500m
      memory: 1Gi
  large:
    limits:
      cpu: 4000m
      memory: 8Gi
    requests:
      cpu: 1000m
      memory: 2Gi
  unlimited: {}

nodeSelector: {}
affinity: {}

# application configuration
config:
  logstashServiceName: log-ls
  logstashPort: 5044

#Used only if localCluster is enabled. Instantiates SO's own cassandra cluster
#helm deploy demo local/onap --namespace onap --verbose --set so.enabled=true \
#                                                       --set so.global.mariadbGalera.localCluster=true \
#                                                       --set so.global.mariadbGalera.nameOverride=so-mariadb-galera \
#                                                       --set so.global.mariadbGalera.serviceName=so-mariadb-galera
mariadb-galera:
  config:
    mariadbRootPasswordExternalSecret: *dbRootPassSecretName
  nameOverride: so-mariadb-galera
  replicaCount: 1
  service:
    name: so-mariadb-galera
  persistence:
    mountSubPath: so/mariadb-galera/data
    enabled: true

ingress:
  enabled: false
  service:
    - baseaddr: 'so.api'
      name: 'so'
      port: 8080
  config:
    ssl: 'none'

mso:
  adapters:
    requestDb:
      auth: Basic YnBlbDpwYXNzd29yZDEk
  camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
  sdc:
    client:
      auth: 878785F4F31BC9CFA5AB52A172008212D8845ED2DE08AD5E56AF114720A4E49768B8F95CDA2EB971765D28EDCDAA24
  aai:
    auth: 6E081E10B1CA43A843E303733A74D9B23B601A6E22A21C7EF2C7F15A42F81A1A4E85E65268C2661F71321052C7F3E55B96A8E1E951F8BF6F
  oof:
    login: test
    password: testpwd
  so:
    operationalEnv:
      dmaap:
        auth: 51EA5414022D7BE536E7516C4D1A6361416921849B72C0D6FC1C7F262FD9F2BBC2AD124190A332D9845A188AD80955567A4F975C84C221EEA8243BFD92FFE6896CDD1EA16ADD34E1E3D47D4A
  health:
    auth: basic bXNvX2FkbWlufHBhc3N3b3JkMSQ=

so-appc-orchestrator:
  enabled: false
  db:
    <<: *dbSecrets

so-bpmn-infra:
  db:
    <<: *dbSecrets

so-catalog-db-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-etsi-nfvo-ns-lcm:
  enabled: true
  db:
    <<: *dbSecrets

so-monitoring:
  enabled: true
  db:
    <<: *dbSecrets

so-openstack-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-request-db-adapter:
  db:
    <<: *dbSecrets

so-sdc-controller:
  db:
    <<: *dbSecrets

so-sdnc-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-ve-vnfm-adapter:
  enabled: false

so-vfc-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-nssmf-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-oof-adapter:
  enabled: true
  db:
    <<: *dbSecrets
  mso:
    msoKeySecret: *mso-key
    camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
    oof:
      authSecret: *mso-oof-auth

so-vnfm-adapter:
  enabled: true

so-mariadb:
  db:
    rootPasswordExternalSecretLocalDb: *dbRootPassSecretName
    rootPasswordExternalSecret: '{{ ternary .Values.db.rootPasswordExternalSecretLocalDb (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) .Values.global.mariadbGalera.localCluster }}'
    backupCredsExternalSecret: *dbBackupCredsSecretName
    userCredsExternalSecret: *dbUserCredsSecretName
    adminCredsExternalSecret: *dbAdminCredsSecretName