apiVersion: apps/v1 kind: Deployment metadata: name: alert-processor-service namespace: bakery-ia labels: app.kubernetes.io/name: alert-processor-service app.kubernetes.io/component: worker app.kubernetes.io/part-of: bakery-ia spec: replicas: 2 selector: matchLabels: app.kubernetes.io/name: alert-processor-service app.kubernetes.io/component: worker template: metadata: labels: app.kubernetes.io/name: alert-processor-service app.kubernetes.io/component: worker spec: initContainers: - name: wait-for-migration image: postgres:17-alpine command: - sh - -c - | echo "Waiting for alert-processor database and migrations to be ready..." # Wait for database to be accessible until pg_isready -h $ALERT_PROCESSOR_DB_HOST -p $ALERT_PROCESSOR_DB_PORT -U $ALERT_PROCESSOR_DB_USER; do echo "Database not ready yet, waiting..." sleep 2 done echo "Database is ready!" # Give migrations extra time to complete after DB is ready echo "Waiting for migrations to complete..." sleep 10 echo "Ready to start service" env: - name: ALERT_PROCESSOR_DB_HOST valueFrom: configMapKeyRef: name: bakery-config key: ALERT_PROCESSOR_DB_HOST - name: ALERT_PROCESSOR_DB_PORT valueFrom: configMapKeyRef: name: bakery-config key: DB_PORT - name: ALERT_PROCESSOR_DB_USER valueFrom: secretKeyRef: name: database-secrets key: ALERT_PROCESSOR_DB_USER - name: wait-for-database image: busybox:1.36 command: - sh - -c - | echo "Waiting for alert processor database to be ready..." until nc -z $ALERT_PROCESSOR_DB_HOST $ALERT_PROCESSOR_DB_PORT; do echo "Database not ready yet, waiting..." sleep 2 done echo "Database is ready!" env: - name: ALERT_PROCESSOR_DB_HOST valueFrom: configMapKeyRef: name: bakery-config key: ALERT_PROCESSOR_DB_HOST - name: ALERT_PROCESSOR_DB_PORT valueFrom: configMapKeyRef: name: bakery-config key: DB_PORT - name: wait-for-rabbitmq image: busybox:1.36 command: - sh - -c - | echo "Waiting for RabbitMQ to be ready..." until nc -z $RABBITMQ_HOST $RABBITMQ_PORT; do echo "RabbitMQ not ready yet, waiting..." sleep 2 done echo "RabbitMQ is ready!" env: - name: RABBITMQ_HOST valueFrom: configMapKeyRef: name: bakery-config key: RABBITMQ_HOST - name: RABBITMQ_PORT valueFrom: configMapKeyRef: name: bakery-config key: RABBITMQ_PORT containers: - name: alert-processor-service image: bakery/alert-processor:f246381-dirty envFrom: - configMapRef: name: bakery-config - secretRef: name: database-secrets - secretRef: name: redis-secrets - secretRef: name: rabbitmq-secrets - secretRef: name: jwt-secrets - secretRef: name: external-api-secrets - secretRef: name: payment-secrets - secretRef: name: email-secrets - secretRef: name: monitoring-secrets - secretRef: name: pos-integration-secrets - secretRef: name: whatsapp-secrets resources: requests: memory: "128Mi" cpu: "50m" limits: memory: "256Mi" cpu: "200m" readinessProbe: exec: command: - python - -c - "import sys; sys.exit(0)" initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 livenessProbe: exec: command: - python - -c - "import sys; sys.exit(0)" initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3