Charmed PostgreSQL K8s

Channel Revision Published Runs on
latest/stable 20 20 Sep 2022
Ubuntu 20.04
14/stable 193 13 Mar 2024
Ubuntu 22.04
14/candidate 193 31 Jan 2024
Ubuntu 22.04
14/beta 211 13 Mar 2024
Ubuntu 22.04
14/edge 237 16 Apr 2024
Ubuntu 22.04
juju deploy postgresql-k8s --channel 14/stable
Show information

Platform:

How to integrate a database with my charm

Check supported interfaces

First, we recommend that you check the supported interfaces of the current charm. You have options to use modern (preferred) or legacy interfaces.

Most existing charms currently use the ops-lib-pgsql interface (legacy). For new charms, Canonical recommends using data-platform-libs instead.

Legacy charm details are described here.

Integrate

For an introduction to the concepts of Juju integrations, see Juju | Integration.

For a detailed tutorial about integrating your charm with the PostgreSQL charm, refer to Juju | Integrate your charm with PostgreSQL.

For some practical examples, take a look at the GitHub repositories

FAQ

Does the requirer need to set anything in relation data?

It depends on the interface. Check the postgresql_client interface requirements.

Is there a charm library available, or does my charm need to compile the postgresql relation data on its own?

Yes, the library is available: data-platform-libs. The integration is trivial: example.

How do I obtain the database url/uri?

This feature is planned but currently missing.

Meanwhile, use this example or refer to the function below.

def _db_connection_string(self) -> str:
   """Report database connection string using info from relation databag."""
   relation = self.model.get_relation("database")
   if not relation:
       return ""

   data = self._database.fetch_relation_data()[relation.id]
   username = data.get("username")
   password = data.get("password")
   endpoints = data.get("endpoints")
   
   return f"postgres://{username}:{password}@{endpoints}/ratings"

Troubleshooting

Success stories

Contact us if you have any questions, issues, or ideas!


Help improve this document in the forum (guidelines). Last updated 2 months ago.