- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: {{ include "mastodon.fullname" . }}-web
- labels:
- {{- include "mastodon.labels" . | nindent 4 }}
- spec:
- {{- if not .Values.autoscaling.enabled }}
- replicas: {{ .Values.replicaCount }}
- {{- end }}
- selector:
- matchLabels:
- {{- include "mastodon.selectorLabels" . | nindent 6 }}
- component: rails
- template:
- metadata:
- {{- with .Values.podAnnotations }}
- annotations:
- {{- toYaml . | nindent 8 }}
- # roll the pods to pick up any db migrations
- rollme: {{ randAlphaNum 5 | quote }}
- {{- end }}
- labels:
- {{- include "mastodon.selectorLabels" . | nindent 8 }}
- component: rails
- spec:
- {{- with .Values.imagePullSecrets }}
- imagePullSecrets:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- serviceAccountName: {{ include "mastodon.serviceAccountName" . }}
- securityContext:
- {{- toYaml .Values.podSecurityContext | nindent 8 }}
- {{- if (not .Values.mastodon.s3.enabled) }}
- volumes:
- - name: assets
- persistentVolumeClaim:
- claimName: {{ template "mastodon.fullname" . }}-assets
- - name: system
- persistentVolumeClaim:
- claimName: {{ template "mastodon.fullname" . }}-system
- {{- end }}
- containers:
- - name: {{ .Chart.Name }}
- securityContext:
- {{- toYaml .Values.securityContext | nindent 12 }}
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
- imagePullPolicy: {{ .Values.image.pullPolicy }}
- command:
- - bundle
- - exec
- - puma
- - -C
- - config/puma.rb
- 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.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 }}
- ports:
- - name: http
- containerPort: {{ .Values.mastodon.web.port }}
- protocol: TCP
- livenessProbe:
- httpGet:
- path: /health
- port: http
- readinessProbe:
- httpGet:
- path: /health
- port: http
- resources:
- {{- toYaml .Values.resources | nindent 12 }}
- {{- with .Values.nodeSelector }}
- nodeSelector:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.affinity }}
- affinity:
- {{- toYaml . | nindent 8 }}
- {{- end }}
- {{- with .Values.tolerations }}
- tolerations:
- {{- toYaml . | nindent 8 }}
- {{- end }}
|