apiVersion: batch/v1 kind: Job metadata: name: firefly-iii-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:15 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false env: - name: PGHOST value: {{ .db.host }} - name: PGUSER value: postgres - name: PGPASSWORD valueFrom: secretKeyRef: name: firefly-iii-secrets key: postgres.password - name: DB_NAME value: {{ .db.name }} - name: DB_USER value: {{ .db.user }} - name: DB_PASSWORD valueFrom: secretKeyRef: name: firefly-iii-secrets key: dbPassword command: - /bin/bash - -c - | set -e echo "Waiting for PostgreSQL..." until pg_isready; do sleep 2; done echo "Creating database and user for Firefly III..." 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};" echo "Done"