PgBouncer Explanations - Interfaces/endpoints

Interfaces/endpoints

PgBouncer supports modern ‘postgresql_client’ interface. Applications can easily connect PgBouncer using ‘data_interfaces’ library from ‘data-platform-libs’.

Modern postgresql_client interface (database endpoint):

Adding a relation is accomplished with juju relate (or juju integrate for Juju 3.x) via endpoint database. Read more about Juju relations (integrations). Example:

# Deploy Charmed PostgreSQL and PgBouncer clusters
juju deploy postgresql -n 3 --channel 14/stable
juju deploy pgbouncer -n 3 --channel 1/stable

# Deploy the relevant charms, e.g. postgresql-test-app
juju deploy postgresql-test-app

# Relate all applications
juju integrate postgresql pgbouncer
juju integrate pgbouncer postgresql-test-app:database

# Check established relation (using postgresql_client interface):
juju status --relations

# Example of the properly established relation:
# > Integration provider     Requirer                          Interface              Type     Message
# > pgbouncer:database       postgresql-test-app:database      postgresql_client      regular  
# > postgresql:database      pgbouncer:backend-database        postgresql_client      regular  
# > ...

See all the charm interfaces here.