123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- {{- if .Values.mastodon.hooks.s3Upload.enabled -}}
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: {{ include "mastodon.fullname" . }}-assets-upload
- labels:
- {{- include "mastodon.labels" . | nindent 4 }}
- annotations:
- "helm.sh/hook": pre-install,pre-upgrade
- "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
- "helm.sh/hook-weight": "-1"
- spec:
- template:
- metadata:
- name: {{ include "mastodon.fullname" . }}-assets-upload
- {{- with .Values.jobAnnotations }}
- annotations:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- spec:
- {{- with .Values.imagePullSecrets }}
- imagePullSecrets:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- volumes:
- restartPolicy: Never
- initContainers:
- - name: extract-assets
- image: "{{ coalesce .Values.mastodon.web.image.repository .Values.image.repository }}:{{ coalesce .Values.mastodon.web.image.tag .Values.image.tag .Chart.AppVersion }}"
- imagePullPolicy: Always
- command:
- - cp
- args:
- - -rv
- - public
- - /assets
- volumeMounts:
- - mountPath: /assets
- name: assets
- containers:
- - name: upload-assets
- image: rclone/rclone:1
- imagePullPolicy: Always
- env:
- - name: RCLONE_S3_NO_CHECK_BUCKET
- value: "true"
- - name: RCLONE_S3_ACL
- value: {{ required "Please specify a canned ACL for S3 asset uploads" .Values.mastodon.hooks.s3Upload.acl }}
- - name: RCLONE_CONFIG_REMOTE_TYPE
- value: s3
- - name: RCLONE_CONFIG_REMOTE_PROVIDER
- value: AWS
- - name: RCLONE_CONFIG_REMOTE_ENDPOINT
- value: {{ required "Please specify an endpoint for S3 asset uploads" .Values.mastodon.hooks.s3Upload.endpoint }}
- - name: RCLONE_CONFIG_REMOTE_ACCESS_KEY_ID
- valueFrom:
- secretKeyRef:
- name: {{ required "Please specify a secret with S3 credentials for S3 asset uploads" .Values.mastodon.hooks.s3Upload.secretRef.name }}
- key: {{ .Values.mastodon.hooks.s3Upload.secretRef.keys.accesKeyId }}
- - name: RCLONE_CONFIG_REMOTE_SECRET_ACCESS_KEY
- valueFrom:
- secretKeyRef:
- name: {{ required "Please specify a secret with S3 credentials for S3 asset uploads" .Values.mastodon.hooks.s3Upload.secretRef.name }}
- key: {{ .Values.mastodon.hooks.s3Upload.secretRef.keys.secretAccessKey }}
- {{- with .Values.mastodon.hooks.s3Upload.rclone.env }}
- {{- toYaml . | nindent 12 }}
- {{- end }}
- command:
- - rclone
- args:
- - copy
- - /assets/public
- - "remote:{{ required "Please specify a bucket for S3 asset uploads" .Values.mastodon.hooks.s3Upload.bucket }}"
- - --fast-list
- - --transfers=32
- - --include
- - "{assets,packs}/**"
- - --progress
- - -vv
- volumeMounts:
- - mountPath: /assets
- name: assets
- resources:
- requests:
- cpu: 100m
- memory: 256Mi
- limits:
- memory: 500Mi
- volumes:
- - name: assets
- emptyDir: {}
- {{- end -}}
|