#============LICENSE_START========================================================
# ================================================================================
# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# 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.
# ============LICENSE_END=========================================================

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefixExt: 304
  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0

secrets:
  - uid: pg-user-creds
    name: &pgUserCredsSecretName '{{ include "common.release" . }}-dcae-dashboard-pg-user-creds'
    type: basicAuth
    externalSecret: '{{ ternary "" (tpl (default "" .Values.postgres.config.pgUserExternalSecret) .) (hasSuffix "dcae-dashboard-pg-user-creds" .Values.postgres.config.pgUserExternalSecret) }}'
    login: '{{ .Values.postgres.config.pgUserName }}'
    password: '{{ .Values.postgres.config.pgUserPassword }}'
    passwordPolicy: generate
  - uid: 'cm-pass'
    type: password
    externalSecret: '{{ tpl (default "" .Values.config.cloudifyManagerPasswordExternalSecret) . }}'
    password: '{{ .Values.config.cloudifyManagerPassword }}'
    policy: required

config:
  cloudifyManagerPassword: "override me"
  logstashServiceName: log-ls
  logstashPort: 5044
  dhandler_url: https://deployment-handler:8443
  cfy_url: https://dcae-cloudify-manager/api/v3.1
  inventory_url: https://inventory:8080
  # Addresses of other ONAP entities
  address:
    consul:
      host: consul-server
      port: 8500

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.4.0
pullPolicy: Always

# probe configuration parameters
liveness:
  initialDelaySeconds: 10
  periodSeconds: 10
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  # liveness not desirable for Cloudify Manager container
  enabled: false

readiness:
  initialDelaySeconds: 30
  periodSeconds: 30
  path: /ccsdk-app/health
  scheme: HTTPS

service:
  type: NodePort
  name: dashboard
  externalPort: 8443
  internalPort: 8443
  nodePort: 18
# application configuration override for postgres
postgres:
  nameOverride: dcae-dashboard-pg
  service:
    name: dcae-dashboard-postgres
    name2: dcae-dashboard-pg-primary
    name3: dcae-dashboard-pg-replica
  container:
    name:
      primary: dcae-dashboard-pg-primary
      replica: dcae-dashboard-pg-replica
  config:
    pgUserName: dashboard_pg_admin
    pgUserExternalSecret: *pgUserCredsSecretName
    pgDatabase: dashboard_pg_db_common
    pgPort: "5432"
  persistence:
    mountSubPath: dcae-dashboard/data
    mountInitPath: dcae-dashboard

# Resource Limit flavor -By Default using small
flavor: small
# 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: {}
# Kubernetes namespace for components deployed via Cloudify manager
# If empty, use the common namespace
# dcae_ns: "dcae"
