Files
wild-directory/peertube/versions/8/deployment.yaml
2026-06-19 21:33:20 +00:00

136 lines
4.0 KiB
YAML

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