# 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:
  nodePortPrefix: 302
  persistence: {}
  repository: nexus3.onap.org:10001


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

#repository: mysql
repository: nexus3.onap.org:10001
image: adfinissygroup/k8s-mariadb-galera-centos:v002
imageInit: busybox
pullPolicy: IfNotPresent

# application configuration
config:
  mariadbRootPassword: secretpassword
#  userName: my-user
#  userPassword: my-password
#  mysqlDatabase: my-database
  userName: vidadmin
  userPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
  mysqlDatabase: vid_openecomp_epsdk


# default number of instances in the StatefulSet 
# keep in mind that if the number is increased you need to update vid-galera-config-job.yaml so that the job will know to wait for all pods.
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 5
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: false

readiness:
  initialDelaySeconds: 15
  periodSeconds: 10

## Persist data to a persitent volume
persistence:
  enabled: false

  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:
  volumeReclaimPolicy: Retain

  ## database data Persistent Volume Storage Class
  ## If defined, storageClassName: <storageClass>
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClassName spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # storageClass: "-"
  accessMode: ReadWriteOnce
  size: 2Gi


service:
  internalPort: 3306
  name: vid-galera
  portName: vid-galera
  sstPort: 4444
  sstName: sst
  replicationPort: 4567
  replicationName: replication
  istPort: 4568
  istName: ist

ingress:
  enabled: false


## Configure MariaDB-Galera with a custom my.cnf file
## ref: https://mariadb.com/kb/en/mariadb/configuring-mariadb-with-mycnf/#example-of-configuration-file
##
#externalConfig: {}
externalConfig: |-
  lower_case_table_names = 1
# Resource Limit flavor -By Default using small 
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 10m
      memory: 1Gi
    requests:
      cpu: 10m
      memory: 1Gi
  large:
    limits:
      cpu: 20m
      memory: 2Gi
    requests:
      cpu: 20m
      memory: 2Gi
# Name for mariadb-galera cluster - should be unique accross all projects or other clusters
nameOverride: vid-mariadb-galera

# DNS name for mariadb-galera cluster - should be unique accross all projects other clusters
#dnsnameOverride: mariadb-galera
