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: []
|
||||
affinity: {}
|
||||
|
||||
migrateJob:
|
||||
enabled: true
|
||||
annotations: {}
|
||||
databaseUrlSecret:
|
||||
name: ""
|
||||
key: DATABASE_URL
|
||||
create: true
|
||||
databaseUrl: ""
|
||||
username: ""
|
||||
password: ""
|
||||
databaseName: papercrate
|
||||
extraEnv: []
|
||||
envFrom: []
|
||||
resources: {}
|
||||
|
||||
frontend:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
|
||||
Reference in New Issue
Block a user