Examples
The examples show configuration files for setting up your PostgreSQL cluster.
Important
These examples are for demonstration and experimentation purposes. You can execute them on a personal Kubernetes cluster with Minikube or Kind, as described in Quick start.
Reference
For a list of available options, see API reference.
Basics
- Basic cluster
cluster-example.yaml
A basic example of a cluster.- Custom cluster
cluster-example-custom.yaml
A basic cluster that uses the default storage class and custom parameters for thepostgresql.conf
andpg_hba.conf
files.- Cluster with customized storage class
cluster-storage-class.yaml
: A basic cluster that uses a specified storage class ofstandard
.- Cluster with persistent volume claim (PVC) template configured
cluster-pvc-template.yaml
: A basic cluster with an explicit persistent volume claim template.- Extended configuration example
cluster-example-full.yaml
: A cluster that sets most of the available options.- Bootstrap cluster with SQL files
cluster-example-initdb-sql-refs.yaml
: A cluster example that executes a set of queries defined in a secret and aConfigMap
right after the database is created.- Sample cluster with customized
pg_hba
configuration cluster-example-pg-hba.yaml
: A basic cluster that enables the user app to authenticate using certificates.- Sample cluster with Secret and ConfigMap mounted using projected volume template
cluster-example-projected-volume.yaml
A basic cluster with the existingSecret
andConfigMap
mounted into Postgres pod using projected volume mount.
Backups
- Customized storage class and backups
- Prerequisites: Bucket storage must be available. The sample config is for AWS. Change it to suit your setup.
cluster-storage-class-with-backup.yaml
A cluster with backups configured.- Backup
- Prerequisites:
cluster-storage-class-with-backup.yaml
applied and healthy. backup-example.yaml
: An example of a backup that runs against the previous sample.- Simple cluster with backup configured
- Prerequisites: The configuration assumes minio is running and working.
Update
backup.barmanObjectStore
with your minio parameters or your cloud solution. cluster-example-with-backup.yaml
A basic cluster with backups configured.
Replica clusters
- Replica cluster by way of backup from an object store
- Prerequisites:
cluster-storage-class-with-backup.yaml
applied and healthy, and a backupcluster-example-trigger-backup.yaml
applied and completed. cluster-example-replica-from-backup-simple.yaml
: A replica cluster following a cluster with backup configured.- Replica cluster by way of volume snapshot
- Prerequisites:
cluster-example-with-volume-snapshot.yaml
applied and healthy, and a volume snapshotbackup-with-volume-snapshot.yaml
applied and completed. cluster-example-replica-from-volume-snapshot.yaml
: A replica cluster following a cluster with volume snapshot configured.- Replica cluster by way of streaming (pg_basebackup)
- Prerequisites:
cluster-example.yaml
applied and healthy. cluster-example-replica-streaming.yaml
: A replica cluster followingcluster-example
with streaming replication.
PostGIS
- PostGIS example
postgis-example.yaml
: An example of a PostGIS cluster. See PostGIS for details.
Managed roles
- Cluster with declarative role management
cluster-example-with-roles.yaml
: Declares a role with themanaged
stanza. Includes password management with Kubernetes secrets.
Declarative tablespaces
- Cluster with declarative tablespaces
cluster-example-with-tablespaces.yaml
- Cluster with declarative tablespaces and backup
- Prerequisites: The configuration assumes minio is running and working.
Update
backup.barmanObjectStore
with your minio parameters or your cloud solution. cluster-example-with-tablespaces-backup.yaml
- Restored cluster with tablespaces from object store
- Prerequisites: The previous cluster applied and a base backup completed.
Remember to update
bootstrap.recovery.backup.name
with the backup name. cluster-restore-with-tablespaces.yaml
For a list of available options, see API reference.
Pooler configuration
- Pooler with custom service config
pooler-external.yaml