2022-12-03 04:44:39 +00:00
{{- $context := . }}
{{- range .Values.mastodon.sidekiq.workers }}
---
2020-06-29 11:58:48 +00:00
apiVersion : apps/v1
kind : Deployment
metadata :
2022-12-03 04:44:39 +00:00
name : {{ include "mastodon.fullname" $context }}-sidekiq-{{ .name }}
2020-06-29 11:58:48 +00:00
labels :
2022-12-03 04:44:39 +00:00
{{- include "mastodon.labels" $context | nindent 4 }}
2024-09-12 13:59:12 +00:00
{{- with $context.Values.mastodon.sidekiq.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
2022-12-03 04:44:39 +00:00
app.kubernetes.io/component : sidekiq-{{ .name }}
app.kubernetes.io/part-of : rails
2023-04-19 22:31:36 +00:00
annotations :
2023-04-20 15:15:48 +00:00
{{- with $context.Values.deploymentAnnotations }}
2023-04-19 22:31:36 +00:00
{{- toYaml . | nindent 4 }}
{{- end }}
2024-09-12 13:59:12 +00:00
{{- with $context.Values.mastodon.sidekiq.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
2020-06-29 11:58:48 +00:00
spec :
2022-12-03 04:44:39 +00:00
{{- if (has "scheduler" .queues) }}
{{- if (gt (int .replicas) 1) }}
{{ fail "The scheduler queue should never have more than 1 replicas" }}
{{- end }}
2024-07-10 14:26:02 +00:00
{{- end }}
{{- if $context.Values.mastodon.sidekiq.updateStrategy }}
strategy : {{- toYaml $context.Values.mastodon.sidekiq.updateStrategy | nindent 4 }}
2022-11-10 22:24:39 +00:00
{{- end }}
2022-12-03 04:44:39 +00:00
replicas : {{ .replicas }}
2024-02-16 10:32:01 +00:00
{{- if (ne (toString $context.Values.mastodon.revisionHistoryLimit) "<nil>") }}
revisionHistoryLimit : {{ $context.Values.mastodon.revisionHistoryLimit }}
{{- end }}
2020-06-29 11:58:48 +00:00
selector :
matchLabels :
2022-12-03 04:44:39 +00:00
{{- include "mastodon.selectorLabels" $context | nindent 6 }}
app.kubernetes.io/component : sidekiq-{{ .name }}
2022-11-08 16:21:06 +00:00
app.kubernetes.io/part-of : rails
2020-06-29 11:58:48 +00:00
template :
metadata :
annotations :
2022-12-03 04:44:39 +00:00
{{- with $context.Values.podAnnotations }}
2020-06-29 11:58:48 +00:00
{{- toYaml . | nindent 8 }}
2022-11-10 18:10:38 +00:00
{{- end }}
2024-09-12 13:59:12 +00:00
{{- with $context.Values.mastodon.sidekiq.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
2022-11-10 18:10:38 +00:00
# roll the pods to pick up any db migrations or other changes
2022-12-03 04:44:39 +00:00
{{- include "mastodon.rollingPodAnnotations" $context | nindent 8 }}
2024-02-14 17:08:13 +00:00
checksum/config-secrets-smtp : {{ include ( print $.Template.BasePath "/secret-smtp.yaml" ) $context | sha256sum | quote }}
2020-06-29 11:58:48 +00:00
labels :
2023-12-12 09:39:27 +00:00
{{- include "mastodon.globalLabels" $context | nindent 8 }}
2022-12-03 04:44:39 +00:00
{{- include "mastodon.selectorLabels" $context | nindent 8 }}
2023-12-07 15:12:55 +00:00
{{- include "mastodon.statsdExporterLabels" $context | nindent 8 }}
2025-03-14 08:37:30 +00:00
{{- with $context.Values.mastodon.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
2024-09-12 13:59:12 +00:00
{{- with $context.Values.mastodon.sidekiq.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
2022-12-03 04:44:39 +00:00
app.kubernetes.io/component : sidekiq-{{ .name }}
2022-11-08 16:21:06 +00:00
app.kubernetes.io/part-of : rails
2020-06-29 11:58:48 +00:00
spec :
2022-12-03 04:44:39 +00:00
{{- with $context.Values.imagePullSecrets }}
2020-06-29 11:58:48 +00:00
imagePullSecrets :
{{- toYaml . | nindent 8 }}
{{- end }}
2022-12-03 04:44:39 +00:00
serviceAccountName : {{ include "mastodon.serviceAccountName" $context }}
{{- with (default $context.Values.podSecurityContext $context.Values.mastodon.sidekiq.podSecurityContext) }}
2020-06-29 11:58:48 +00:00
securityContext :
2022-11-10 22:24:39 +00:00
{{- toYaml . | nindent 8 }}
{{- end }}
2022-12-03 04:44:39 +00:00
{{- with (default (default $context.Values.affinity $context.Values.mastodon.sidekiq.affinity) .affinity) }}
2020-06-29 11:58:48 +00:00
affinity :
2022-12-03 04:44:39 +00:00
{{- toYaml . | nindent 8 }}
2020-06-29 11:58:48 +00:00
{{- end }}
2023-12-15 07:30:22 +00:00
{{- with (default (default $context.Values.topologySpreadConstraints $context.Values.mastodon.sidekiq.topologySpreadConstraints) .topologySpreadConstraints) }}
topologySpreadConstraints :
{{- toYaml . | nindent 8 }}
{{- end }}
2020-06-29 11:58:48 +00:00
volumes :
2024-01-19 11:39:42 +00:00
{{- if (not $context.Values.mastodon.s3.enabled) }}
2020-06-29 11:58:48 +00:00
- name : assets
persistentVolumeClaim :
2024-04-23 09:22:42 +00:00
claimName : {{ template "mastodon.pvc.assets" $context }}
2020-06-29 11:58:48 +00:00
- name : system
persistentVolumeClaim :
2024-04-23 09:22:42 +00:00
claimName : {{ template "mastodon.pvc.system" $context }}
2021-02-19 08:52:32 +00:00
{{- end }}
2023-12-07 15:12:55 +00:00
{{- include "mastodon.statsdExporterVolume" $ | indent 8 }}
2023-12-18 12:45:00 +00:00
{{- if dig "customDatabaseConfigYml" "configMapRef" "name" false . }}
- name : config-database-yml
configMap :
name : {{ .customDatabaseConfigYml.configMapRef.name }}
{{- end }}
2024-01-19 11:39:42 +00:00
{{- with $context.Values.volumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
2020-06-29 11:58:48 +00:00
containers :
2022-12-03 04:44:39 +00:00
- name : {{ $context.Chart.Name }}
2024-04-22 07:27:20 +00:00
{{- with $context.Values.mastodon.sidekiq.securityContext | default $context.Values.securityContext }}
2020-06-29 11:58:48 +00:00
securityContext :
2024-04-22 07:27:20 +00:00
{{- toYaml . | nindent 12 }}
{{- end }}
2023-12-18 12:45:00 +00:00
image : "{{ coalesce (dig " image" "repository" false .) $context.Values.image.repository }}:{{ coalesce (dig "image" "tag" false .) $context.Values.image.tag $context.Chart.AppVersion }}"
2022-12-03 04:44:39 +00:00
imagePullPolicy : {{ $context.Values.image.pullPolicy }}
2020-06-29 11:58:48 +00:00
command :
- bundle
- exec
- sidekiq
- -c
2022-12-03 04:44:39 +00:00
- {{ .concurrency | quote }}
{{- range .queues }}
- -q
- {{ . | quote }}
{{- end }}
2020-06-29 11:58:48 +00:00
envFrom :
- configMapRef :
2022-12-03 04:44:39 +00:00
name : {{ include "mastodon.fullname" $context }}-env
2020-06-29 11:58:48 +00:00
- secretRef :
2022-12-03 04:44:39 +00:00
name : {{ template "mastodon.secretName" $context }}
2024-02-16 07:59:05 +00:00
{{- if $context.Values.mastodon.extraEnvFrom }}
- configMapRef :
name : {{ $context.Values.mastodon.extraEnvFrom }}
{{- end}}
2020-06-29 11:58:48 +00:00
env :
- name : "DB_PASS"
valueFrom :
secretKeyRef :
2022-12-03 04:44:39 +00:00
name : {{ template "mastodon.postgresql.secretName" $context }}
2022-11-08 16:18:57 +00:00
key : password
2024-01-11 11:56:14 +00:00
{{- if $context.Values.postgresql.readReplica.auth.existingSecret }}
- name : "REPLICA_DB_PASS"
valueFrom :
secretKeyRef :
name : {{ $context.Values.postgresql.readReplica.auth.existingSecret }}
key : password
{{- end }}
2020-06-29 11:58:48 +00:00
- name : "REDIS_PASSWORD"
valueFrom :
secretKeyRef :
2022-12-03 04:44:39 +00:00
name : {{ template "mastodon.redis.secretName" $context }}
2020-06-29 11:58:48 +00:00
key : redis-password
2024-05-14 20:39:02 +00:00
{{- if and $context.Values.redis.sidekiq.enabled $context.Values.redis.sidekiq.auth.existingSecret }}
- name : "SIDEKIQ_REDIS_PASSWORD"
valueFrom :
secretKeyRef :
name : {{ template "mastodon.redis.sidekiq.secretName" $context }}
key : redis-password
{{- end }}
{{- if and $context.Values.redis.cache.enabled $context.Values.redis.cache.auth.existingSecret }}
- name : "CACHE_REDIS_PASSWORD"
valueFrom :
secretKeyRef :
name : {{ template "mastodon.redis.cache.secretName" $context }}
key : redis-password
{{- end }}
2023-12-15 07:11:13 +00:00
{{- if and $context.Values.elasticsearch.existingSecret (or $context.Values.elasticsearch.enabled $context.Values.elasticsearch.hostname) }}
- name : "ES_PASS"
valueFrom :
secretKeyRef :
name : {{ $context.Values.elasticsearch.existingSecret }}
key : password
{{- end }}
2023-01-27 21:05:37 +00:00
- name : "SMTP_LOGIN"
valueFrom :
secretKeyRef :
name : {{ include "mastodon.smtp.secretName" $context }}
key : login
optional : true
- name : "SMTP_PASSWORD"
valueFrom :
secretKeyRef :
name : {{ include "mastodon.smtp.secretName" $context }}
key : password
2024-04-18 14:12:36 +00:00
optional : true
2022-12-03 04:44:39 +00:00
{{- if (and $context.Values.mastodon.s3.enabled $context.Values.mastodon.s3.existingSecret) }}
2022-11-05 16:29:20 +00:00
- name : "AWS_SECRET_ACCESS_KEY"
valueFrom :
secretKeyRef :
2022-12-03 04:44:39 +00:00
name : {{ $context.Values.mastodon.s3.existingSecret }}
2022-11-05 16:29:20 +00:00
key : AWS_SECRET_ACCESS_KEY
- name : "AWS_ACCESS_KEY_ID"
valueFrom :
secretKeyRef :
2022-12-03 04:44:39 +00:00
name : {{ $context.Values.mastodon.s3.existingSecret }}
2022-11-05 16:29:20 +00:00
key : AWS_ACCESS_KEY_ID
2022-11-10 22:24:39 +00:00
{{- end }}
2023-12-13 14:26:14 +00:00
{{- if and $context.Values.mastodon.deepl.enabled }}
- name : "DEEPL_API_KEY"
valueFrom :
secretKeyRef :
name : {{ $context.Values.mastodon.deepl.apiKeySecretRef.name }}
key : {{ $context.Values.mastodon.deepl.apiKeySecretRef.key }}
{{- end }}
2024-01-11 11:56:04 +00:00
{{- if and $context.Values.mastodon.cacheBuster.enabled $context.Values.mastodon.cacheBuster.authToken.existingSecret }}
- name : CACHE_BUSTER_SECRET
valueFrom :
secretKeyRef :
name : {{ $context.Values.mastodon.cacheBuster.authToken.existingSecret }}
key : password
{{- end }}
2024-07-19 13:00:22 +00:00
{{- if or $context.Values.mastodon.sidekiq.otel.enabled (and $context.Values.mastodon.otel.enabled (ne $context.Values.mastodon.sidekiq.otel.enabled false)) }}
- name : OTEL_EXPORTER_OTLP_ENDPOINT
value : {{ coalesce $context.Values.mastodon.sidekiq.otel.endpointUri $context.Values.mastodon.otel.endpointUri }}
- name : OTEL_SERVICE_NAME_PREFIX
value : {{ coalesce $context.Values.mastodon.sidekiq.otel.namePrefix $context.Values.mastodon.otel.namePrefix }}
2024-09-30 14:22:26 +00:00
- name : OTEL_SERVICE_NAME_SEPARATOR
2024-10-01 09:33:30 +00:00
value : "{{ coalesce $context.Values.mastodon.sidekiq.otel.nameSeparator $context.Values.mastodon.otel.nameSeparator }}"
2024-07-19 13:00:22 +00:00
{{- end }}
2025-03-06 08:53:04 +00:00
{{- if $context.Values.mastodon.metrics.prometheus.enabled }}
- name : MASTODON_PROMETHEUS_EXPORTER_ENABLED
value : "true"
- name : MASTODON_PROMETHEUS_EXPORTER_LOCAL
value : "true"
- name : MASTODON_PROMETHEUS_EXPORTER_HOST
value : "0.0.0.0"
- name : MASTODON_PROMETHEUS_EXPORTER_PORT
value : "{{ $context.Values.mastodon.metrics.prometheus.port }}"
{{- if $context.Values.mastodon.metrics.prometheus.sidekiq.detailed }}
- name : MASTODON_PROMETHEUS_EXPORTER_SIDEKIQ_DETAILED_METRICS
value : "true"
{{- end }}
{{- end }}
{{- if $context.Values.mastodon.metrics.prometheus.enabled }}
ports :
- name : prometheus
containerPort : {{ $context.Values.mastodon.metrics.prometheus.port }}
{{- end }}
2020-06-29 11:58:48 +00:00
volumeMounts :
2024-01-19 11:39:42 +00:00
{{- if (not $context.Values.mastodon.s3.enabled) }}
2020-06-29 11:58:48 +00:00
- name : assets
mountPath : /opt/mastodon/public/assets
- name : system
mountPath : /opt/mastodon/public/system
2021-02-19 08:52:32 +00:00
{{- end }}
2023-12-18 12:45:00 +00:00
{{- if dig "customDatabaseConfigYml" "configMapRef" "name" false . }}
- name : config-database-yml
mountPath : /opt/mastodon/config/database.yml
subPath : {{ .customDatabaseConfigYml.configMapRef.key }}
{{- end }}
2024-01-19 11:39:42 +00:00
{{- with $context.Values.volumeMounts }}
{{- toYaml . | nindent 12 }}
{{- end }}
2024-07-10 14:26:02 +00:00
{{- if $context.Values.mastodon.sidekiq.readinessProbe.enabled }}
readinessProbe :
failureThreshold : {{ default 10 $context.Values.mastodon.sidekiq.readinessProbe.failureThreshold }}
exec :
command :
- cat
- {{ required "A valid sidekiq readiness path is required." $context.Values.mastodon.sidekiq.readinessProbe.path }}
initialDelaySeconds : {{ default 10 $context.Values.mastodon.sidekiq.readinessProbe.initialDelaySeconds }}
periodSeconds : {{ default 2 $context.Values.mastodon.sidekiq.readinessProbe.periodSeconds }}
successThreshold : {{ default 1 $context.Values.mastodon.sidekiq.readinessProbe.successThreshold }}
timeoutSeconds : {{ default 1 $context.Values.mastodon.sidekiq.readinessProbe.timeoutSeconds }}
{{- end }}
2020-06-29 11:58:48 +00:00
resources :
2022-12-03 04:44:39 +00:00
{{- toYaml (default (default $context.Values.resources $context.Values.mastodon.sidekiq.resources) .resources) | nindent 12 }}
2023-12-07 15:12:55 +00:00
{{- include "mastodon.statsdExporterContainer" $ | indent 8 }}
2022-12-03 04:44:39 +00:00
{{- with $context.Values.nodeSelector }}
2020-06-29 11:58:48 +00:00
nodeSelector :
{{- toYaml . | nindent 8 }}
{{- end }}
2022-12-03 04:44:39 +00:00
{{- with $context.Values.tolerations }}
2020-06-29 11:58:48 +00:00
tolerations :
{{- toYaml . | nindent 8 }}
{{- end }}
2022-12-03 04:44:39 +00:00
{{- end }}