# Copyright © 2018 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:
  repository: nexus3.onap.org:10001
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2
  mariadbGalera:
    nameOverride: mariadb-galera
    servicePort: 3306
    # set these two values if you want to access an 'out of ONAP' mariadb
    # userRootPassword: some-password
    # userRootSecret: some-secret-name
    # userRootSecretKey: password

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: root-password
    type: password
    externalSecret: '{{ tpl (default (include "mariadbInit.mariadbClusterSecret" .) .Values.global.mariadbGalera.userRootSecret) . }}'
    password: '{{ tpl (default "" .global.mariadbGalera.userRootPassword) . }}'
  - uid: '{{ .Values.config.mysqlDatabase }}'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.userCredentialsExternalSecret) . }}'
    login: '{{ .Values.config.userName }}'
    password: '{{ .Values.config.userPassword }}'
    passwordPolicy: required

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

image: mariadb:10.1.38
pullPolicy: IfNotPresent

# Set it if you want to change the name of the different components
# nameOverride:

config:
  userPassword: Ci@shsOd3pky1Vji
  userName: u5WZ1GMSIS1wHZF
  # set this value if you would like to use external secret instead of providing a password
  # userCredentialsExternalsecret: some-secret-name
  mysqlDatabase: ynsaUCru6mUNwGal
  mysqlAdditionalDatabases: {}
  # add addtional dabases
  # this is an dict
  # Example:
  # mysqlAdditionalDatabases:
  #   dbOne:
  #     user: one
  #     password: pwd1
  #     externalSecret: some-secret-name
  #   dbTwo:
  #     user: two
  #     password: pwd2
  #     externalSecret: some-secret-name
  config_map: default

nodeSelector: {}

affinity: {}

#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
flavor: small
resources:
  small:
    limits:
      cpu: 100m
      memory: 500Mi
    requests:
      cpu: 10m
      memory: 10Mi
  large:
    limits:
      cpu: 200m
      memory: 500Mi
    requests:
      cpu: 20m
      memory: 20Mi
  unlimited: {}
