about summary refs log tree commit diff
path: root/chart
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2020-10-21 19:10:50 +0200
committerThibaut Girka <thib@sitedethib.com>2020-10-21 19:10:50 +0200
commitec49aa81753ac71fa26b2ee86448fa5b481d49e4 (patch)
tree4b775e2e094af4886f24514ba6026f82af8e814a /chart
parent29870d2be6c0e78132416b5561aba20d6ca3c746 (diff)
parentca56527140034952002f8f7334da9f94c4f486a8 (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `.github/dependabot.yml`:
  Updated upstream, we deleted it to not be flooded by Depandabot.
  Kept deleted.
- `Gemfile.lock`:
  Puma updated on both sides, went for the most recent version.
- `app/controllers/api/v1/mutes_controller.rb`:
  Upstream updated the serializer to support timed mutes, while
  glitch-soc added a custom API ages ago to get information that
  is already available elsewhere.
  Dropped the glitch-soc-specific API, went with upstream changes.
- `app/javascript/core/admin.js`:
  Conflict due to changing how assets are loaded. Went with upstream.
- `app/javascript/packs/public.js`:
  Conflict due to changing how assets are loaded. Went with upstream.
- `app/models/mute.rb`:
  🤷
- `app/models/user.rb`:
  New user setting added upstream while we have glitch-soc-specific
  user settings. Added upstream's user setting.
- `config/settings.yml`:
  Upstream added a new user setting close to a user setting we had
  changed the defaults for. Added the new upstream setting.
- `package.json`:
  Upstream dependency updated “too close” to a glitch-soc-specific
  dependency. No real conflict. Updated the dependency.
Diffstat (limited to 'chart')
-rw-r--r--chart/templates/cronjob-media-remove.yaml73
-rw-r--r--chart/values.yaml.template6
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