44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: harbor-db-init-v1
|
|
namespace: pg-init
|
|
spec:
|
|
ttlSecondsAfterFinished: 300
|
|
template:
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: db-init
|
|
image: postgres:17
|
|
env:
|
|
- name: PGHOST
|
|
value: pgbouncer.default.svc.cluster.local
|
|
- name: PGPORT
|
|
value: "6432"
|
|
- name: PGUSER
|
|
value: pginit
|
|
- name: PGDATABASE
|
|
value: postgres
|
|
- name: PGPASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: pg-init-secret
|
|
key: password
|
|
- name: HARBOR_DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: harbor-db-bootstrap-secret
|
|
key: password
|
|
command:
|
|
- bash
|
|
- -ec
|
|
- |
|
|
psql -c "SELECT 1 FROM pg_roles WHERE rolname='harbor'" | grep -q 1 || \
|
|
psql -c "CREATE USER harbor WITH PASSWORD '${HARBOR_DB_PASSWORD}';"
|
|
psql -c "GRANT harbor TO pginit;"
|
|
psql -c "SELECT 1 FROM pg_database WHERE datname='harbor'" | grep -q 1 || \
|
|
psql -c "CREATE DATABASE harbor OWNER harbor;"
|
|
psql -c "GRANT ALL PRIVILEGES ON DATABASE harbor TO harbor;"
|
|
psql -d harbor -c "GRANT ALL ON SCHEMA public TO harbor;"
|