helm migration
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
{{- if .Values.migrateJob.enabled }}
|
||||||
|
{{- $defaultMigrateSecret := printf "%s-migrate-env" (include "papercrate.fullname" .) }}
|
||||||
|
{{- $migrateSecretName := default $defaultMigrateSecret .Values.migrateJob.databaseUrlSecret.name }}
|
||||||
|
{{- $migrateSecretKey := default "DATABASE_URL" .Values.migrateJob.databaseUrlSecret.key }}
|
||||||
|
{{- if and (not .Values.migrateJob.databaseUrlSecret.create) (not .Values.migrateJob.databaseUrlSecret.name) }}
|
||||||
|
{{- fail "migrateJob.databaseUrlSecret.name must be set when create=false" }}
|
||||||
|
{{- end }}
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: {{ include "papercrate.fullname" . }}-migrate
|
||||||
|
labels:
|
||||||
|
{{- include "papercrate.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: migrate
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": post-install,post-upgrade
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||||
|
"helm.sh/hook-weight": "5"
|
||||||
|
{{- range $key, $value := .Values.migrateJob.annotations }}
|
||||||
|
{{ $key }}: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "papercrate.selectorLabels" . | nindent 8 }}
|
||||||
|
app.kubernetes.io/component: migrate
|
||||||
|
spec:
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- if or .Values.global.imagePullSecrets .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.imagePullSecrets }}
|
||||||
|
- name: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
containers:
|
||||||
|
- name: migrate
|
||||||
|
image: {{ include "papercrate.backend.image" . }}:{{ include "papercrate.image.tag" (dict "image" .Values.backend.image "Chart" .Chart) }}
|
||||||
|
imagePullPolicy: {{ .Values.backend.image.pullPolicy }}
|
||||||
|
command:
|
||||||
|
- /usr/local/bin/papercrate-admin
|
||||||
|
- migrate-database
|
||||||
|
env:
|
||||||
|
- name: SERVER_HOST
|
||||||
|
value: 0.0.0.0
|
||||||
|
- name: SERVER_PORT
|
||||||
|
value: {{ .Values.backend.service.port | quote }}
|
||||||
|
{{- with .Values.global.s3.endpoint }}
|
||||||
|
- name: AWS_ENDPOINT_URL
|
||||||
|
value: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.global.s3.region }}
|
||||||
|
- name: AWS_REGION
|
||||||
|
value: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.global.s3.bucket }}
|
||||||
|
- name: S3_BUCKET
|
||||||
|
value: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
- name: MIGRATIONS_DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ $migrateSecretName }}
|
||||||
|
key: {{ $migrateSecretKey }}
|
||||||
|
{{- range .Values.migrateJob.extraEnv }}
|
||||||
|
- name: {{ .name }}
|
||||||
|
value: {{ .value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: {{ if .Values.backend.env.existingSecret }}{{ .Values.backend.env.existingSecret }}{{ else }}{{ include "papercrate.fullname" . }}-backend-env{{ end }}
|
||||||
|
{{- with .Values.global.s3.credentialsSecret }}
|
||||||
|
- secretRef:
|
||||||
|
name: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.backend.envFrom }}
|
||||||
|
- {{ toYaml . | nindent 12 | trim }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.migrateJob.envFrom }}
|
||||||
|
- {{ toYaml . | nindent 12 | trim }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.migrateJob.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{{- if and .Values.migrateJob.enabled .Values.migrateJob.databaseUrlSecret.create }}
|
||||||
|
{{- $defaultName := printf "%s-migrate-env" (include "papercrate.fullname" .) }}
|
||||||
|
{{- $secretName := default $defaultName .Values.migrateJob.databaseUrlSecret.name }}
|
||||||
|
{{- $databaseUrl := .Values.migrateJob.databaseUrlSecret.databaseUrl }}
|
||||||
|
{{- $username := default .Values.postgres.auth.username .Values.migrateJob.databaseUrlSecret.username }}
|
||||||
|
{{- $password := default .Values.postgres.auth.password .Values.migrateJob.databaseUrlSecret.password }}
|
||||||
|
{{- $database := default (default "papercrate" .Values.backend.env.databaseName) .Values.migrateJob.databaseUrlSecret.databaseName }}
|
||||||
|
{{- $dbHost := printf "%s-postgres" (include "papercrate.fullname" .) }}
|
||||||
|
{{- if not $databaseUrl }}
|
||||||
|
{{- if not .Values.postgres.enabled }}
|
||||||
|
{{- fail "migrateJob.databaseUrlSecret.databaseUrl must be set when postgres.enabled is false" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if or (not $username) (not $password) }}
|
||||||
|
{{- fail "migrateJob.databaseUrlSecret.username/password (or postgres.auth.username/password) must be provided" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- $databaseUrl = printf "postgres://%s:%s@%s:5432/%s" $username $password $dbHost $database }}
|
||||||
|
{{- end }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
labels:
|
||||||
|
{{- include "papercrate.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: migrate
|
||||||
|
stringData:
|
||||||
|
{{ default "DATABASE_URL" .Values.migrateJob.databaseUrlSecret.key }}: {{ $databaseUrl | quote }}
|
||||||
|
{{- end }}
|
||||||
@@ -59,6 +59,21 @@ worker:
|
|||||||
tolerations: []
|
tolerations: []
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
|
migrateJob:
|
||||||
|
enabled: true
|
||||||
|
annotations: {}
|
||||||
|
databaseUrlSecret:
|
||||||
|
name: ""
|
||||||
|
key: DATABASE_URL
|
||||||
|
create: true
|
||||||
|
databaseUrl: ""
|
||||||
|
username: ""
|
||||||
|
password: ""
|
||||||
|
databaseName: papercrate
|
||||||
|
extraEnv: []
|
||||||
|
envFrom: []
|
||||||
|
resources: {}
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
enabled: true
|
enabled: true
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|||||||
Reference in New Issue
Block a user