{{- if .Values.createAdmin.enabled }} apiVersion: batch/v1 kind: Job metadata: name: {{ include "mastodon.fullname" . }}-create-admin 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" . }}-create-admin spec: restartPolicy: Never # 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.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: component 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 containers: - name: {{ include "mastodon.fullname" . }}-create-admin image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - bin/tootctl - accounts - create - {{ .Values.createAdmin.username }} - --email - {{ .Values.createAdmin.email }} - --confirmed - --role - admin envFrom: - configMapRef: name: {{ include "mastodon.fullname" . }}-env - secretRef: name: {{ template "mastodon.fullname" . }} env: - name: "DB_PASS" valueFrom: secretKeyRef: name: {{ .Release.Name }}-postgresql key: postgresql-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: name: {{ .Release.Name }}-redis key: redis-password - name: "PORT" value: {{ .Values.application.web.port | quote }} volumeMounts: - name: assets mountPath: /opt/mastodon/public/assets - name: system mountPath: /opt/mastodon/public/system {{- end }}