apiVersion: batch/v1 kind: Job metadata: name: peertube-db-init labels: component: db-init spec: template: metadata: labels: component: db-init spec: restartPolicy: OnFailure securityContext: runAsNonRoot: true runAsUser: 999 runAsGroup: 999 seccompProfile: type: RuntimeDefault containers: - name: postgres-init image: postgres:17 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false env: - name: PGHOST value: {{ .db.host }} - name: PGUSER value: postgres - name: PGPASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: postgres.password - name: DB_NAME value: {{ .db.name }} - name: DB_USER value: {{ .db.user }} - name: DB_PASSWORD valueFrom: secretKeyRef: name: peertube-secrets key: dbPassword command: - /bin/bash - -c - | set -e until pg_isready; do sleep 2; done psql -c "CREATE DATABASE ${DB_NAME};" || echo "Database already exists" psql -c "CREATE USER ${DB_USER} WITH PASSWORD '${DB_PASSWORD}';" || echo "User already exists" psql -c "ALTER USER ${DB_USER} WITH PASSWORD '${DB_PASSWORD}';" psql -c "GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};" psql -d ${DB_NAME} -c "GRANT ALL ON SCHEMA public TO ${DB_USER};" psql -d ${DB_NAME} -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;" || true psql -d ${DB_NAME} -c "CREATE EXTENSION IF NOT EXISTS unaccent;" || true echo "Done"