2024-11-19 17:38:05 +01:00

23 lines
1.3 KiB
Markdown

# Rebuilding the kluster
When rebuilding the kluster from scratch, the CNPG containers will be considered as new and will be set up according to their `initdb` config.
Since most of the clusters here are formally defined as a fresh clusters, the following will happen:
- in the relevant PVC the `pgdata` folder will be renamed to `pgdata-old`
- a fresh `pgdata` folder will be created
- a database with RBAC as defined in the `initdb` config will be created
This is problematic since the PVC content is the actual state of the database in the present setup. In order to get back to a functional state, some manual intervention is therefore required.
1. Bootstrap the kubernetes cluster
2. Wait for the CNPG containers to be up and running - they will be setup fresh at this point
3. follow the procedure from [https://cloudnative-pg.io/documentation/1.20/declarative_hibernation/](https://cloudnative-pg.io/documentation/1.20/declarative_hibernation/):
- hibernate the postgresql cluster
- wait for the pod to be shut down
- copy the `pgdata-old` content to the `pgdata` folder
- de-hibernate the postgresql cluster
4. The database should now be in a functional state
Also see https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Controlling-Resource-Modification/#preserving-changes-made-to-an-applications-annotations-and-labels