#  ============LICENSE_START=======================================================
#   Copyright (C) 2021-2025 Nordix Foundation.
#   Modifications Copyright © 2024 Deutsche Telekom
#  ================================================================================
#  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=========================================================

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefixExt: 304
  persistence: {}
  #Strimzi Kafka properties
  kafkaTopics:
    acRuntimeOperationTopic:
      name: &acRuntimeOperationTopic policy-acruntime-participant
    acRuntimeSyncTopic:
      name: &acRuntimeSyncTopic acm-ppnt-sync

#################################################################
# 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: runtime-secret
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.appUserExternalSecret) . }}'
    login: '{{ .Values.config.policyAppUserName }}'
    password: '{{ .Values.config.policyAppUserPassword }}'
    passwordPolicy: required

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/policy-clamp-runtime-acm:8.1.0
pullPolicy: Always

componentName: &componentName policy-clamp-runtime-acm

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

# application configuration
config:
  policyAppUserName: runtimeUser
  policyAppUserPassword: none
# Any new property can be added in the env by setting in overrides in the format mentioned below
# All the added properties must be in "key: value" format instead of yaml.
# additional:
#   spring.config.max-size: 200
#   spring.config.min-size: 10

# Strimzi Kafka config
kafkaUser:
  authenticationType: scram-sha-512
  acls:
    - name: *componentName
      type: group
      operations: [Read]
    - name: *acRuntimeOperationTopic
      type: topic
      operations: [Read, Write]
    - name: *acRuntimeSyncTopic
      type: topic
      operations: [Read, Write]

kafkaTopic:
  - name: *acRuntimeOperationTopic
  - name: *acRuntimeSyncTopic

db:
  user: policy-user
  password: policy_user
  service:
    pgName: policy-pg-primary
    pgPort: 5432

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 60
  periodSeconds: 10
  port: http-api

service:
  type: ClusterIP
  name: *componentName
  ports:
  - name: http-api
    port: 6969

ingress:
  enabled: false

serviceMesh:
  authorizationPolicy:
    authorizedPrincipals:
      - serviceAccount: strimzi-kafka-read

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

securityContext:
  user_id: 100
  group_id: 102

dirSizes:
  emptyDir:
    sizeLimit: 1Gi
  logDir:
    sizeLimit: 500Mi

#Pods Service Account
serviceAccount:
  nameOverride: *componentName
  roles:
    - read

wait_for_job_container:
  containers:
    - '{{ include "common.release" . }}-galera-migrator-config'

customNaming:
  toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement
  toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition