Charmed PostgreSQL VM

Channel Revision Published Runs on
latest/stable 345 09 Nov 2023
Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04 Ubuntu 16.04 Ubuntu 14.04
latest/stable 239 09 Feb 2022
Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04 Ubuntu 16.04 Ubuntu 14.04
latest/stable 226 01 Apr 2021
Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04 Ubuntu 16.04 Ubuntu 14.04
14/stable 430 28 Jun 2024
Ubuntu 22.04
14/stable 429 28 Jun 2024
Ubuntu 22.04
14/candidate 468 02 Sep 2024
Ubuntu 22.04
14/candidate 467 02 Sep 2024
Ubuntu 22.04
14/beta 468 02 Sep 2024
Ubuntu 22.04
14/beta 467 02 Sep 2024
Ubuntu 22.04
14/edge 472 Yesterday
Ubuntu 22.04
14/edge 471 Yesterday
Ubuntu 22.04
juju deploy postgresql --channel 14/edge
Show information

Platform:

Ubuntu
22.04 20.04 18.04 16.04 14.04

Integrate with a client application

This guide will show you how to integrate a client application with a cross-regional async setup using an example PostgreSQL deployment with two servers: one in Rome and one in Lisbon.

Prerequisites

Summary


Configure database endpoints

To make your database available to a client application, you must first offer and consume database endpoints.

Offer database endpoints

Offer the database endpoint on each of the postgresql applications.

juju switch rome
juju offer db1:database db1database

juju switch lisbon
juju offer db2:database db2database

Consume endpoints on client app

It is good practice to use a separate model for the client application rather than using one of the database host models.

juju add-model app
juju switch app
juju consume rome.db1database
juju consume lisbon.db2database

Internal client

If the client application is another charm, deploy them and connect them with juju integrate.

juju switch app

juju deploy postgresql-test-app
juju deploy pgbouncer --channel 1/stable

juju integrate postgresql-test-app:first-database pgbouncer
juju integrate pgbouncer db1database

External client

If the client application is external, they must be integrated via the data-integrator charm.

juju switch app

juju deploy data-integrator --config database-name=mydatabase
juju deploy pgbouncer pgbouncer-external --channel 1/stable

juju relate data-integrator pgbouncer-external
juju relate pgbouncer-external db1database

juju run data-integrator/leader get-credentials