4c59a2d2fe
- restore-seed-job.yaml.example: translate runbook to English - secrets.yaml.example: translate section headers to English - webinar-checker.yaml: translate initContainer dependency-order comments to English Co-authored-by: assistant
51 lines
1.8 KiB
Plaintext
51 lines
1.8 KiB
Plaintext
# One-time Job to migrate redis state from docker compose to k8s (maintenance window).
|
|
# The .example file is not applied by the deploy pipeline (mask *.example.yaml).
|
|
#
|
|
# Runbook:
|
|
# 1. docker compose -f <repo>/edu_master/compose.yaml stop # SIGTERM -> redis will flush dump.rdb
|
|
# 2. docker run --rm -v edu_master_redis-data:/data \
|
|
# -v /tmp/edu-master-backup:/backup \
|
|
# redis:alpine sh -c "cp /data/dump.rdb /backup/ && ls -la /backup"
|
|
# 3. kubectl apply -f edu_master/k8s/namespace.yaml
|
|
# 4. kubectl apply -f <only the PVC from redis.yaml> # seed must come BEFORE redis pod starts
|
|
# 5. kubectl apply -f edu_master/k8s/restore-seed-job.yaml.example
|
|
# kubectl wait --for=condition=complete job/redis-restore-seed -n edu-master --timeout=120s
|
|
# 6. kubectl delete job redis-restore-seed -n edu-master
|
|
# 7. kubectl apply -f edu_master/k8s/ -R # apply remaining manifests
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: redis-restore-seed
|
|
namespace: edu-master
|
|
spec:
|
|
backoffLimit: 2
|
|
ttlSecondsAfterFinished: 3600
|
|
template:
|
|
spec:
|
|
restartPolicy: Never
|
|
containers:
|
|
- name: seed
|
|
image: redis:alpine
|
|
command:
|
|
- /bin/sh
|
|
- -ec
|
|
- |
|
|
ls -la /backup
|
|
cp /backup/dump.rdb /data/dump.rdb
|
|
chmod 644 /data/dump.rdb
|
|
ls -la /data
|
|
volumeMounts:
|
|
- name: redis-data
|
|
mountPath: /data
|
|
- name: backup
|
|
mountPath: /backup
|
|
readOnly: true
|
|
volumes:
|
|
- name: redis-data
|
|
persistentVolumeClaim:
|
|
claimName: redis-data-pvc
|
|
- name: backup
|
|
hostPath:
|
|
path: /tmp/edu-master-backup
|
|
type: DirectoryOrCreate
|