X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=kubernetes%2Fcommon%2Fcommon%2Ftemplates%2F_mariadb.tpl;h=3092298a7d64e9c7fb43c3c0f3c9cdd2fb939ccc;hb=53490fa3240d2c1d9b4e4948f85d2a3ef0df3746;hp=c90b86c3a41391cf2075d50d6d42a0efbdbef7a1;hpb=6abb11b419fbb0bcc9bc3025e93658d945eccb3e;p=oom.git diff --git a/kubernetes/common/common/templates/_mariadb.tpl b/kubernetes/common/common/templates/_mariadb.tpl index c90b86c3a4..3092298a7d 100644 --- a/kubernetes/common/common/templates/_mariadb.tpl +++ b/kubernetes/common/common/templates/_mariadb.tpl @@ -74,17 +74,13 @@ */}} {{- define "common.mariadbService" -}} {{- if .Values.global.mariadbGalera.localCluster -}} - {{- if .Values.global.mariadbGalera.useOperator }} + {{- if and .Values.global.mariadbGalera.useOperator (index .Values "mariadb-galera" "mariadbOperator" "galera" "enabled") }} {{- printf "%s-primary" (index .Values "mariadb-galera" "nameOverride") -}} {{- else }} {{- index .Values "mariadb-galera" "nameOverride" -}} {{- end }} {{- else -}} - {{- if .Values.global.mariadbGalera.useOperator }} - {{- printf "%s-primary" (.Values.global.mariadbGalera.service) -}} - {{- else }} {{- .Values.global.mariadbGalera.service -}} - {{- end }} {{- end -}} {{- end -}} @@ -118,18 +114,19 @@ {{- end -}} {{/* - Create MariDB Database via mariadb-operator + Create MariaDB Database via mariadb-operator */}} {{- define "common.mariadbOpDatabase" -}} {{- $dot := default . .dot -}} {{- $dbname := (required "'dbame' param, is required." .dbname) -}} {{- $dbinst := (required "'dbinst' param, is required." .dbinst) -}} --- -apiVersion: mariadb.mmontes.io/v1alpha1 +apiVersion: k8s.mariadb.com/v1alpha1 kind: Database metadata: - name: {{ $dbname }} + name: {{ $dbinst }}-{{ $dbname }} spec: + name: {{ $dbname }} mariaDbRef: name: {{ $dbinst }} characterSet: utf8 @@ -146,15 +143,15 @@ spec: {{- $dbinst := (required "'dbinst' param, is required." .dbinst) -}} {{- $dbsecret := (required "'dbsecret' param, is required." .dbsecret) -}} --- -apiVersion: mariadb.mmontes.io/v1alpha1 +apiVersion: k8s.mariadb.com/v1alpha1 kind: User metadata: - name: {{ $dbuser }} + name: {{ $dbinst }}-{{ $dbuser }} spec: - # If you want the user to be created with a different name than the resource name - # name: user-custom + name: {{ $dbuser }} mariaDbRef: name: {{ $dbinst }} + waitForIt: true passwordSecretKeyRef: name: {{ $dbsecret }} key: password @@ -172,13 +169,14 @@ spec: {{- $dbname := (required "'dbame' param, is required." .dbname) -}} {{- $dbinst := (required "'dbinst' param, is required." .dbinst) -}} --- -apiVersion: mariadb.mmontes.io/v1alpha1 +apiVersion: k8s.mariadb.com/v1alpha1 kind: Grant metadata: name: {{ $dbuser }}-{{ $dbname }}-{{ $dbinst }} spec: mariaDbRef: name: {{ $dbinst }} + waitForIt: true privileges: - "ALL" database: {{ $dbname }} @@ -194,33 +192,50 @@ spec: {{- define "common.mariadbOpBackup" -}} {{- $dot := default . .dot -}} {{- $dbinst := include "common.name" $dot -}} +{{- $name := default $dbinst $dot.Values.backup.nameOverride -}} +--- +apiVersion: k8s.mariadb.com/v1alpha1 kind: Backup metadata: - name: backup-scheduled + name: {{ $name }} spec: + inheritMetadata: + labels: + sidecar.istio.io/inject: 'false' + backoffLimit: 5 + logLevel: info mariaDbRef: name: {{ $dbinst }} + waitForIt: true schedule: - cron: "*/1 * * * *" + cron: {{ $dot.Values.backup.cron }} suspend: false - maxRetentionDays: 30 + maxRetention: {{ $dot.Values.backup.maxRetention }} storage: + {{- if eq $dot.Values.backup.storageType "PVC" }} persistentVolumeClaim: resources: requests: - storage: 100Mi - {{- if .Values.mariadbOperator.storageClassName }} - storageClassName: {{ .Values.mariadbOperator.storageClassName }} + storage: {{ $dot.Values.backup.persistence.size }} + {{- if $dot.Values.mariadbOperator.storageClassName }} + storageClassName: {{ $dot.Values.mariadbOperator.storageClassName }} {{- end }} accessModes: - - ReadWriteOnce + - {{ $dot.Values.backup.persistence.accessMode }} + {{- end }} + {{- if eq $dot.Values.backup.storageType "S3" }} + s3: {{- include "common.tplValue" ( dict "value" .Values.backup.s3 "context" $) | nindent 6 }} + {{- end }} + {{- if eq $dot.Values.backup.storageType "volume" }} + volume: {{- include "common.tplValue" ( dict "value" .Values.backup.volume "context" $) | nindent 6 }} + {{- end }} resources: requests: - cpu: 100m - memory: 128Mi + cpu: "100m" + memory: "100Mi" limits: - cpu: 300m - memory: 512Mi + cpu: "300m" + memory: "500Mi" {{- end -}} {{/* @@ -233,7 +248,7 @@ spec: {{- $dbrootsecret := tpl (default (include "common.mariadb.secret.rootPassSecretName" (dict "dot" $dot "chartName" "")) $dot.Values.rootUser.externalSecret) $dot -}} {{- $dbusersecret := tpl (default (include "common.mariadb.secret.userCredentialsSecretName" (dict "dot" $dot "chartName" "")) $dot.Values.db.externalSecret) $dot -}} --- -apiVersion: mariadb.mmontes.io/v1alpha1 +apiVersion: k8s.mariadb.com/v1alpha1 kind: MariaDB metadata: name: {{ $dbinst }} @@ -247,6 +262,9 @@ spec: annotations: {{ toYaml .Values.podAnnotations | nindent 6 }} {{- end }} labels: + # temporarily test mariaDB without sidecar (fix initial Job, Backup and Metrics) + # will be obsolete with "native-sidecars" feature in K8S and Istio + sidecar.istio.io/inject: "false" app: {{ $dbinst }} version: {{ .Values.mariadbOperator.appVersion }} rootPasswordSecretKeyRef: @@ -254,8 +272,7 @@ spec: key: password image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.mariadbOperator.image }}:{{ $dot.Values.mariadbOperator.appVersion }} imagePullPolicy: IfNotPresent - imagePullSecrets: - - name: {{ include "common.namespace" . }}-docker-registry-key + {{- include "common.imagePullSecrets" . | nindent 2 }} port: 3306 replicas: {{ $dot.Values.replicaCount }} {{- if $dot.Values.mariadbOperator.galera.enabled }} @@ -271,21 +288,30 @@ spec: enabled: true authDelegatorRoleName: {{ $dbinst }}-auth gracefulShutdownTimeout: 5s + primary: + automaticFailover: true + podIndex: 0 recovery: enabled: true - clusterHealthyTimeout: 5m - clusterBootstrapTimeout: 10m - podRecoveryTimeout: 5m - podSyncTimeout: 10m + clusterHealthyTimeout: 30s + clusterBootstrapTimeout: 10m0s + minClusterSize: 50% + podRecoveryTimeout: 3m0s + podSyncTimeout: 3m0s initContainer: image: {{ include "repositoryGenerator.githubContainerRegistry" . }}/{{ $dot.Values.mariadbOperator.galera.initImage }}:{{ $dot.Values.mariadbOperator.galera.initVersion }} imagePullPolicy: IfNotPresent - volumeClaimTemplate: - resources: - requests: - storage: 50Mi - accessModes: - - ReadWriteOnce + config: + reuseStorageVolume: false + volumeClaimTemplate: + {{- if .Values.mariadbOperator.persistence.storageClassName }} + storageClassName: {{ .Values.mariadbOperator.persistence.storageClassName }} + {{- end }} + resources: + requests: + storage: 50Mi + accessModes: + - ReadWriteOnce {{- end }} livenessProbe: exec: @@ -305,45 +331,32 @@ spec: initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 + {{- if default false $dot.Values.global.metrics.enabled }} + metrics: + enabled: true + {{- end }} affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - topologyKey: kubernetes.io/hostname tolerations: - - key: mariadb.mmontes.io/ha + - key: k8s.mariadb.com/ha operator: Exists effect: NoSchedule podDisruptionBudget: maxUnavailable: 50% updateStrategy: type: RollingUpdate - #myCnf: | - # [mysqld] - # bind-address=0.0.0.0 - # default_storage_engine=InnoDB - # binlog_format=row - # innodb_autoinc_lock_mode=2 - # max_allowed_packet=256M - # lower_case_table_names = 1 - - # ## Character set - # collation_server=utf8_unicode_ci - # init_connect='SET NAMES utf8' - # character_set_server=utf8 myCnfConfigMapKeyRef: key: my.cnf name: {{ printf "%s-configuration" (include "common.fullname" $dot) }} resources: {{ include "common.resources" . | nindent 4 }} - volumeClaimTemplate: - {{- if $dot.Values.mariadbOperator.storageClassName }} - storageClassName: {{ $dot.Values.mariadbOperator.storageClassName }} + storage: + {{- if $dot.Values.mariadbOperator.persistence.storageClassName }} + storageClassName: {{ $dot.Values.mariadbOperator.persistence.storageClassName }} {{- end }} - resources: - requests: - storage: {{ $dot.Values.mariadbOperator.persistence.size | quote }} - accessModes: - - ReadWriteOnce + size: {{ $dot.Values.mariadbOperator.persistence.size | quote }} {{- if $dot.Values.db.user }} {{ include "common.mariadbOpUser" (dict "dot" . "dbuser" $dot.Values.db.user "dbinst" $dbinst "dbsecret" $dbusersecret) }} {{- end }}