cronjob-media-remove.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {{ if .Values.mastodon.cron.removeMedia.enabled -}}
  2. apiVersion: batch/v1
  3. kind: CronJob
  4. metadata:
  5. name: {{ include "mastodon.fullname" . }}-media-remove
  6. labels:
  7. {{- include "mastodon.labels" . | nindent 4 }}
  8. spec:
  9. schedule: {{ .Values.mastodon.cron.removeMedia.schedule }}
  10. jobTemplate:
  11. spec:
  12. template:
  13. metadata:
  14. name: {{ include "mastodon.fullname" . }}-media-remove
  15. {{- with .Values.jobAnnotations }}
  16. annotations:
  17. {{- toYaml . | nindent 12 }}
  18. {{- end }}
  19. spec:
  20. restartPolicy: OnFailure
  21. {{- if (not .Values.mastodon.s3.enabled) }}
  22. # ensure we run on the same node as the other rails components; only
  23. # required when using PVCs that are ReadWriteOnce
  24. {{- if or (eq "ReadWriteOnce" .Values.mastodon.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.mastodon.persistence.system.accessMode) }}
  25. affinity:
  26. podAffinity:
  27. requiredDuringSchedulingIgnoredDuringExecution:
  28. - labelSelector:
  29. matchExpressions:
  30. - key: app.kubernetes.io/part-of
  31. operator: In
  32. values:
  33. - rails
  34. topologyKey: kubernetes.io/hostname
  35. {{- end }}
  36. volumes:
  37. - name: assets
  38. persistentVolumeClaim:
  39. claimName: {{ template "mastodon.pvc.assets" . }}
  40. - name: system
  41. persistentVolumeClaim:
  42. claimName: {{ template "mastodon.pvc.system" . }}
  43. {{- end }}
  44. containers:
  45. - name: {{ include "mastodon.fullname" . }}-media-remove
  46. image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
  47. imagePullPolicy: {{ .Values.image.pullPolicy }}
  48. command:
  49. - bin/tootctl
  50. - media
  51. - remove
  52. envFrom:
  53. - configMapRef:
  54. name: {{ include "mastodon.fullname" . }}-env
  55. - secretRef:
  56. name: {{ template "mastodon.secretName" . }}
  57. env:
  58. - name: "DB_PASS"
  59. valueFrom:
  60. secretKeyRef:
  61. name: {{ template "mastodon.postgresql.secretName" . }}
  62. key: password
  63. - name: "REDIS_PASSWORD"
  64. valueFrom:
  65. secretKeyRef:
  66. name: {{ template "mastodon.redis.secretName" . }}
  67. key: redis-password
  68. {{- if and .Values.redis.sidekiq.enabled .Values.redis.sidekiq.auth.existingSecret }}
  69. - name: "SIDEKIQ_REDIS_PASSWORD"
  70. valueFrom:
  71. secretKeyRef:
  72. name: {{ template "mastodon.redis.sidekiq.secretName" . }}
  73. key: redis-password
  74. {{- end }}
  75. {{- if and .Values.redis.cache.enabled .Values.redis.cache.auth.existingSecret }}
  76. - name: "CACHE_REDIS_PASSWORD"
  77. valueFrom:
  78. secretKeyRef:
  79. name: {{ template "mastodon.redis.cache.secretName" . }}
  80. key: redis-password
  81. {{- end }}
  82. {{- if and .Values.elasticsearch.existingSecret (or .Values.elasticsearch.enabled .Values.elasticsearch.hostname) }}
  83. - name: "ES_PASS"
  84. valueFrom:
  85. secretKeyRef:
  86. name: {{ .Values.elasticsearch.existingSecret }}
  87. key: password
  88. {{- end }}
  89. - name: "PORT"
  90. value: {{ .Values.mastodon.web.port | quote }}
  91. {{- if (and .Values.mastodon.s3.enabled .Values.mastodon.s3.existingSecret) }}
  92. - name: "AWS_SECRET_ACCESS_KEY"
  93. valueFrom:
  94. secretKeyRef:
  95. name: {{ .Values.mastodon.s3.existingSecret }}
  96. key: AWS_SECRET_ACCESS_KEY
  97. - name: "AWS_ACCESS_KEY_ID"
  98. valueFrom:
  99. secretKeyRef:
  100. name: {{ .Values.mastodon.s3.existingSecret }}
  101. key: AWS_ACCESS_KEY_ID
  102. {{- end }}
  103. {{- if (not .Values.mastodon.s3.enabled) }}
  104. volumeMounts:
  105. - name: assets
  106. mountPath: /opt/mastodon/public/assets
  107. - name: system
  108. mountPath: /opt/mastodon/public/system
  109. {{- end }}
  110. {{- end }}