1
0
Fork 0

feat(deploy): add job to run migrations

This commit is contained in:
Vojtěch Mareš 2024-06-27 21:01:12 +02:00
parent 72bcaf4b32
commit 68436545be
Signed by: vojtech.mares
GPG key ID: C6827B976F17240D
4 changed files with 56 additions and 0 deletions

View file

@ -78,6 +78,7 @@ deploy:staging:
api ./deploy \ api ./deploy \
--values deploy/values.staging.yaml \ --values deploy/values.staging.yaml \
--set image.tag=$TAG \ --set image.tag=$TAG \
--set migrations.image.tag=$TAG \
--set imageCredentials.username=$REGISTRY_USERNAME \ --set imageCredentials.username=$REGISTRY_USERNAME \
--set imageCredentials.password=$REGISTRY_PASSWORD \ --set imageCredentials.password=$REGISTRY_PASSWORD \
--set config.database.url=$DATABASE_URL --set config.database.url=$DATABASE_URL

View file

@ -0,0 +1,36 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }}
labels:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "database-migrations"
batch.kubernetes.io/job-name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }}
spec:
ttlSecondsAfterFinished: 604800 # 1 week in seconds
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "database-migrations"
batch.kubernetes.io/job-name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }}
spec:
containers:
- name: migrations
image: "{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag }}"
command: ["/usr/local/bin/migrate"]
args: ["-path", "/srv/migrations/", "-database", "$MIGRATE_DATABASE_URL", "up"]
env:
- name: MIGRATE_DATABASE_URL
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}
key: "database_url.txt"
{{- with .Values.migrations.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
restartPolicy: Never
backoffLimit: 0

View file

@ -9,3 +9,8 @@ replicas: 2
image: image:
pullSecrets: pullSecrets:
- name: mareshq-gitlab-registry - name: mareshq-gitlab-registry
migrations:
image:
pullSecrets:
- name: mareshq-gitlab-registry

View file

@ -31,3 +31,17 @@ config:
port: 8080 port: 8080
database: database:
url: url:
migrations:
image:
pullSecrets: []
repository: registry.mareshq.com/hq/yggdrasil/migrations
tag: latest
resources:
limits:
cpu: 250m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi