# Copyright © 2017 Amdocs
# Copyright © 2017, 2021 Bell Canada
# Modifications Copyright © 2018-2022 AT&T Intellectual Property
#
# 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

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-secret
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.db.credsExternalSecret) . }}'
    login: '{{ .Values.db.user }}'
    password: '{{ .Values.db.password }}'
    passwordPolicy: required
  - uid: telemetry-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.telemetry.credsExternalSecret) . }}'
    login: '{{ .Values.telemetry.user }}'
    password: '{{ .Values.telemetry.password }}'
    passwordPolicy: required

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/policy-pdpd-cl:1.12.2
pullPolicy: Always

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

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 60
  periodSeconds: 10

service:
  type: ClusterIP
  name: policy-drools-pdp
  internalPort: 6969
  ports:
    - name: http
      port: 6969
    - name: http-2
      port: 9696

ingress:
  enabled: false

serviceMesh:
  authorizationPolicy:
    authorizedPrincipals:
      - serviceAccount: message-router-read

server:
  jvmOpts: -server -XshowSettings:vm

telemetry:
  user: demo@people.osaaf.org
  password: demo123456!

nexus:
  name: policy-nexus
  port: 8081
  user: admin
  password: admin123
  offline: true

db:
  name: policy-mariadb
  user: policy-user
  password: policy_user

pap:
  user: policyadmin
  password: zb!XztG34

pdp:
  user: healthcheck
  password: zb!XztG34

papl:
  user: testpap
  password: alpha123

pdpl:
  user: testpdp
  password: alpha123

aai:
  user: policy@policy.onap.org
  password: demo123456!

so:
  user: InfraPortalClient
  password: password1$

vfc:
  user:
  password:

sdnc:
  user: admin
  password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

dmaap:
  brmsgw:
    key:
    password:
  pap:
    key:
    password:

cds:
  grpc:
    user: ccsdkapps
    password: ccsdkapps
    svcName: cds-blueprints-processor-grpc
    svcPort: 9111

# Resource Limit flavor -By Default using small
# Segregation for Different environment (small, large, or unlimited)
flavor: small
resources:
  small:
    limits:
      cpu: 999
      memory: 0.8Gi
    requests:
      cpu: 0.5
      memory: 0.8Gi
  large:
    limits:
      cpu: 999
      memory: 1.6Gi
    requests:
      cpu: 1
      memory: 1.6Gi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: policy-drools-pdp
  roles:
    - read

metrics:
  serviceMonitor:
    # Override the labels based on the Prometheus config parameter: serviceMonitorSelector.
    # The default operator for prometheus enforces the below label.
    labels:
      release: prometheus
    enabled: true
    port: policy-drools-pdp-9696
    interval: 60s
    isHttps: false
    basicAuth:
      enabled: true
      externalSecretNameSuffix: policy-drools-pdp-telemetry-creds
      externalSecretUserKey: login
      externalSecretPasswordKey: password
    selector:
      app: '{{ include "common.name" . }}'
      chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
      release: '{{ include "common.release" . }}'
      heritage: '{{ .Release.Service }}'
