Install and set up PostgreSQL#
- Add the Bitnami repository:
helm repo add bitnami https://charts.bitnami.com/bitnami
- Create and populate
postgresql-values.yamlfile:
primary:
persistence:
enabled: true
size: 10Gi
storageClass: "<nameofstorageclass>"
postgresql:
password: "support"
replicaCount: 3
initdbScripts:
create_databases.sh: |
#!/bin/bash
export PGPASSWORD=$(cat /opt/bitnami/postgresql/secrets/password)
psql -U postgres -c "CREATE DATABASE harbor_core" && psql -U postgres -c "CREATE DATABASE clair" && psql -U postgres -c "CREATE DATABASE notary_signer" && psql -U postgres -c "CREATE DATABASE notary_server"
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
- Install HA PostgreSQL with a
helm installcommand:
helm install postgresql bitnami/postgresql-ha -f postgresql-values.yaml
- Obtain the PostgreSQL password:
export POSTGRES_PASSWORD=$(kubectl get secret --namespace default postgresql-postgresql-ha-postgresql -o jsonpath="{.data.password}" | base64 -d)
echo $POSTGRES_PASSWORD
- Login to PostgreSQL:
kubectl run postgresql-postgresql-ha-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql-repmgr:16.4.0-debian-12-r12 --env="PGPASSWORD=$POSTGRES_PASSWORD" \
--command -- psql -h postgresql-postgresql-ha-pgpool -p 5432 -U postgres -d postgres
- Find the pool service and port:
kubectl get service
Example output:
postgresql-postgresql-ha-pgpool ClusterIP 10.96.40.233 <none> 5432/TCP