-
Install
Crunchy PostgreSQL for OpenShift operator
-
Install PostgreSQL Operator Monitoring
-
Install the
pgo
client -
We are going to create a cluster named
hippo
-
1 Pgcluster
-
1 bouncer (part of Pgcluster)
-
enable monitoring (part of Pgcluster)
-
enable tls (not force)
-
1 Pgreplica
-
-
Deploy a simple todo application (use our cluster)
-
See Monitroring of the cluster
crc start
oc login -u kubeadmin -p <password> https://api.crc.testing:6443
crc console
Create the namespace pgo
before installing the Crunchy PostgreSQL for OpenShift operator
.
oc create namespace pgo
We will install the Crunchy PostgreSQL for OpenShift
operator via OperatorHub on OpenShift.
Service | Port |
---|---|
Grafana |
3000 |
Prometheus |
9090 |
Alertmanager |
9093 |
oc apply -f postgres-operator-metrics.yml
oc apply -f https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.6.2/installers/metrics/kubectl/postgres-operator-metrics.yml
grafana_admin_password: "admin" grafana_admin_username: "admin"
#!/bin/bash
curl https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.6.2/deploy/install-bootstrap-creds.sh > install-bootstrap-creds.sh
curl https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.6.2/installers/kubectl/client-setup.sh > client-setup.sh
chmod +x install-bootstrap-creds.sh client-setup.sh
echo "Create user ..."
PGO_CMD=oc ./install-bootstrap-creds.sh
echo "Setup pgp with user ..."
PGO_CMD=oc ./client-setup.sh
Add this to ~/.bashr
or something like it
export PGOUSER=$HOME/.pgo/$PGO_OPERATOR_NAMESPACE/pgouser export PGO_CA_CERT=$HOME/.pgo/$PGO_OPERATOR_NAMESPACE/client.crt export PGO_CLIENT_CERT=$HOME/.pgo/$PGO_OPERATOR_NAMESPACE/client.crt export PGO_CLIENT_KEY=$HOME/.pgo/$PGO_OPERATOR_NAMESPACE/client.key
Add pgo to path
export PATH="$HOME/.pgo/$PGO_OPERATOR_NAMESPACE:$PATH"
or add an alias
alias pgo=$HOME/.pgo/pgo/pgo
The client needs to be able to reach the PostgreSQL Operator API from outside the OpenShift cluster. Create an external service or forward a port locally.
oc -n pgo expose deployment postgres-operator
oc -n pgo create route passthrough postgres-operator --service=postgres-operator
oc -n pgo port-forward svc/postgres-operator 8443:8443
Create ca.crt, server.crt, server.key via script
./createTlsFiles.sh
Add secret
postgresql-ca
and hippo-tls-keypair
to the namespace pgo
.
kubectl create secret generic postgresql-ca -n pgo --from-file=ca.crt=ca.crt
kubectl create secret tls hippo-tls-keypair -n pgo --cert=server.crt --key=server.key
1 Pgcluster
-
1 bouncer (part of Pgcluster)
-
enable monitoring (part of Pgcluster)
-
enable tls (not force)
oc apply -f hippo-pgcluster.yaml
pgo create user hippo \
--username=micbn --password=SuperSecret1 --managed
pgBouncer
is enabled by updating the pgBouncer
node in hippo-pgcluster.yaml.
pgBouncer: limits: null replicas: 1 resources: null serviceType: "" tlsSecret: {{ item.cluster_name }}-tls-keypair
Monitriong is enabled by adding exporter: true
to hippo-pgcluster.yaml.
oc apply -f hippo-pgclusterreplicas-rpl1.yaml
hippo
clusterpgo test -n pgo hippo
oc -n pgo port-forward svc/hippo-pgbouncer 5432:5432
PGPASSWORD=SuperSecret1 psql -h localhost -p 5432 -U micbn hippo
psql (13.2) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. hippo=>
It is possible to create users as managed
and not managed
.
-
The
managed
have the username/password insecrets
likehippo-primaryuser-secret
-
The
not manage
have username/password only in PostgreSQL
pgo show user hippo --show-system-accounts
Warning
|
pgo show user hippo --show-system-accounts will only show password for managed users.
|
pgo create user hippo --username=micbn --password=SuperSecret1 --managed
oc -n pgo create route passthrough crunchy-prometheus --service=crunchy-prometheus
oc -n pgo port-forward svc/crunchy-prometheus 9090:9090
oc -n pgo create route passthrough crunchy-grafana --service=crunchy-grafana
oc -n pgo port-forward svc/crunchy-grafana 3000:3000
oc -n pgo create route passthrough crunchy-alertmanager --service=crunchy-alertmanager
oc -n pgo port-forward svc/crunchy-alertmanager 9093:9093
Service | Port |
---|---|
3000 |
|
9090 |
|
9093 |