diff --git a/edu_master/k8s/restore-seed-job.yaml.example b/edu_master/k8s/restore-seed-job.yaml.example index 08de33d..c85b078 100644 --- a/edu_master/k8s/restore-seed-job.yaml.example +++ b/edu_master/k8s/restore-seed-job.yaml.example @@ -1,17 +1,17 @@ -# Разовый Job для переноса состояния redis из docker compose в k8s (maintenance window). -# Файл .example -> deploy-пайплайн его не применяет (маска *.example.yaml). +# 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 /edu_master/compose.yaml stop # SIGTERM -> redis сбросит dump.rdb +# 1. docker compose -f /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 <только PVC из redis.yaml> # seed строго ДО старта redis-пода +# 4. kubectl apply -f # 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 # остальные манифесты +# 7. kubectl apply -f edu_master/k8s/ -R # apply remaining manifests apiVersion: batch/v1 kind: Job metadata: @@ -47,4 +47,4 @@ spec: - name: backup hostPath: path: /tmp/edu-master-backup - type: DirectoryOrCreate \ No newline at end of file + type: DirectoryOrCreate diff --git a/edu_master/k8s/secrets.yaml.example b/edu_master/k8s/secrets.yaml.example index 5887bbe..ac30818 100644 --- a/edu_master/k8s/secrets.yaml.example +++ b/edu_master/k8s/secrets.yaml.example @@ -5,7 +5,7 @@ metadata: namespace: edu-master type: Opaque stringData: - # PHPSESSID keeper + # Session keeper credentials KEEPER_LOGIN: "" KEEPER_PASSWORD: "" KEEPER_INTERVAL: "10" @@ -23,4 +23,5 @@ stringData: WEBINAR_CHECK_INTERVAL: "60" # Database REDIS_HOST: "redis" - REDIS_PORT: "6379" \ No newline at end of file + REDIS_PORT: "6379" + TZ: "Europe/Kyiv" diff --git a/edu_master/k8s/webinar-checker.yaml b/edu_master/k8s/webinar-checker.yaml index 0813cc3..7d1324f 100644 --- a/edu_master/k8s/webinar-checker.yaml +++ b/edu_master/k8s/webinar-checker.yaml @@ -15,9 +15,9 @@ spec: labels: app: edu-master-webinar-checker spec: + # Enforces dependency order like compose depends_on: + # redis healthy -> session-keeper healthy (EXISTS EDU_PHPSESSID) -> playwright started initContainers: - # Держит порядок зависимостей как в compose depends_on: - # redis healthy -> session-keeper healthy (EXISTS EDU_PHPSESSID) -> playwright started - name: wait-deps image: redis:alpine command: @@ -50,6 +50,9 @@ spec: envFrom: - secretRef: name: edu-master-secrets + env: + - name: TZ + value: "Europe/Kyiv" resources: requests: cpu: 25m