# Copyright © 2017 Amdocs, 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.

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  config:
    ssl_enabled: false
  mariadbGalera:
    # flag to enable the DB creation via mariadb-operator
    useOperator: true
    localCluster: false
    service: mariadb-galera
    internalPort: 3306
    nameOverride: mariadb-galera

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: db-root-pass
    externalSecret: '{{ ternary (index .Values "mariadb-galera" "rootUser" "externalSecret") (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" (default "mariadb-galera" .Values.global.mariadbGalera.nameOverride))) .Values.global.mariadbGalera.localCluster }}'
    type: password
    password: '{{ index .Values "mariadb-galera" "rootUser" "password" }}'
    policy: required

#################################################################
# Application configuration defaults.
#################################################################
# application image
flavor: small

image: onap/vfc/nslcm:1.4.7
pullPolicy: Always

#Istio sidecar injection policy
istioSidecar: true

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

# Local mariadb galera instance default name
mariadb-galera:
  rootUser:
    externalSecret: '{{ include "common.release" . }}-vfc-db-root-pass'
  nameOverride: vfc-mariadb

# 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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10

service:
  type: ClusterIP
  name: vfc-nslcm
  portName: http
  externalPort: 8403
  internalPort: 8403
#  nodePort: 30403

ingress:
  enabled: false


# Configure resource requests and limits
resources:
  small:
    limits:
      cpu: "200m"
      memory: "0.5Gi"
    requests:
      cpu: "100m"
      memory: "0.2Gi"
  large:
    limits:
      cpu: "400m"
      memory: "1Gi"
    requests:
      cpu: "200m"
      memory: "0.5Gi"
  unlimited: {}

# Log configuration
log:
  path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
