88 lines
3.0 KiB
YAML
88 lines
3.0 KiB
YAML
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: demo-session-cleanup
|
|
namespace: bakery-ia
|
|
labels:
|
|
app: demo-cleanup
|
|
component: maintenance
|
|
spec:
|
|
schedule: "0 * * * *" # Every hour
|
|
timeZone: "Europe/Madrid"
|
|
successfulJobsHistoryLimit: 3
|
|
failedJobsHistoryLimit: 3
|
|
concurrencyPolicy: Forbid
|
|
jobTemplate:
|
|
metadata:
|
|
labels:
|
|
app: demo-cleanup
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: dockerhub-creds
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: demo-cleanup
|
|
spec:
|
|
initContainers:
|
|
- name: wait-for-migrations
|
|
image: postgres:17-alpine
|
|
command: ["sh", "-c",
|
|
"echo 'Waiting for database to be ready...' && \
|
|
until pg_isready -h demo-session-db-service -p 5432; do sleep 2; done && \
|
|
echo 'Database ready, checking for demo_sessions table...' && \
|
|
MAX_ATTEMPTS=60 && \
|
|
ATTEMPT=1 && \
|
|
until psql -h demo-session-db-service -U demo_session_user -d demo_session_db -c 'SELECT 1 FROM demo_sessions LIMIT 1;' 2>/dev/null; do \
|
|
if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then \
|
|
echo 'ERROR: demo_sessions table not created after maximum attempts'; \
|
|
exit 1; \
|
|
fi; \
|
|
echo \"Waiting for demo_sessions table to be created by migrations... (attempt $ATTEMPT/$MAX_ATTEMPTS)\"; \
|
|
ATTEMPT=$((ATTEMPT + 1)); \
|
|
sleep 5; \
|
|
done && \
|
|
echo 'demo_sessions table is ready!'"]
|
|
env:
|
|
- name: PGPASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: database-secrets
|
|
key: DEMO_SESSION_DB_PASSWORD
|
|
resources:
|
|
requests:
|
|
memory: "64Mi"
|
|
cpu: "50m"
|
|
limits:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
containers:
|
|
- name: cleanup-trigger
|
|
image: curlimages/curl:latest
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
echo "Triggering demo session cleanup..."
|
|
response=$(curl -s -w "\n%{http_code}" -X POST http://demo-session-service:8000/api/v1/demo/operations/cleanup)
|
|
http_code=$(echo "$response" | tail -n 1)
|
|
body=$(echo "$response" | sed '$d')
|
|
echo "Response: $body"
|
|
echo "HTTP Status: $http_code"
|
|
if [ "$http_code" -ge 200 ] && [ "$http_code" -lt 300 ]; then
|
|
echo "Cleanup job enqueued successfully"
|
|
exit 0
|
|
else
|
|
echo "Failed to enqueue cleanup job"
|
|
exit 1
|
|
fi
|
|
resources:
|
|
requests:
|
|
memory: "32Mi"
|
|
cpu: "10m"
|
|
limits:
|
|
memory: "64Mi"
|
|
cpu: "50m"
|
|
restartPolicy: OnFailure
|
|
activeDeadlineSeconds: 30
|