apiVersion: batch/v1 kind: Job metadata: name: turbovault-migrate namespace: turbovault labels: app: turbovault job: migrate spec: backoffLimit: 3 template: metadata: labels: app: turbovault job: migrate spec: restartPolicy: OnFailure # Pull images from private GitHub Container Registry imagePullSecrets: - name: ghcr-secret containers: - name: migrate # UPDATE THIS: Replace with your registry path (same as deployment.yaml) image: ghcr.io/ryankazokas/turbovault-app:latest command: ["bin/rails", "db:migrate"] env: # Load from ConfigMap - name: RAILS_ENV valueFrom: configMapKeyRef: name: turbovault-config key: RAILS_ENV - name: DATABASE_HOST valueFrom: configMapKeyRef: name: turbovault-config key: DATABASE_HOST - name: DATABASE_PORT valueFrom: configMapKeyRef: name: turbovault-config key: DATABASE_PORT - name: DATABASE_NAME valueFrom: configMapKeyRef: name: turbovault-config key: DATABASE_NAME - name: DATABASE_USERNAME valueFrom: configMapKeyRef: name: turbovault-config key: DATABASE_USERNAME # Load from Secrets - name: DATABASE_PASSWORD valueFrom: secretKeyRef: name: turbovault-secrets key: DATABASE_PASSWORD - name: SECRET_KEY_BASE valueFrom: secretKeyRef: name: turbovault-secrets key: SECRET_KEY_BASE