apiVersion: apps/v1 kind: StatefulSet metadata: namespace: {{ .Release.Namespace }} name: statefulset-mariadb labels: {{- include "site.labels" . | nindent 4 }} spec: selector: matchLabels: app: mariadb tier: mariadb serviceName: "mariadb" replicas: 1 template: metadata: labels: app: mariadb tier: mariadb {{- include "site.labels" . | nindent 8 }} annotations: checksum/configmap: {{ include (print $.Template.BasePath "/mariadb/configmap-mariadb.yaml") . | sha256sum }} checksum/secret: {{ include (print $.Template.BasePath "/mariadb/secret-mariadb.yaml") . | sha256sum }} checksum/values-config: {{ .Files.Get "values-config-k3s.yaml" | sha256sum }} spec: automountServiceAccountToken: false containers: - image: {{ required ".Values.mariadb.repository entry is required!" .Values.mariadb.repository }}:{{ required ".Values.mariadb.tag entry is required!" .Values.mariadb.tag }} imagePullPolicy: IfNotPresent name: mariadb envFrom: - configMapRef: name: configmap-mariadb-envvars - secretRef: name: secret-mariadb ports: - containerPort: 3306 name: mariadb startupProbe: tcpSocket: port: 3306 failureThreshold: 12 periodSeconds: 10 timeoutSeconds: 5 livenessProbe: tcpSocket: port: 3306 periodSeconds: 60 failureThreshold: 1 initialDelaySeconds: 0 timeoutSeconds: 5 readinessProbe: tcpSocket: port: 3306 periodSeconds: 10 failureThreshold: 3 initialDelaySeconds: 0 timeoutSeconds: 5 resources: requests: memory: "{{ required ".Values.mariadb.ressourceRequest.memory entry is required!" .Values.mariadb.ressourceRequest.memory }}" cpu: "{{ required ".Values.mariadb.ressourceRequest.cpu entry is required!" .Values.mariadb.ressourceRequest.cpu }}" ephemeral-storage: "{{ required ".Values.mariadb.ressourceRequest.ephemeralStorage entry is required!" .Values.mariadb.ressourceRequest.ephemeralStorage }}" limits: memory: "{{ required ".Values.mariadb.ressourceLimit.memory entry is required!" .Values.mariadb.ressourceLimit.memory }}" cpu: "{{ required ".Values.mariadb.ressourceLimit.cpu entry is required!" .Values.mariadb.ressourceLimit.cpu }}" ephemeral-storage: "{{ required ".Values.mariadb.ressourceLimit.ephemeralStorage entry is required!" .Values.mariadb.ressourceLimit.ephemeralStorage }}" volumeMounts: - name: mariadb-datadir mountPath: /var/lib/mysql - name: mariadb-config mountPath: /etc/mysql/conf.d/ lifecycle: preStop: exec: command: ["/bin/sh","-c","pkill -SIGTERM mariadb"] terminationGracePeriodSeconds: {{ required ".Values.mariadb.terminationGracePeriodSeconds entry is required!" .Values.mariadb.terminationGracePeriodSeconds }} volumes: - name: mariadb-datadir persistentVolumeClaim: claimName: pvc-mariadb-datadir - name: mariadb-config configMap: name: configmap-mariadb-config