# Copyright © 2018 AT&T USA
# Copyright © 2020 Huawei
# Copyright © 2021 Orange
# 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
  centralizedLoggingEnabled: true
  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

  certificates:
    path: /etc/ssl/certs
    share_path: /usr/local/share/ca-certificates/

readinessCheck:
  wait_for:
    jobs:
      - '{{ include "common.release" . }}-so-mariadb-config-job'

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-root-pass
    name: &dbRootPassSecretName '{{ include "common.release" . }}-so-db-root-pass'
    type: password
    externalSecret: '{{ .Values.global.mariadbGalera.localCluster | ternary
      .Values.global.mariadbGalera.rootPasswordExternalSecret
      (default (include "common.mariadb.secret.rootPassSecretName"
        (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride))
        .Values.global.mariadbGalera.rootPasswordExternalSecret)  }}'
    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: 'mso-key'
    name: &mso-key '{{ include "common.release" . }}-mso-key'
    type: password
    password: '{{ .Values.mso.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
  - uid: server-actuator-creds
    name: &actuator-secrets '{{ include "common.release" . }}-so-server-actuator-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.server.actuatorCredsExternalSecret) . }}'
    login: '{{ .Values.server.actuator.username }}'
    password: '{{ .Values.server.actuator.password }}'
    passwordPolicy: required
  - uid: server-bpel-creds
    name: &bpel-secrets '{{ include "common.release" . }}-so-server-bpel-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.server.bpelCredsExternalSecret) . }}'
    login: '{{ .Values.server.bpel.username }}'
    password: '{{ .Values.server.bpel.password }}'
    passwordPolicy: required
  - uid: so-aaf-creds
    name: &aaf-secrets '{{ include "common.release" . }}-so-server-aaf-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.server.aafCredsExternalSecret) . }}'
    login: '{{ .Values.server.aaf.username }}'
    password: '{{ .Values.server.aaf.password }}'
    passwordPolicy: required
  - uid: so-aai-creds
    name: &aai-secrets '{{ include "common.release" . }}-so-server-aai-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.server.aaiCredsExternalSecret) . }}'
    login: '{{ .Values.server.aai.username }}'
    password: '{{ .Values.server.aai.password }}'
    passwordPolicy: required

aafConfig:
  permission_user: 1000
  permission_group: 999

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

#################################################################
# AAF part for Ingress
#################################################################
certInitializer:
  nameOverride: so-tls-cert
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  # aafDeployCredsExternalSecret: some secret
  fqdn: so
  fqi: so@so.onap.org
  public_fqdn: so.onap.org
  fqi_namespace: org.onap.so
  cadi_longitude: '0.0'
  cadi_latitude: '0.0'
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  ingressTlsSecret: '{{ include "common.release" . }}-so-ingress-certs'

#################################################################
# 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.9.2

server:
  aaf:
    username: so@so.onap.org
    password: demo123456
  # aafCredsExternalSecret: some secret
  aai:
    username: aai@aai.onap.org
    password: demo123456!
  # aaiCredsExternalSecret: some secret
  actuator:
    username: mso_admin
    password: password1$
  # actuatorCredsExternalSecret: some secret
  bpel:
    username: bpel
    password: password1$
  # bpelCredsExternalSecret: some secret

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
  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
  # "KEYSTONE" for keystone v2, "KEYSTONE_V3" for keystone v3
  openStackKeystoneVersion: "KEYSTONE"

#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:
  rootUser:
    externalSecret: *dbRootPassSecretName
  nameOverride: &so-mariadb so-mariadb-galera
  replicaCount: 1
  persistence:
    mountSubPath: so/mariadb-galera/data
    enabled: true
  serviceAccount:
    nameOverride: *so-mariadb

ingress:
  enabled: false
  service:
    - baseaddr: 'so.api'
      name: 'so'
      port: 8080
  config:
    tls:
      secret: '{{ include "common.release" . }}-so-ingress-certs'

mso:
  adapters:
    requestDb:
      auth: Basic YnBlbDpwYXNzd29yZDEk
  camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
  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
  server:
    actuatorCredsExternalSecret: *actuator-secrets
  db:
    <<: *dbSecrets

so-bpmn-infra:
  db:
    <<: *dbSecrets
  logConfigMapNamePrefix: '{{ include "common.release" . }}-so'

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

so-cnf-adapter:
  enabled: true
  db:
    <<: *dbSecrets
  server:
    aafCredsExternalSecret: *aaf-secrets
    aaiCredsExternalSecret: *aai-secrets
    actuatorCredsExternalSecret: *actuator-secrets
  mso:
    msoKeySecret: *mso-key

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

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

so-admin-cockpit:
  enabled: true
  db:
    <<: *dbSecrets

so-nssmf-adapter:
  enabled: true
  server:
    actuatorCredsExternalSecret: *actuator-secrets
    bpelCredsExternalSecret: *bpel-secrets
  db:
    <<: *dbSecrets

so-oof-adapter:
  enabled: true
  db:
    <<: *dbSecrets
  mso:
    msoKeySecret: *mso-key
    camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
    oof:
      authSecret: *mso-oof-auth
  logConfigMapNamePrefix: '{{ include "common.release" . }}-so'

so-openstack-adapter:
  enabled: true
  db:
    <<: *dbSecrets
  logConfigMapNamePrefix: '{{ include "common.release" . }}-so'

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

so-sdc-controller:
  db:
    <<: *dbSecrets
  logConfigMapNamePrefix: '{{ include "common.release" . }}-so'

so-sdnc-adapter:
  enabled: true
  db:
    <<: *dbSecrets
  mso:
    msoKeySecret: *mso-key
  logConfigMapNamePrefix: '{{ include "common.release" . }}-so'

so-ve-vnfm-adapter:
  enabled: false

so-etsi-sol005-adapter:
  enabled: true
  db:
    <<: *dbSecrets

so-etsi-sol003-adapter:
  enabled: true

#Pods Service Account
serviceAccount:
  nameOverride: so
  roles:
    - read

#Log configuration
log:
  path: /var/log/onap
