mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-01-27 18:18:41 +00:00
This patch refactors the secret selectors to use the `internal.cozystack.io/tenantresource` label for managing secret visibility and removes any selectors based on it or the previous `apps.cozystack.io/tenantresource` label, the idea being that this label will only ever be set by the controller. ``` [controller,api] Refactor labels for the secret selector. ``` Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
{{- if .Values.backup.enabled }}
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: {{ .Release.Name }}-backup-script
|
|
stringData:
|
|
backup.sh: |
|
|
#!/bin/sh
|
|
set -e
|
|
set -o pipefail
|
|
|
|
JOB_ID="job-$(uuidgen|cut -f1 -d-)"
|
|
DB_LIST=$(mysql -u "$MYSQL_USER" -h "$MYSQL_HOST" -sNe 'SHOW DATABASES;' | grep -v '^\(#.*\|mysql\|sys\|information_schema\|performance_schema\)$')
|
|
echo DB_LIST=$(echo "$DB_LIST" | shuf) # shuffle list
|
|
echo "Job ID: $JOB_ID"
|
|
echo "Target repo: $REPO_PREFIX"
|
|
echo "Cleanup strategy: $CLEANUP_STRATEGY"
|
|
echo "Start backup for:"
|
|
echo "$DB_LIST"
|
|
echo
|
|
echo "Backup started at `date +%Y-%m-%d\ %H:%M:%S`"
|
|
for db in $DB_LIST; do
|
|
(
|
|
set -x
|
|
restic -r "s3:${REPO_PREFIX}/$db" cat config >/dev/null 2>&1 || \
|
|
restic -r "s3:${REPO_PREFIX}/$db" init --repository-version 2
|
|
restic -r "s3:${REPO_PREFIX}/$db" unlock --remove-all >/dev/null 2>&1 || true # no locks, k8s takes care of it
|
|
mysqldump -u "$MYSQL_USER" -h "$MYSQL_HOST" --single-transaction --databases $db | \
|
|
restic -r "s3:${REPO_PREFIX}/$db" backup --tag "$JOB_ID" --stdin --stdin-filename dump.sql
|
|
restic -r "s3:${REPO_PREFIX}/$db" tag --tag "$JOB_ID" --set "completed"
|
|
)
|
|
done
|
|
echo "Backup finished at `date +%Y-%m-%d\ %H:%M:%S`"
|
|
|
|
echo
|
|
echo "Run cleanup:"
|
|
echo
|
|
|
|
echo "Cleanup started at `date +%Y-%m-%d\ %H:%M:%S`"
|
|
for db in $DB_LIST; do
|
|
(
|
|
set -x
|
|
restic forget -r "s3:${REPO_PREFIX}/$db" --group-by=tags --keep-tag "completed" # keep completed snapshots only
|
|
restic forget -r "s3:${REPO_PREFIX}/$db" --group-by=tags $CLEANUP_STRATEGY
|
|
restic prune -r "s3:${REPO_PREFIX}/$db"
|
|
)
|
|
done
|
|
echo "Cleanup finished at `date +%Y-%m-%d\ %H:%M:%S`"
|
|
{{- end }}
|