kubectl apply --server-side -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.28/releases/cnpg-1.28.0.yaml--force-conflicts curl -sSfL https://github.com/cloudnative-pg/cloudnative-pg/raw/main/hack/install-cnpg-plugin.sh | sudo sh -s -- -b /usr/local/bin kubectl apply -f \ https://github.com/cloudnative-pg/plugin-barman-cloud/releases/download/v0.13.0/manifest.yaml kubectl create namespace database database.yaml: --- apiVersion: v1 kind: Secret metadata: name: pg-app-user namespace: demo-apps type: kubernetes.io/basic-auth stringData: username: admin password: admin --- apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: pg-test namespace: demo-apps spec: instances: 3 storage: size: 1Gi storageClass: csi-rbdfs-sc walStorage: storageClass: csi-rbdfs-sc size: 1Gi bootstrap: initdb: database: testdb owner: admin secret: name: pg-app-user postgresql: parameters: max_connections: "300" shared_buffers: "1GB" resources: requests: cpu: "500m" memory: "1Gi" limits: cpu: "2" memory: "2Gi" #test kubectl run psql-client -n database --rm -it --image=postgres:16 --env="PGPASSWORD=admin" -- psql -h pg-test-rw.demo-apps.svc -U admin -d appdb kubectl patch pvc pg-test-1-wal -n demo_apps -p '{"spec":{"resources":{"requests":{"storage":"32Gi"}}}}' backup: barmanObjectStore: destinationPath: s3://pg-backups/prod endpointURL: http://minio.minio.svc:9000 s3Credentials: accessKeyId: name: s3-creds key: ACCESS_KEY secretAccessKey: name: s3-creds key: SECRET_KEY --- pgadmin ------------------- apiVersion: v1 kind: ConfigMap metadata: name: pgadmin-servers data: servers.json: | { "Servers": { "1": { "Name": "pg-test-rw", "Group": "Servers", "Host": "leodeancluster-rw.leodean-dev.svc.cluster.local", "Port": 5432, "MaintenanceDB": "leodean", "Username": "leodeanAdmin", "SSLMode": "disable" } } } --- apiVersion: apps/v1 kind: Deployment metadata: name: pgadmin-deployment spec: replicas: 1 selector: matchLabels: app: pgadmin template: metadata: labels: app: pgadmin spec: containers: - name: pgadmin image: dpage/pgadmin4 ports: - containerPort: 80 env: - name: PGADMIN_DEFAULT_EMAIL value: pgadmin@italiadatacenter.com - name: PGADMIN_DEFAULT_PASSWORD value: KAYQE1QA7uwUZ8uI - name: PGADMIN_SERVER_JSON_FILE value: /pgadmin4/servers.json volumeMounts: - name: pgadmin-servers-json mountPath: /pgadmin4/servers.json subPath: servers.json readOnly: true volumes: - name: pgadmin-servers-json configMap: name: pgadmin-servers --- apiVersion: v1 kind: Service metadata: name: pgadmin-service spec: selector: app: pgadmin ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: demo-route namespace: demo-apps spec: hostnames: - poc3.italiadatacenter.com parentRefs: - name: main-gateway namespace: nginx-gateway rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: pgadmin-service port: 80 -------------------------------------------------------------------------------- cat <