A single shared instance (`charts/postgresql`) with one database and role per component. Not a replacement for a managed database or an operator such as CloudNativePG.
Pick volume sizes and storage classes (`postgresql.persistence`, `postgresql.backup.persistence`)
before the first install: they come from StatefulSet claim templates, which Kubernetes does not change
in place.
Pick the volume size and storage class (`postgresql.persistence`) before the first install: they
come from a StatefulSet claim template, which Kubernetes does not change in place.
Give a component a database: add an entry to `postgresql.databases`, read its password from
`postgres-credentials` → `<user>-password`, and let its pods through the NetworkPolicy by labelling
them `postgres-client: "true"` or adding a selector to `postgresql.networkPolicy.allowFrom`.
Backups are off by default. Turn them on with `postgresql.backup.enabled: true` (schedule,
retention and volume size sit next to it), then take a backup now, and restore one database from it: