Files
turbovault-app/k8s/migrate-job.yaml
Ryan Kazokas 69993a3bf5 Deploy to production: GitHub Actions + ghcr.io + Kubernetes
- Switch from Gitea to GitHub Container Registry (ghcr.io)
- Add GitHub Actions workflow with Tailscale connectivity
- Update k8s manifests for cloud nodes and Traefik ingress
- Configure for turbo.kazcloud.dev domain
- Test deployment with home page text change
2026-03-29 08:46:27 -04:00

64 lines
1.7 KiB
YAML

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