Interfaces/endpoints

The charm supports modern postgresql_client and legacy pgsql interfaces (in a backward compatible mode).

Caution

Do not relate both modern and legacy interfaces simultaneously!

Modern interfaces

This charm provides modern ‘postgresql_client’ interface. Applications can easily connect PostgreSQL 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. Example:

# Deploy Charmed PostgreSQL cluster with 3 nodes
juju deploy postgresql-k8s --channel 14/stable -n 3 --trust

# Deploy the relevant application charms
juju deploy mycharm

# Relate PostgreSQL with your application
juju relate postgresql-k8s:database mycharm:database

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

# Example of the properly established relation:
# > Relation provider          Requirer          Interface          Type
# > postgresql-k8s:database    mycharm:database  postgresql_client  regular

Find all details about default and extra DB user roles in Users“.

Legacy interfaces

Note

Legacy relations are deprecated and will be discontinued on future releases. Their usage should be avoided.

Check the legacy interfaces implementation limitations in Legacy charm

Legacy pgsql interface (db and db-admin endpoints):

This charm supports legacy interface pgsql from the previous PostgreSQL charm:

juju deploy postgresql-k8s --channel 14/stable --trust
juju deploy finos-waltz-k8s --channel edge
juju relate postgresql-k8s:db finos-waltz-k8s

Note

The endpoint db-admin provides the same legacy interface pgsql with PostgreSQL admin-level privileges. It is NOT recommended to use it due to security limitations.