{{- 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: {{ $dbinst }}-{{ $dbname }}
{{- $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: {{ $dbinst }}-{{ $dbuser }}
name: {{ $dbuser }}
mariaDbRef:
name: {{ $dbinst }}
+ waitForIt: true
passwordSecretKeyRef:
name: {{ $dbsecret }}
key: password
{{- $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 }}
{{- $dbinst := include "common.name" $dot -}}
{{- $name := default $dbinst $dot.Values.backup.nameOverride -}}
---
-apiVersion: mariadb.mmontes.io/v1alpha1
+apiVersion: k8s.mariadb.com/v1alpha1
kind: Backup
metadata:
name: {{ $name }}
spec:
+ inheritMetadata:
+ labels:
+ sidecar.istio.io/inject: 'false'
+ backoffLimit: 5
+ logLevel: info
mariaDbRef:
name: {{ $dbinst }}
+ waitForIt: true
schedule:
cron: {{ $dot.Values.backup.cron }}
suspend: false
{{- $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 }}
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:
enabled: true
authDelegatorRoleName: {{ $dbinst }}-auth
gracefulShutdownTimeout: 5s
+ primary:
+ automaticFailover: true
+ podIndex: 0
recovery:
enabled: true
- clusterHealthyTimeout: 5m0s
+ clusterHealthyTimeout: 30s
clusterBootstrapTimeout: 10m0s
- podRecoveryTimeout: 5m0s
- podSyncTimeout: 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:
- {{- if .Values.mariadbOperator.storageClassName }}
- storageClassName: {{ .Values.mariadbOperator.storageClassName }}
- {{- end }}
- 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:
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
- {{- if default false .Values.global.metrics.enabled }}
+ {{- if default false $dot.Values.global.metrics.enabled }}
metrics:
enabled: true
{{- end }}
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: kubernetes.io/hostname
tolerations:
- - key: mariadb.mmontes.io/ha
+ - key: k8s.mariadb.com/ha
operator: Exists
effect: NoSchedule
podDisruptionBudget:
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 }}
mariadbOperator:
image: mariadb
- appVersion: 11.1.2
+ appVersion: 11.2.2
persistence:
#storageClassName: default
size: 3Gi
galera:
enabled: true
- agentImage: mariadb-operator/agent
- agentVersion: v0.0.3
- initImage: mariadb-operator/init
- initVersion: v0.0.6
+ agentImage: mariadb-operator/mariadb-operator
+ agentVersion: v0.0.27
+ initImage: mariadb-operator/mariadb-operator
+ initVersion: v0.0.27
## String to partially override common.names.fullname template (will maintain the release name)
##
# sidecar.istio.io/inject: "false"
traffic.sidecar.istio.io/excludeInboundPorts: "4444,4567,4568"
traffic.sidecar.istio.io/includeInboundPorts: '*'
- traffic.sidecar.istio.io/excludeOutboundPorts: "4444,4567,4568"
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4444,4567,4568,443"
mariadbOpConfiguration: |-
[mysqld]