# 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
  persistence:
    mountPath: /dockerdata-nfs
  mariadbGalera:
    serviceName: mariadb-galera
    servicePort: '3306'

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

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: 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
    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/openstack-adapter:1.12.2
pullPolicy: Always

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

aai:
  auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586
org:
  onap:
    so:
      adapters:
        bpelauth: D1A67FA93B6A6419132D0F83CC771AF774FD3C60853C50C22C8C6FC5088CC79E9E81EDE9EA39F22B2F66A0068E
mso:
  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
  basicUser: poBpmn
  auth: BEA8637716A7EB617DF472BA6552D22F68C1CB17B0D094D77DDA562F4ADAAC4457CAB848E1A4
  db:
    auth: Basic YnBlbDpwYXNzd29yZDEk

replicaCount: 1
minReadySeconds: 10
containerPort: &containerPort 8087
logPath: ./logs/openstack/
app: openstack-adapter
service:
  type: ClusterIP
  ports:
    - name: http
      port: *containerPort
updateStrategy:
  type: RollingUpdate
  maxUnavailable: 1
  maxSurge: 1

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

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      memory: 1.5Gi
      cpu: 999
    requests:
      memory: 1.5Gi
      cpu: 0.5
  large:
    limits:
      memory: 3Gi
      cpu: 999
    requests:
      memory: 3Gi
      cpu: 1
  unlimited: {}
livenessProbe:
  path: /manage/health
  port: 8087
  scheme: HTTP
  initialDelaySeconds: 600
  periodSeconds: 60
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 3
ingress:
  enabled: false
serviceMesh:
  authorizationPolicy:
    authorizedPrincipals:
      - serviceAccount: robot-read
      - serviceAccount: so-bpmn-infra-read
      - serviceAccount: so-read
config:
  openStackUserName: "vnf_user"
  openStackRegion: "RegionOne"
  openStackKeyStoneUrl: "http://1.2.3.4:5000/v2.0"
  openStackServiceTenantName: "service"
  openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
  openStackTenantId: "d570c718cbc545029f40e50b75eb13df"
  # "KEYSTONE" for keystone v2, "KEYSTONE_V3" for keystone v3
  openStackKeystoneVersion: "KEYSTONE"
nodeSelector: {}
tolerations: []
affinity: {}

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

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