diff --git a/templates/job-deploy-search.yaml b/templates/job-deploy-search.yaml new file mode 100644 index 0000000..ae1d1f1 --- /dev/null +++ b/templates/job-deploy-search.yaml @@ -0,0 +1,90 @@ +{{- if and .Values.mastodon.deploySearch.enabled .Values.elasticsearch.enabled -}} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "oliphaunt.fullname" . }}-deploy-search + labels: + {{- include "oliphaunt.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + "helm.sh/hook-weight": "-2" +spec: + suspend: false + template: + metadata: + name: {{ include "oliphaunt.fullname" . }}-deploy-search + {{- with .Values.jobAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + restartPolicy: Never + {{- if (not .Values.mastodon.s3.enabled) }} + # 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.mastodon.persistence.assets.accessMode) (eq "ReadWriteOnce" .Values.persistence.system.accessMode) }} + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/part-of + operator: In + values: + - rails + topologyKey: kubernetes.io/hostname + {{- end }} + volumes: + - name: assets + persistentVolumeClaim: + claimName: {{ template "oliphaunt.fullname" . }}-assets + - name: system + persistentVolumeClaim: + claimName: {{ template "oliphaunt.fullname" . }}-system + {{- end }} + containers: + - name: {{ include "oliphaunt.fullname" . }}-deploy-search + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + resources: + requests: + cpu: 700m + memory: 768Mi + command: + - bin/tootctl + - search + - deploy + {{- with .Values.mastodon.deploySearch.concurrency }} + - '--concurrency' + - {{ . | quote }} + {{- end }} + {{- if .Values.mastodon.deploySearch.resetChewy }} + - '--reset-chewy' + {{- end }} + envFrom: + - configMapRef: + name: {{ include "oliphaunt.fullname" . }}-mastodon-env + - secretRef: + name: {{ template "mastodon.secretName" $ }} + env: + - name: "DB_PASS" + valueFrom: + secretKeyRef: + name: {{ template "mastodon.postgresql.secretName" . }} + key: password + - name: "REDIS_PASSWORD" + valueFrom: + secretKeyRef: + name: {{ template "mastodon.redis.secretName" . }} + key: redis-password + - name: "PORT" + value: {{ .Values.mastodon.web.port | quote }} + {{- if (not .Values.mastodon.s3.enabled) }} + volumeMounts: + - name: assets + mountPath: /opt/mastodon/public/assets + - name: system + mountPath: /opt/mastodon/public/system + {{- end }} +{{- end }} diff --git a/values.yaml b/values.yaml index 073fd2e..700ae14 100644 --- a/values.yaml +++ b/values.yaml @@ -30,6 +30,11 @@ mastodon: enabled: true # Custom labels to add to kubernetes resources #labels: + # -- deploy search to elastsicsearch. Requires .elasticsearch.enabled = true + deploySearch: + enabled: false + concurrency: 5 + resetChewy: true cron: # -- run `tootctl media remove` every week removeMedia: