Helm chart for deploying Peertube on kubernetes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

136 lines
4.5 KiB

apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ template "peertube.fullname" . }}
labels:
app: {{ template "peertube.name" . }}
chart: {{ template "peertube.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "peertube.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "peertube.name" . }}
release: {{ .Release.Name }}
spec:
initContainers:
- name: initPeertube
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data
- name: config
mountPath: /config
- mountPath: /init
name: peertube-init
readOnly: true
command:
- sh
- /init/peertube-init.sh
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: 9000
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 60
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 90
command:
- gosu
- peertube
- npm
- start
env:
- name: PEERTUBE_WEBSERVER_HOSTNAME
value: {{ .Values.environment.hostname }}
- name: PEERTUBE_WEBSERVER_PORT
value: {{ .Values.environment.http | quote }}
- name: PEERTUBE_WEBSERVER_HTTPS
value: {{ .Values.environment.httpsEnabled | quote }}
- name: PEERTUBE_DB_HOSTNAME
value: {{ .Values.environment.dbHostname }}
- name: PEERTUBE_DB_SUFFIX
value: _prod
- name: PEERTUBE_DB_USERNAME
value: {{ .Values.environment.dbUser }}
- name: PEERTUBE_DB_PASSWORD
value: {{ .Values.environment.dbPassword }}
- name: PEERTUBE_REDIS_HOSTNAME
value: {{ .Release.Name }}-{{ .Values.environment.redisHostname }}-master
- name: PEERTUBE_SMTP_USERNAME
value: {{ .Values.environment.smtpUser | quote }}
- name: PEERTUBE_SMTP_PASSWORD
value: {{ .Values.environment.smtpPassword }}
- name: PEERTUBE_SMTP_HOSTNAME
value: {{ .Values.environment.smtpHostname }}
- name: PEERTUBE_SMTP_PORT
value: {{ .Values.environment.smtpPort | quote }}
- name: PEERTUBE_SMTP_FROM
value: {{ .Values.environment.smtpFrom | quote }}
- name: PEERTUBE_SMTP_TLS
value: {{ .Values.environment.smtpTls | quote }}
- name: PEERTUBE_ADMIN_EMAIL
value: {{ .Values.environment.admin | quote }}
- name: PEERTUBE_SIGNUP_ENABLED
value: {{ .Values.environment.signup | quote }}
- name: PEERTUBE_TRANSCODING_ENABLED
value: {{ .Values.environment.transcoding | quote }}
- name: PEERTUBE_TRUST_PROXY
value: {{ .Values.environment.trustProxy | quote }}
volumeMounts:
- name: data
mountPath: /data
- name: config
mountPath: /config
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
volumes:
{{- if .Values.persistence.data.enabled }}
- name: data
persistentVolumeClaim:
claimName: {{ .Values.persistence.data.existingClaim }}
{{- else }}
- name: data
emptyDir: {}
{{- end }}
{{- if .Values.persistence.config.enabled }}
- name: config
persistentVolumeClaim:
claimName: {{ .Values.persistence.config.existingClaim }}
{{- else }}
- name: config
emptyDir: {}
{{- end }}
- configMap:
defaultMode: 420
name: peertube-init
name: peertube-init