Charmed PostgreSQL VM
- By Canonical Data Platform
- Databases
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 345 | 09 Nov 2023 | |
latest/stable | 239 | 09 Feb 2022 | |
latest/stable | 226 | 01 Apr 2021 | |
14/stable | 430 | 28 Jun 2024 | |
14/stable | 429 | 28 Jun 2024 | |
14/candidate | 468 | 02 Sep 2024 | |
14/candidate | 467 | 02 Sep 2024 | |
14/beta | 468 | 02 Sep 2024 | |
14/beta | 467 | 02 Sep 2024 | |
14/edge | 472 | Yesterday | |
14/edge | 471 | Yesterday |
juju deploy postgresql --channel 14/edge
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
Minor Rollback
Example: PostgreSQL 14.9 → PostgreSQL 14.8
(including simple charm revision bump: from revision 43 to revision 42)
Warning: Do NOT trigger rollback
during the running upgrade
action! It may cause an unpredictable PostgreSQL cluster state!
Note: All commands are written for juju >= v.3.0
If you are using an earlier version, be aware that:
juju run
replacesjuju run-action --wait
injuju v.2.9
juju integrate
replacesjuju relate
andjuju add-relation
injuju v.2.9
For more information, check the Juju 3.0 Release Notes.
Manual rollback
After a juju refresh
, if there are any version incompatibilities in charm revisions, its dependencies, or any other unexpected failure in the upgrade process, the process will be halted and enter a failure state.
Even if the underlying PostgreSQL cluster continues to work, it’s important to roll back the charm to a previous revision so that an update can be attempted after further inspection of the failure.
Minor rollback steps
- Prepare the Charmed PostgreSQL VM application for the in-place rollback.
- Rollback. Once started, all units in a cluster will be executed sequentially. The rollback will be aborted (paused) if the unit rollback has failed.
- Check. Make sure the charm and cluster are in a healthy state again.
To execute a rollback, we use a similar procedure to the upgrade. The difference is the charm revision to upgrade to. In this guide’s example, we will refresh the charm back to revision 182
.
Step 1: Prepare
It is necessary to re-run pre-upgrade-check
action on the leader unit, to enter the upgrade recovery state:
juju run postgresql/leader pre-upgrade-check
Step 2: Rollback
When using a charm from charmhub:
juju refresh postgresql --revision=182
When deploying from a local charm file, one must have the previous revision charm file and run:
juju refresh postgresql --path=./postgresql_ubuntu-22.04-amd64.charm
Where postgresql_ubuntu-22.04-amd64.charm
is the previous revision charm file.
The first unit will be rolled out and should rejoin the cluster after settling down. After the refresh command, the juju controller revision for the application will be back in sync with the running Charmed PostgreSQL revision.
Step 3: Check
Future improvements are planned to check the state on pods/clusters on a low level. At the moment check juju status
to make sure the cluster state is OK.