apiVersion: apps/v1 kind: Deployment metadata: name: peertube namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsNonRoot: true runAsUser: 999 runAsGroup: 999 fsGroup: 999 seccompProfile: type: RuntimeDefault containers: - name: peertube image: chocobozzz/peertube:v8.2.1 ports: - name: http containerPort: 9000 protocol: TCP env: - name: PEERTUBE_WEBSERVER_HOSTNAME value: {{ .domain }} - name: PEERTUBE_WEBSERVER_HTTPS value: "true" - name: PEERTUBE_WEBSERVER_PORT value: "443" - name: PEERTUBE_SECRET valueFrom: secretKeyRef: name: peertube-secrets key: secretKey - name: PEERTUBE_DB_HOSTNAME value: {{ .db.host }} - name: PEERTUBE_DB_PORT value: "{{ .db.port }}" - name: PEERTUBE_DB_NAME value: {{ .db.name }} - name: PEERTUBE_DB_USERNAME value: {{ .db.user }} - name: PEERTUBE_DB_PASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: dbPassword - name: PEERTUBE_DB_SSL value: "false" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: redis.password - name: PEERTUBE_REDIS_HOSTNAME value: {{ .redis.host }} - name: PEERTUBE_REDIS_AUTH valueFrom: secretKeyRef: name: peertube-secrets key: redis.password - name: PEERTUBE_SMTP_HOSTNAME value: {{ .smtp.host }} - name: PEERTUBE_SMTP_PORT value: "{{ .smtp.port }}" - name: PEERTUBE_SMTP_FROM value: {{ .smtp.from }} - name: PEERTUBE_SMTP_USERNAME value: {{ .smtp.user }} - name: PEERTUBE_SMTP_PASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: smtpPassword - name: PEERTUBE_SMTP_TLS value: "false" - name: PEERTUBE_SMTP_DISABLE_STARTTLS value: "false" - name: PEERTUBE_ADMIN_EMAIL value: {{ .smtp.from }} - name: PT_INITIAL_ROOT_PASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: adminPassword - name: PEERTUBE_TRUST_PROXY value: '["loopback", "linklocal", "uniquelocal"]' resources: limits: cpu: "2" ephemeral-storage: 2Gi memory: 2Gi requests: cpu: 50m ephemeral-storage: 100Mi memory: 256Mi volumeMounts: - name: peertube-data mountPath: /data livenessProbe: httpGet: path: /api/v1/ping port: 9000 initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 30 failureThreshold: 6 readinessProbe: httpGet: path: /api/v1/ping port: 9000 initialDelaySeconds: 30 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 3 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false volumes: - name: peertube-data persistentVolumeClaim: claimName: peertube-data restartPolicy: Always