apiVersion: apps/v1 kind: Deployment metadata: name: webinar-checker namespace: edu-master labels: app: edu-master-webinar-checker spec: replicas: 1 selector: matchLabels: app: edu-master-webinar-checker template: metadata: 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: - name: wait-deps image: redis:alpine command: - /bin/sh - -ec - | i=0 until redis-cli -h redis ping | grep -q PONG; do i=$((i+1)) [ "$i" -ge 300 ] && echo "TIMEOUT: redis not ready" && exit 1 sleep 2 done echo "redis ok" until [ "$(redis-cli -h redis EXISTS EDU_PHPSESSID)" = "1" ]; do i=$((i+1)) [ "$i" -ge 300 ] && echo "TIMEOUT: no PHPSESSID (session-keeper down?)" && exit 1 sleep 2 done echo "PHPSESSID ok" until nc -z playwright-service 3000; do i=$((i+1)) [ "$i" -ge 300 ] && echo "TIMEOUT: playwright-service not reachable" && exit 1 sleep 2 done echo "playwright ok" containers: - name: webinar-checker image: gcr.forust.xyz/forust/webinar-checker:latest imagePullPolicy: Always envFrom: - secretRef: name: edu-master-secrets env: - name: TZ value: "Europe/Kyiv" resources: requests: cpu: 25m memory: 128Mi limits: cpu: 300m memory: 384Mi