# ============LICENSE_START=======================================================
#  Copyright (c) 2021 Bell Canada.
# ================================================================================
# 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.
#################################################################
passwordStrengthOverride: basic
global:
  ingress:
    virtualhost:
      baseurl: "simpledemo.temporal.onap.org"

secrets:
  - uid: pg-user-creds
    name: &pgUserCredsSecretName '{{ include "common.release" . }}-cps-temporal-pg-user-creds'
    type: basicAuth
    externalSecret: '{{ ternary "" (tpl (default "" .Values.timescaledb.config.pgUserExternalSecret) .) (hasSuffix "cps-temporal-pg-user-creds" .Values.timescaledb.config.pgUserExternalSecret) }}'
    login: '{{ .Values.timescaledb.config.pgUserName }}'
    password: '{{ .Values.timescaledb.config.pgUserPassword }}'
    passwordPolicy: generate
  - uid: app-user-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.appUserExternalSecret) . }}'
    login: '{{ .Values.config.appUserName }}'
    password: '{{ .Values.config.appUserPassword }}'
    passwordPolicy: generate

image: onap/cps-temporal:1.0.0
containerPort: &svc_port 8080
managementPort: &mgt_port 8081

prometheus:
  enabled: false

service:
  type: ClusterIP
  name: cps-temporal
  ports:
    - name: http
      port: *svc_port
      targetPort: *svc_port
    - name: http-management
      port: *mgt_port
      targetPort: *mgt_port

metrics:
  serviceMonitor:
    port: http-management
      ## specify target port if name is not given to the port in the service definition
      ##
      # targetPort: 8080
    path: /manage/prometheus
    interval: 60s
    basicAuth:
      enabled: false

pullPolicy: IfNotPresent
# flag to enable debugging - application support required
debugEnabled: false
nodeSelector: {}
affinity: {}
# Resource Limit flavor -By Default using small
flavor: small
# default number of instances
replicaCount: 1
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 2
      memory: 2Gi
    requests:
      cpu: 1
      memory: 1Gi
  large:
    limits:
      cpu: 4
      memory: 4Gi
    requests:
      cpu: 2
      memory: 2Gi
  unlimited: {}
# probe configuration parameters
liveness:
  initialDelaySeconds: 20
  periodSeconds: 20
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true
  path: /manage/health
  port: *mgt_port

readiness:
  initialDelaySeconds: 15
  periodSeconds: 15
  path: /manage/health
  port: *mgt_port

ingress:
  enabled: true
  service:
    - baseaddr: "cps-temporal"
      path: "/"
      name: "cps-temporal"
      port: *svc_port

serviceAccount:
  nameOverride: cps-temporal
  roles:
    - read

securityContext:
  user_id: 100
  group_id: 655533

#################################################################
# Application configuration defaults.
#################################################################

config:
  # REST API basic authentication credentials (passsword is generated if not provided)
  appUserName: cpstemporal
  spring:
    profile: helm
  #appUserPassword:

  # Event consumption (kafka) properties
  # All Kafka properties must be in "key: value" format instead of yaml.
  eventConsumption:
    spring.kafka.bootstrap-servers: message-router-kafka:9092
    spring.kafka.security.protocol: PLAINTEXT
    spring.kafka.consumer.group-id: cps-temporal-group
    app.listener.data-updated.topic: cps.data-updated-events

# 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

logging:
  level: INFO
  path: /tmp

timescaledb:
  nameOverride: cps-temporal-db
  container:
    name: cps-temporal-db
  name: cpstemporaldb
  service:
    name: cps-temporal-db
  persistence:
    mountSubPath: cps-temporal/data
    mountInitPath: cps-temporal
  config:
    pgUserName: cpstemporaldb
    pgDatabase: cpstemporaldb
    pgUserExternalSecret: *pgUserCredsSecretName
  serviceAccount:
    nameOverride: cps-temporal-db

readinessCheck:
  wait_for:
    - cps-temporal-db

minReadySeconds: 10
updateStrategy:
  type: RollingUpdate
  maxUnavailable: 0
  maxSurge: 1