{{- if .Values.elasticsearch.enabled -}} apiVersion: batch/v1 kind: Job metadata: name: {{ include "mastodon.fullname" . }}-chewy-upgrade labels: {{- include "mastodon.labels" . | nindent 4 }} annotations: "helm.sh/hook": post-install "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded "helm.sh/hook-weight": "-1" spec: template: metadata: name: {{ include "mastodon.fullname" . }}-chewy-upgrade {{- with .Values.jobAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: restartPolicy: Never {{- if (not .Values.mastodon.s3.enabled) }} # ensure we run on the same node as the other rails components; only # required when using PVCs that are ReadWriteOnce {{- if or (eq "ReadWriteOnce" .Values.mastodon.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.mastodon.persistence.system.accessMode) }} affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app.kubernetes.io/part-of operator: In values: - rails topologyKey: kubernetes.io/hostname {{- end }} volumes: - name: assets persistentVolumeClaim: claimName: {{ template "mastodon.fullname" . }}-assets - name: system persistentVolumeClaim: claimName: {{ template "mastodon.fullname" . }}-system {{- end }} containers: - name: {{ include "mastodon.fullname" . }}-chewy-setup image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - bundle - exec - rake - chewy:upgrade envFrom: - configMapRef: name: {{ include "mastodon.fullname" . }}-env - secretRef: name: {{ template "mastodon.secretName" . }} env: - name: "DB_PASS" valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} key: password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: name: {{ template "mastodon.redis.secretName" . }} key: redis-password - name: "PORT" value: {{ .Values.mastodon.web.port | quote }} {{- if (not .Values.mastodon.s3.enabled) }} volumeMounts: - name: assets mountPath: /opt/mastodon/public/assets - name: system mountPath: /opt/mastodon/public/system {{- end }} {{- end }}