...
Code Block |
---|
language | yml |
---|
title | values.yaml |
---|
|
# Default values for mariadb-backup.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
image:
tag: "ktimoney/mysqldump_backup"
backoffLimit: 34
schedule: "\"*/155 * * * *\""
volumes:
name: backup-pv
storageClassName:
path: /run/desktop/mnt/host/c/mariadb/backup
accessModes: ReadWriteOnce
capacity:
storage: 50Mi
persistentVolumeReclaimPolicy: Retain
nodeAffinity:
nodeSelectorTerms: docker-desktop
data:
backup_retention_interval: mmin # mmin for minutes, mtime for days
backup_retention_period: "\"120\""
db_host: host.docker.internal
db_port: "\3306"3355\""
db_user: YmFja3Vw
db_pwd: YmFja3Vw |
...
Code Block |
---|
language | yml |
---|
title | backupConfigMap.yaml |
---|
|
apiVersion: v1
kind: ConfigMap
metadata:
name: backup-config
namespace: default
data:
backup_retention_interval: {{ .Values.data.backup_retention_interval }}
backup_retention_period: {{ .Values.data.backup_retention_period | quote }}
db_host: {{ .Values.data.db_host }}
db_port: {{ .Values.data.db_port | quote }}
|
Code Block |
---|
language | yml |
---|
title | backupSecret.yaml |
---|
|
apiVersion: v1
kind: Secret
metadata:
name: backup-secret
type: Opaque
data:
db_user: {{ .Values.data.db_user }}
db_pwd: {{ .Values.data.db_pwd }} |
...
Code Block |
---|
language | yml |
---|
title | backupCronjob.yaml |
---|
|
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: backup-cron
spec:
schedule: {{ .Values.schedule | quote }}
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
volumes:
- name: backup-volume
persistentVolumeClaim:
claimName: backup-claim
containers:
- name: mysqldump-backup
image: {{ .Values.image.tag }}
volumeMounts:
- mountPath: /tmp
name: backup-volume
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: backup-config
key: db_host
- name: DB_PORT
valueFrom:
configMapKeyRef:
name: backup-config
key: db_port
- name: BACKUP_RETENTION_INTERVAL
valueFrom:
configMapKeyRef:
name: backup-config
key: backup_retention_interval
- name: BACKUP_RETENTION_PERIOD
valueFrom:
configMapKeyRef:
name: backup-config
key: backup_retention_period
- name: DB_USER
valueFrom:
secretKeyRef:
name: backup-secret
key: db_user
- name: DB_PWD
valueFrom:
secretKeyRef:
name: backup-secret
key: db_pwd
restartPolicy: Never
backoffLimit: {{ .Values.backoffLimit }} |
...
Replication as a Backup Solution
Testing
Backup Testing
Notes
We may need to create a user specifically for doing backups:
...