diff options
author | Alex Dunn <dunn.alex@gmail.com> | 2020-10-12 16:19:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-13 01:19:13 +0200 |
commit | 53b22d247fb8500ea977774d727fe0d41950189c (patch) | |
tree | 75cef29c3f00fcd2a4c6718a7a2d4a5a5811eb89 | |
parent | 96761752eccfc0d239974a24e0cc2d74c6aee7ac (diff) |
helm: add optional cron job to run `tootctl remove media` (#14396)
-rw-r--r-- | chart/templates/cronjob-media-remove.yaml | 73 | ||||
-rw-r--r-- | chart/values.yaml.template | 6 |
2 files changed, 79 insertions, 0 deletions
diff --git a/chart/templates/cronjob-media-remove.yaml b/chart/templates/cronjob-media-remove.yaml new file mode 100644 index 000000000..5d78f3395 --- /dev/null +++ b/chart/templates/cronjob-media-remove.yaml @@ -0,0 +1,73 @@ +{{ if .Values.cron.removeMedia.enabled }} +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ include "mastodon.fullname" . }}-media-remove + labels: + {{- include "mastodon.labels" . | nindent 4 }} +spec: + schedule: {{ .Values.cron.removeMedia.schedule }} + jobTemplate: + spec: + template: + metadata: + name: {{ include "mastodon.fullname" . }}-media-remove + spec: + restartPolicy: OnFailure + # 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" . }}-media-remove + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - bin/tootctl + - media + - remove + envFrom: + - configMapRef: + name: {{ include "mastodon.fullname" . }}-env + - secretRef: + name: {{ template "mastodon.fullname" . }} + env: + - name: "DB_PASS" + valueFrom: + secretKeyRef: + {{- if .Values.postgresql.enabled }} + name: {{ .Release.Name }}-postgresql + {{- else }} + name: {{ template "mastodon.fullname" . }} + {{- end }} + 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 }} diff --git a/chart/values.yaml.template b/chart/values.yaml.template index ff680b81f..c18d2f0b5 100644 --- a/chart/values.yaml.template +++ b/chart/values.yaml.template @@ -39,6 +39,12 @@ createAdmin: # available locales: https://github.com/tootsuite/mastodon/blob/master/config/application.rb#L43 locale: en +cron: + # run `tootctl media remove` every week + removeMedia: + enabled: true + schedule: "0 0 * * 0" + application: web: port: 3000 |