#  ============LICENSE_START=======================================================
#   Copyright (C) 2018 Ericsson. All rights reserved.
#   Modifications Copyright (C) 2019-2021 AT&T Intellectual Property.
#   Modifications Copyright (C) 2023 Nordix Foundation
#  ================================================================================
#  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.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: restserver-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.restServer.credsExternalSecret) . }}'
    login: '{{ .Values.restServer.user }}'
    password: '{{ .Values.restServer.password }}'
    passwordPolicy: required
  - uid: apiparameters-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.apiParameters.credsExternalSecret) . }}'
    login: '{{ .Values.apiParameters.user }}'
    password: '{{ .Values.apiParameters.password }}'
    passwordPolicy: required
  - uid: papparameters-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.papParameters.credsExternalSecret) . }}'
    login: '{{ .Values.papParameters.user }}'
    password: '{{ .Values.papParameters.password }}'
    passwordPolicy: required
  - uid: sdcbe-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.sdcBe.credsExternalSecret) . }}'
    login: '{{ .Values.sdcBe.user }}'
    password: '{{ .Values.sdcBe.password }}'
    passwordPolicy: required

#################################################################
# Global configuration defaults.
#################################################################
global:
  persistence: {}
  aafEnabled: true

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/policy-distribution:3.1.0
pullPolicy: Always

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

#Strimzi Kafka User def
kafkaUser:
  acls:
    - name: policy-distribution
      type: group
      operations: [Read]
    - name: SDC-DISTR
      type: topic
      patternType: prefix
      operations: [Read, Write]

restServer:
  user: healthcheck
  password: zb!XztG34
apiParameters:
  user: policyadmin
  password: zb!XztG34
papParameters:
  user: policyadmin
  password: zb!XztG34
sdcBe:
  user: policy
  password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 20
  periodSeconds: 10

service:
  type: ClusterIP
  name: policy-distribution
  internalPort: 6969
  ports:
    - name: http
      port: 6969

ingress:
  enabled: false

serviceMesh:
  authorizationPolicy:
    authorizedPrincipals:
      - serviceAccount: policy-pap-read

flavor: small
resources:
  small:
    limits:
      cpu: "1"
      memory: "500Mi"
    requests:
      cpu: "0.5"
      memory: "500Mi"
  large:
    limits:
      cpu: "2"
      memory: "1Gi"
    requests:
      cpu: "1"
      memory: "1Gi"
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: policy-distribution
  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-distribution
    interval: 60s
    isHttps: false
    basicAuth:
      enabled: true
      externalSecretNameSuffix: policy-distribution-restserver-creds
      externalSecretUserKey: login
      externalSecretPasswordKey: password
    selector:
      app: '{{ include "common.name" . }}'
      chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
      release: '{{ include "common.release" . }}'
      heritage: '{{ .Release.Service }}'
