# 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
  persistence: {}
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0


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

dockerHubRepository: registry.hub.docker.com
image: library/mysql:5.7
pullPolicy: Always

# application configuration
config:
  dbRootPassword: openECOMP1.0

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

disableNfsProvisioner: true

# 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: true

readiness:
  initialDelaySeconds: 5
  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)
  accessMode: ReadWriteMany
  size: 1Gi
  mountPath: /dockerdata-nfs
  mountSubPath: "mysql/data"

service:
  name: mysql
  portName: mysql
  internalPort: 3306
  # nfs provisioner ports
  nfsPort: 2049
  mountdPort: 20048
  rpcbindPort: 111
  rpcbindUdpPort: 111

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:
#  limits:
#    cpu: 2
#    memory: 4Gi
#  requests:
#    cpu: 2
#    memory: 4Gi

#################################################################
# Sidecar Configuration.
#
# xtrabackup configuration defaults.
#################################################################
xtrabackupRepository: gcr.io/google-samples
xtrabackupImage: xtrabackup:1.0
xtrabackup:
  internalPort: 3307

nfsprovisionerRepository: quay.io
nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8
nfsprovisionerPrefix: mysql

sdnctlPrefix: mysql

geoEnabled: false
geoSiteId: 1
