# Copyright © 2018 AT&T USA
# Copyright © 2020 Huawei
# Copyright © 2024 Deutsche Telekom 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.
#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  nodePortPrefixExt: 304
  persistence:
    mountPath: /dockerdata-nfs
  #This configuration specifies Service and port for SDNC OAM interface
  sdncOamService: sdnc-oam
  sdncOamPort: 8282
  mariadbGalera:
    # flag to enable the DB creation via mariadb-operator
    useOperator: true
    service: mariadb-galera
    servicePort: '3306'

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

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-user-creds
    name: '{{ include "common.release" . }}-so-bpmn-infra-db-user-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.db.userCredsExternalSecret) . }}'
    login: '{{ .Values.db.userName }}'
    password: '{{ .Values.db.userPassword }}'
    passwordPolicy: required
  - uid: db-admin-creds
    name: '{{ include "common.release" . }}-so-bpmn-infra-db-admin-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.db.adminCredsExternalSecret) . }}'
    login: '{{ .Values.db.adminName }}'
    password: '{{ .Values.db.adminPassword }}'
    passwordPolicy: required

#secretsFilePaths: |
#  - 'my file 1'
#  - '{{ include "templateThatGeneratesFileName" . }}'

#################################################################
# Application configuration defaults.
#################################################################
image: onap/so/bpmn-infra:1.13.0
pullPolicy: Always

kafkaUser:
  acls:
    - name: so-consumer
      type: group
      patternType: literal
      operations: [Read]
    - name: unauthenticated.PNF_READY
      type: topic
      patternType: literal
      operations: [Read]
    - name: unauthenticated.PNF_UPDATE
      type: topic
      patternType: literal
      operations: [Read]

bpmn:
  historyTTL: 14

camunda:
  sundayCleanupWindowStartTime: "04:00"
  sundayCleanupWindowEndTime: "10:00"

# Local mariadb galera instance default name
mariadb-galera:
  nameOverride: so-mariadb-galera
  service:
    internalPort: 3306
  mariadbOperator:
    galera:
      enabled: false

db:
  userName: so_user
  userPassword: so_User123
  # userCredsExternalSecret: some secret
  adminName: so_admin
  adminPassword: so_Admin123
  # adminCredsExternalSecret: some secret

aai:
  auth: 221187EFA3AD4E33600DE0488F287099934CE65C3D0697BCECC00BB58E784E07CD74A24581DC31DBC086FF63DF116378776E9BE3D1325885

cds:
  auth: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==

mso:
  key: 07a7159d3bf51a0e53be7a8f89699be7
  adapters:
    requestDb:
      auth: Basic YnBlbDpwYXNzd29yZDEk
    db:
      auth: A3745B5DBE165EFCF101D85A6FC81C211AB8BF604F8861B6C413D5DC90F8F30E0139DE44B8A342F4EF70AF
      password: wLg4sjrAFUS8rfVfdvTXeQ==
    po:
      auth: A3745B5DBE165EFCF101D85A6FC81C211AB8BF604F8861B6C413D5DC90F8F30E0139DE44B8A342F4EF70AF
  sdnc:
    password: 1D78CFC35382B6938A989066A7A7EAEF4FE933D2919BABA99EB4763737F39876C333EE5F
  sniro:
    auth: test:testpwd
  oof:
    auth: test:testpwd
so:
  sol003:
    adapter:
      auth: Basic dm5mbTpwYXNzd29yZDEk
sniro:
  endpoint: http://replaceme:28090/optimizationInstance/V1/create

vnf:
  api:
    version: v2

replicaCount: 1
minReadySeconds: 10
containerPort: &containerPort 8081
logPath: ./logs/bpmn/
app: so-bpmn-infra
service:
  type: ClusterIP
  ports:
  - port: *containerPort
    name: http
updateStrategy:
  type: RollingUpdate
  maxUnavailable: 1
  maxSurge: 1

#################################################################
# soHelpers part
#################################################################
soHelpers:
  containerPort: *containerPort

# Resource Limit flavor -By Default using small
flavor: large
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: "1"
      memory: "3Gi"
    requests:
      cpu: "0.5"
      memory: "3Gi"
  large:
    limits:
      cpu: "2"
      memory: "6Gi"
    requests:
      cpu: "1"
      memory: "6Gi"
  unlimited: {}
livenessProbe:
  path: /manage/health
  scheme: HTTP
  initialDelaySeconds: 600
  periodSeconds: 60
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 3
ingress:
  enabled: false
serviceMesh:
  authorizationPolicy:
    authorizedPrincipals:
      - serviceAccount: robot-read
      - serviceAccount: so-admin-cockpit-read
      - serviceAccount: so-oof-adapter-read
      - serviceAccount: so-openstack-adapter-read
      - serviceAccount: so-read
      - serviceAccount: so-sdc-controller-read
      - serviceAccount: so-sdnc-adapter-read
nodeSelector: {}
tolerations: []
affinity: {}

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

#Log configuration
log:
  path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
