apiVersion: apps/v1 kind: Deployment metadata: name: pretix namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsNonRoot: false runAsUser: 0 seccompProfile: type: RuntimeDefault initContainers: - name: config-init image: pretix/standalone:2026.5.1 command: ["/bin/sh", "-c"] args: - | sed \ -e "s|DB_PASSWORD_PLACEHOLDER|${DB_PASSWORD}|g" \ -e "s|REDIS_PASSWORD_PLACEHOLDER|${REDIS_PASSWORD}|g" \ -e "s|SMTP_PASSWORD_PLACEHOLDER|${SMTP_PASSWORD}|g" \ -e "s|DJANGO_SECRET_PLACEHOLDER|${DJANGO_SECRET}|g" \ /etc/pretix-base/pretix.cfg.tpl > /etc/pretix/pretix.cfg securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: pretix-secrets key: dbPassword - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: pretix-secrets key: redis.password - name: SMTP_PASSWORD valueFrom: secretKeyRef: name: pretix-secrets key: smtpPassword - name: DJANGO_SECRET valueFrom: secretKeyRef: name: pretix-secrets key: djangoSecret volumeMounts: - name: pretix-config-base mountPath: /etc/pretix-base - name: pretix-config mountPath: /etc/pretix containers: - name: pretix image: pretix/standalone:2026.5.1 ports: - name: http containerPort: 80 protocol: TCP securityContext: allowPrivilegeEscalation: true readOnlyRootFilesystem: false resources: limits: cpu: "2" ephemeral-storage: 1Gi memory: 4Gi requests: cpu: 50m ephemeral-storage: 50Mi memory: 256Mi volumeMounts: - name: pretix-data mountPath: /data - name: pretix-config mountPath: /etc/pretix livenessProbe: httpGet: path: /healthcheck/ port: 80 httpHeaders: - name: Host value: "{{ .domain }}" initialDelaySeconds: 120 timeoutSeconds: 10 periodSeconds: 30 failureThreshold: 6 readinessProbe: httpGet: path: /healthcheck/ port: 80 httpHeaders: - name: Host value: "{{ .domain }}" initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 3 volumes: - name: pretix-data persistentVolumeClaim: claimName: pretix-data - name: pretix-config-base configMap: name: pretix-config - name: pretix-config emptyDir: {} restartPolicy: Always