# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018-2019 AT&T
#
# 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: # global defaults
  nodePortPrefix: 302
  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0
  persistence: {}

flavor: small

# application image
repository: nexus3.onap.org:10001
image: onap/clamp-backend:5.0.1
pullPolicy: Always

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

#################################################################
# Application configuration defaults.
#################################################################
config:
  log:
    logstashServiceName: log-ls
    logstashPort: 5044
  mysqlPassword: strong_pitchou
  dataRootDir: /dockerdata-nfs
  springApplicationJson: >
    {
        "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clampdb.{{ include "common.namespace" . }}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
        "spring.profiles.active": "clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,legacy-operational-policy,default-dictionary-elements",
        "clamp.config.files.sdcController": "file:/opt/clamp/sdc-controllers-config.json",
        "clamp.config.dcae.inventory.url": "https4://inventory.{{ include "common.namespace" . }}:8080",
        "clamp.config.dcae.dispatcher.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
        "clamp.config.dcae.deployment.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
        "clamp.config.dcae.deployment.userName": "none",
        "clamp.config.dcae.deployment.password": "none",
        "clamp.config.policy.api.url": "https4://policy-api.{{ include "common.namespace" . }}:6969",
        "clamp.config.policy.api.userName": "healthcheck",
        "clamp.config.policy.api.password": "zb!XztG34",
        "clamp.config.policy.pap.url": "https4://policy-pap.{{ include "common.namespace" . }}:6969",
        "clamp.config.policy.pap.userName": "healthcheck",
        "clamp.config.policy.pap.password": "zb!XztG34",
        "clamp.config.cadi.aafLocateUrl": "https://aaf-locate.{{ include "common.namespace" . }}:8095",
        "com.att.eelf.logging.path": "/opt/clamp",
        "com.att.eelf.logging.file": "logback.xml"
    }

# 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: clamp-backend
  portName: clamp-backend
  internalPort: 8443
  externalPort: 443

ingress:
  enabled: false

#resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  #
  # Example:
  # Configure resource requests and limits
  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
  # Minimum memory for development is 2 CPU cores and 4GB memory
  # Minimum memory for production is 4 CPU cores and 8GB memory
resources:
  small:
    limits:
      cpu: 1
      memory: 1.2Gi
    requests:
      cpu: 10m
      memory: 800Mi
  large:
    limits:
      cpu: 1
      memory: 1.2Gi
    requests:
      cpu: 10m
      memory: 800Mi
  unlimited: {}
