Charmed PostgreSQL K8s
- Canonical
- Databases
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 20 | 20 Sep 2022 | |
14/stable | 445 | 12 Nov 2024 | |
14/stable | 444 | 12 Nov 2024 | |
14/candidate | 463 | 19 Nov 2024 | |
14/candidate | 462 | 19 Nov 2024 | |
14/beta | 463 | 19 Nov 2024 | |
14/beta | 462 | 19 Nov 2024 | |
14/edge | 465 | 20 Nov 2024 | |
14/edge | 464 | 20 Nov 2024 |
juju deploy postgresql-k8s --channel 14/edge
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
Note: All commands are written for juju >= v.3.0
If you are using an earlier version, check the Juju 3.0 Release Notes.
How to integrate with another application
Integrations (formerly “relations”) are connections between two applications with compatible endpoints. These connections simplify the creation and management of users, passwords, and other shared data.
This guide shows how to integrate Charmed PostgreSQL K8s with both charmed and non-charmed applications.
For developer information about how to integrate your own charmed application with PostgreSQL, see Development > How to integrate with your charm.
Summary
- Integrate with a charmed application
- Integrate with a non-charmed application
- Rotate application passwords
Integrate with a charmed application
Integrations with charmed applications are supported via the modern postgresql_client
interface, and the legacy psql
interface from the original version of the charm.
You can see which charms are compatible with PostgreSQL in the Integrations tab.
Modern postgresql_client
interface
To integrate, run
juju integrate postgresql-k8s:database <charm>
To remove the integration, run
juju remove-relation postgresql-k8s <charm>
Legacy pgsql
interface
Note that this interface is deprecated. See more information in Explanation > Legacy charm.
Using the mattermost-k8s
charm as an example, an integration with the legacy interface could be created as follows:
juju integrate postgresql-k8s:db mattermost-k8s:db
Extended permissions can be requested using the db-admin
endpoint:
juju integrate postgresql-k8s:db-admin mattermost-k8s:db
Integrate with a non-charmed application
To integrate with an application outside of Juju, you must use the data-integrator
charm to create the required credentials and endpoints.
Deploy data-integrator
:
juju deploy data-integrator --config database-name=<name>
Integrate with PostgreSQL K8s:
juju integrate data-integrator postgresql-k8s
Use the get-credentials
action to retrieve credentials from data-integrator
:
juju run data-integrator/leader get-credentials
Rotate application passwords
To rotate the passwords of users created for integrated applications, the integration should be removed and created again. This process will generate a new user and password for the application.
juju remove-relation <charm> postgresql-k8s
juju integrate <charm> postgresql-k8s
<charm>
can bedata-integrator
in the case of connecting with a non-charmed application.
Internal operator user
The operator
user is used internally by the Charmed PostgreSQL K8s Operator. The set-password
action can be used to rotate its password.
To set a specific password for the operator
user, run
juju run postgresql-k8s/leader set-password password=<password>
To randomly generate a password for the operator
user, run
juju run postgresql-k8s/leader set-password