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.

111 lines
3.9 KiB

  1. apiVersion: apps/v1beta2
  2. kind: Deployment
  3. metadata:
  4. name: {{ template "peertube.fullname" . }}
  5. labels:
  6. app: {{ template "peertube.name" . }}
  7. chart: {{ template "peertube.chart" . }}
  8. release: {{ .Release.Name }}
  9. heritage: {{ .Release.Service }}
  10. spec:
  11. replicas: {{ .Values.replicaCount }}
  12. selector:
  13. matchLabels:
  14. app: {{ template "peertube.name" . }}
  15. release: {{ .Release.Name }}
  16. template:
  17. metadata:
  18. labels:
  19. app: {{ template "peertube.name" . }}
  20. release: {{ .Release.Name }}
  21. spec:
  22. containers:
  23. - name: {{ .Chart.Name }}
  24. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  25. imagePullPolicy: {{ .Values.image.pullPolicy }}
  26. ports:
  27. - name: http
  28. containerPort: 9000
  29. protocol: TCP
  30. livenessProbe:
  31. httpGet:
  32. path: /
  33. port: http
  34. initialDelaySeconds: 300
  35. readinessProbe:
  36. httpGet:
  37. path: /
  38. port: http
  39. initialDelaySeconds: 300
  40. env:
  41. - name: PEERTUBE_WEBSERVER_HOSTNAME
  42. value: {{ .Values.environment.hostname }}
  43. - name: PEERTUBE_WEBSERVER_PORT
  44. value: {{ .Values.environment.http | quote }}
  45. - name: PEERTUBE_WEBSERVER_HTTPS
  46. value: {{ .Values.environment.httpsEnabled | quote }}
  47. - name: PEERTUBE_DB_HOSTNAME
  48. value: {{ .Values.environment.dbHostname }}
  49. - name: PEERTUBE_DB_SUFFIX
  50. value: _prod
  51. - name: PEERTUBE_DB_USERNAME
  52. value: {{ .Values.environment.dbUser }}
  53. - name: PEERTUBE_DB_PASSWORD
  54. value: {{ .Values.environment.dbPassword }}
  55. - name: PEERTUBE_REDIS_HOSTNAME
  56. value: {{ .Release.Name }}-{{ .Values.environment.redisHostname }}-master
  57. - name: PEERTUBE_SMTP_USERNAME
  58. value: {{ .Values.environment.smtpUser | quote }}
  59. - name: PEERTUBE_SMTP_PASSWORD
  60. value: {{ .Values.environment.smtpPassword }}
  61. - name: PEERTUBE_SMTP_HOSTNAME
  62. value: {{ .Values.environment.smtpHostname }}
  63. - name: PEERTUBE_SMTP_PORT
  64. value: {{ .Values.environment.smtpPort | quote }}
  65. - name: PEERTUBE_SMTP_FROM
  66. value: {{ .Values.environment.smtpFrom | quote }}
  67. - name: PEERTUBE_SMTP_TLS
  68. value: {{ .Values.environment.smtpTls | quote }}
  69. - name: PEERTUBE_ADMIN_EMAIL
  70. value: {{ .Values.environment.admin | quote }}
  71. - name: PEERTUBE_SIGNUP_ENABLED
  72. value: {{ .Values.environment.signup | quote }}
  73. - name: PEERTUBE_TRANSCODING_ENABLED
  74. value: {{ .Values.environment.transcoding | quote }}
  75. - name: PEERTUBE_TRUST_PROXY
  76. value: {{ .Values.environment.trustProxy | quote }}
  77. volumeMounts:
  78. - name: data
  79. mountPath: /data
  80. - name: config
  81. mountPath: /config
  82. resources:
  83. {{ toYaml .Values.resources | indent 12 }}
  84. {{- with .Values.nodeSelector }}
  85. nodeSelector:
  86. {{ toYaml . | indent 8 }}
  87. {{- end }}
  88. {{- with .Values.affinity }}
  89. affinity:
  90. {{ toYaml . | indent 8 }}
  91. {{- end }}
  92. {{- with .Values.tolerations }}
  93. tolerations:
  94. {{ toYaml . | indent 8 }}
  95. {{- end }}
  96. volumes:
  97. {{- if .Values.persistence.data.enabled }}
  98. - name: data
  99. persistentVolumeClaim:
  100. claimName: {{ .Values.persistence.data.existingClaim }}
  101. {{- else }}
  102. - name: data
  103. emptyDir: {}
  104. {{- end }}
  105. {{- if .Values.persistence.config.enabled }}
  106. - name: config
  107. persistentVolumeClaim:
  108. claimName: {{ .Values.persistence.config.existingClaim }}
  109. {{- else }}
  110. - name: config
  111. emptyDir: {}
  112. {{- end }}