From 046da9c9539137326a34bb5a9d422ec08132b469 Mon Sep 17 00:00:00 2001 From: andreia Date: Wed, 29 Oct 2025 16:29:33 +0100 Subject: [PATCH 1/5] refactor development section --- docs/explanation/legacy-charm.md | 2 +- docs/how-to/data-migration/index.md | 18 +++++++++++++ .../migrate-data-from-14-to-16.md | 1 + .../migrate-data-via-backup-restore.md | 7 ++--- .../migrate-data-via-pg-dump.md | 19 +++----------- docs/how-to/development/index.md | 10 ------- docs/how-to/index.md | 26 ++++++++++++++----- .../integrate-with-another-application.md | 2 +- .../integrate-with-your-charm.md | 0 9 files changed, 48 insertions(+), 37 deletions(-) create mode 100644 docs/how-to/data-migration/index.md create mode 100644 docs/how-to/data-migration/migrate-data-from-14-to-16.md rename docs/how-to/{development => data-migration}/migrate-data-via-backup-restore.md (91%) rename docs/how-to/{development => data-migration}/migrate-data-via-pg-dump.md (84%) delete mode 100644 docs/how-to/development/index.md rename docs/how-to/{development => }/integrate-with-your-charm.md (100%) diff --git a/docs/explanation/legacy-charm.md b/docs/explanation/legacy-charm.md index c7f05b9fc4..73ddfaf3a2 100644 --- a/docs/explanation/legacy-charm.md +++ b/docs/explanation/legacy-charm.md @@ -72,7 +72,7 @@ Please find the list of supported PostgreSQL [Extensions](/reference/plugins-ext ## Roles supported by modern charm -In the legacy charm, the user could request roles by setting the `roles` field to a comma separated list of desired roles. It is NOT supported by the modern charm implementation of the legacy `pgsql` interface. The same functionality is provided via the modern `postgresql_client` using "[extra-user-roles](/explanation/users)". Please check how to [migrate on the new interface](/how-to/development/integrate-with-your-charm). +In the legacy charm, the user could request roles by setting the `roles` field to a comma separated list of desired roles. It is NOT supported by the modern charm implementation of the legacy `pgsql` interface. The same functionality is provided via the modern `postgresql_client` using "[extra-user-roles](/explanation/users)". Please check how to [migrate on the new interface](/how-to/integrate-with-your-charm). ## Supported PostgreSQL versions by modern charm diff --git a/docs/how-to/data-migration/index.md b/docs/how-to/data-migration/index.md new file mode 100644 index 0000000000..fbf3c55d84 --- /dev/null +++ b/docs/how-to/data-migration/index.md @@ -0,0 +1,18 @@ +# Migrate data + +For guidance about moving data from a Charmed PostgreSQL 14 database to Charmed PostgreSQL 16, start here: + +```{toctree} +:titlesonly: + +Migrate data from PostgreSQL 14 to 16 +``` + +More generic data migration guides: + +```{toctree} +:titlesonly: + +Migrate data via `pg_dump` +Migrate data via backup/restore +``` \ No newline at end of file diff --git a/docs/how-to/data-migration/migrate-data-from-14-to-16.md b/docs/how-to/data-migration/migrate-data-from-14-to-16.md new file mode 100644 index 0000000000..9f36267223 --- /dev/null +++ b/docs/how-to/data-migration/migrate-data-from-14-to-16.md @@ -0,0 +1 @@ +# Migrate data from PostgreSQL 14 to 16 \ No newline at end of file diff --git a/docs/how-to/development/migrate-data-via-backup-restore.md b/docs/how-to/data-migration/migrate-data-via-backup-restore.md similarity index 91% rename from docs/how-to/development/migrate-data-via-backup-restore.md rename to docs/how-to/data-migration/migrate-data-via-backup-restore.md index 966c4ddb23..498fe3cef4 100644 --- a/docs/how-to/development/migrate-data-via-backup-restore.md +++ b/docs/how-to/data-migration/migrate-data-via-backup-restore.md @@ -1,6 +1,7 @@ -# Migrate database data using ‘backup/restore’ +(migrate-data-via-backup-restore)= +# Migrate data via backup/restore -This is a guide for migrating data from modern charms. To migrate [legacy charms](/explanation/legacy-charm) data, refer to the guide [Migrate data via pg_dump](/how-to/development/migrate-data-via-pg-dump). +This is a guide for migrating data from modern charms. To migrate [legacy charms](/explanation/legacy-charm) data, refer to the guide [Migrate data via pg_dump](/how-to/data-migration/migrate-data-via-pg-dump). This Charmed PostgreSQL K8s operator is able to restore its own [backups](/how-to/back-up-and-restore/restore-a-backup) stored on [S3-compatible storage](/how-to/back-up-and-restore/configure-s3-aws). The same restore approach is applicable to [restore backups made by a different installation](/how-to/back-up-and-restore/migrate-a-cluster) of Charmed PostgreSQL, or even another PostgreSQL charm. The backups have to be created manually using [pgBackRest](https://pgbackrest.org/)! @@ -21,7 +22,7 @@ Below is the *general approach* to the migration (see warning above!): 1. **Retrieve root/admin-level credentials from the legacy charm.** - See examples [here](/how-to/development/migrate-data-via-pg-dump). + See examples [here](/how-to/data-migration/migrate-data-via-pg-dump). 2. **Install [pgBackRest](https://pgbackrest.org/) inside the old charm OR nearby.** diff --git a/docs/how-to/development/migrate-data-via-pg-dump.md b/docs/how-to/data-migration/migrate-data-via-pg-dump.md similarity index 84% rename from docs/how-to/development/migrate-data-via-pg-dump.md rename to docs/how-to/data-migration/migrate-data-via-pg-dump.md index fbc7c6807d..2a08d8ab76 100644 --- a/docs/how-to/development/migrate-data-via-pg-dump.md +++ b/docs/how-to/data-migration/migrate-data-via-pg-dump.md @@ -1,21 +1,8 @@ -# Migrate database data using `pg_dump` / `pg_restore` +(migrate-data-via-pg-dump)= +# Migrate database data using `pg_dump` -This document describes database **data** migration only. To migrate charms on new juju interfaces, refer to the guide [How to integrate a database with my charm](/how-to/development/integrate-with-your-charm). +This document describes database **data** migration only. To migrate charms on new juju interfaces, refer to the guide [How to integrate a database with my charm](/how-to/integrate-with-your-charm). -## Do you need to migrate? - -A database migration is only required if the output of the following command is `latest/stable`: - -```text -juju show-application postgresql-k8s | yq '.[] | .channel' -``` -Migration is **not** necessary if the output above is `14/stable` or `16/edge`. - -This guide can be used to copy data between different installations of the same (modern) charm `postgresql-k8s`, but the [backup/restore](/how-to/development/migrate-data-via-backup-restore) is more recommended for migrations between modern charms. - -## Summary - -The legacy K8s charm are archived in the `latest/stable` channel (read more [here](/explanation/legacy-charm)). A minor difference in commands might be necessary for different revisions and/or Juju versions, but the general logic remains: * Deploy the modern charm nearby diff --git a/docs/how-to/development/index.md b/docs/how-to/development/index.md deleted file mode 100644 index fd79237643..0000000000 --- a/docs/how-to/development/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Development - -```{toctree} -:titlesonly: -:maxdepth: 2 -:glob: - -Integrate with your charm -Migrate data via pg_dump -Migrate data via backup/restore diff --git a/docs/how-to/index.md b/docs/how-to/index.md index 54f8be08f0..7f67a286a2 100644 --- a/docs/how-to/index.md +++ b/docs/how-to/index.md @@ -53,7 +53,7 @@ Monitoring (COS) ## Refresh (upgrade) -In-place upgrades to higher revisions of Charmed PostgreSQL 16: +Instructions for performing an in-place application refresh: ```{toctree} :titlesonly: @@ -61,6 +61,17 @@ In-place upgrades to higher revisions of Charmed PostgreSQL 16: Refresh (upgrade) ``` +## Data migration + +For charm developers looking to support PostgreSQL integrations with their charm: + +```{toctree} +:maxdepth: 2 +:titlesonly: + +Data migration +``` + ## Cross-regional (cluster-cluster) async replication Walkthrough of a cluster-cluster deployment and its essential operations: @@ -83,13 +94,16 @@ How to replicate a subset of data to another PostgreSQL cluster: Logical replication ``` -## Development +## Charm development -For charm developers looking to support PostgreSQL integrations with their charm: +For charm developers looking to support PostgreSQL integrations with their charm ```{toctree} -:maxdepth: 2 :titlesonly: -Development -``` \ No newline at end of file +Integrate PostgreSQL with your charm +``` + +Other relevant guides: +* {ref}`migrate-data-via-pg-dump` +* {ref}`migrate-data-via-backup-restore` \ No newline at end of file diff --git a/docs/how-to/integrate-with-another-application.md b/docs/how-to/integrate-with-another-application.md index 96f1458461..6d9bef886c 100644 --- a/docs/how-to/integrate-with-another-application.md +++ b/docs/how-to/integrate-with-another-application.md @@ -9,7 +9,7 @@ relatedlinks: https://documentation.ubuntu.com/juju/3.6/reference/relation/, [po This guide shows how to integrate Charmed PostgreSQL with both charmed and non-charmed applications. -For developer information about how to integrate your own charmed application with PostgreSQL, see [](/how-to/development/integrate-with-your-charm). +For developer information about how to integrate your own charmed application with PostgreSQL, see [](/how-to/integrate-with-your-charm). ## Integrate with a charmed application diff --git a/docs/how-to/development/integrate-with-your-charm.md b/docs/how-to/integrate-with-your-charm.md similarity index 100% rename from docs/how-to/development/integrate-with-your-charm.md rename to docs/how-to/integrate-with-your-charm.md From 65dc0e234ed9275676b7a85b56cd9ec5934689f8 Mon Sep 17 00:00:00 2001 From: andreia Date: Wed, 29 Oct 2025 16:32:53 +0100 Subject: [PATCH 2/5] add content to migration guide --- .../migrate-data-from-14-to-16.md | 113 +++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/docs/how-to/data-migration/migrate-data-from-14-to-16.md b/docs/how-to/data-migration/migrate-data-from-14-to-16.md index 9f36267223..5ba32df4bb 100644 --- a/docs/how-to/data-migration/migrate-data-from-14-to-16.md +++ b/docs/how-to/data-migration/migrate-data-from-14-to-16.md @@ -1 +1,112 @@ -# Migrate data from PostgreSQL 14 to 16 \ No newline at end of file +# Migrate data from PostgreSQL 14 to 16 + +# Migrate data from PostgreSQL 14 to 16 + +There are two possible ways to migrate data from PostgreSQL 14 to 16 depending on how {ref}`roles` are managed: + +**In case of admin roles management**, all database objects ownership are handled manually by the user. In this case, see the more general guide {ref}`migrate-data-via-pg-dump`. Note that you must set `extra-user-roles` to `charmed-admin` once a Juju relation is requested the new database. + +**In the case of charm roles management**, all the database objects ownership will be handled by charm automatically. This guide covers how to migrate data from Charmed PostgreSQL 14 to 16 using the new charm roles management setup for client applications managed by Juju. The migrated data from PostgreSQL 14 will be mapped to the corresponding ownership in PostgreSQL 16. + +## Prepare PostgreSQL 14 data + +First, in order to make sure the latest data is included, remove the relation between the client app and Charmed PostgreSQL 14. + +Then, define the following variables for the old database: + +```shell +TMP_PATH="~/old-db-dump/" +OLD_DB_NAME="postgresql_test_app_database" +OLD_IP="10.218.34.229" +OLD_USER="operator" +OLD_PASSWORD="fJQYljbthEo2T1gj" +``` + +Create a dump of the old PostgreSQL 14 database with `pg_dump`: + +```shell +mkdir -p "${TMP_PATH}" +PGPASSWORD="${OLD_PASSWORD}" pg_dump -j 4 -Fd -h "${OLD_IP}" -U "${OLD_USER}" -d "${OLD_DB_NAME}" -f "${TMP_PATH}" --compress 9 +``` + +## Set up new PostgreSQL 16 charm + +Deploy one unit of Charmed PostgreSQL 16. This will simplify the migration and can be scaled later. + +```shell +juju deploy postgresql-k8s --channel 16/edge --trust +``` + +Define the following variables for the new database: + +```shell +NEW_DB_NAME="postgresql_test_app_database123" +NEW_IP="10.218.34.56" +NEW_USER="operator" +NEW_PASSWORD="RnnijCiotVeW8O5I" +NEW_OWNER="charmed_${NEW_DB_NAME}_owner" +``` + +Migrate the following charm features from the old 14 charm to the new 16 charm: +* any necessary charm config options +* enabled charm extensions/plugins + +```{note} +Config options and extensions *must* be migrated before restoring the data dump +``` + +## Create a new database on PostgreSQL 16 + +```shell +PGPASSWORD="${NEW_PASSWORD}" psql -h "${NEW_IP}" -U "${NEW_USER}" -d postgres -c "CREATE DATABASE ${NEW_DB_NAME}" +``` + +Create new roles by running the function `set_up_predefined_catalog_roles()` in all databases except `postgres` and `template1`. It will create roles like `charmed__owner`, `..._dml` and others: + +```shell +PGPASSWORD="${NEW_PASSWORD}" psql -h "${NEW_IP}" -U "${NEW_USER}" -d "${NEW_DB_NAME}" -c "SELECT set_up_predefined_catalog_roles();" +PGPASSWORD="${NEW_PASSWORD}" psql -h "${NEW_IP}" -U "${NEW_USER}" -d "${NEW_DB_NAME}" -c "ALTER DATABASE ${NEW_DB_NAME} OWNER TO charmed_databases_owner;" +PGPASSWORD="${NEW_PASSWORD}" psql -h "${NEW_IP}" -U "${NEW_USER}" -d "${NEW_DB_NAME}" -c "ALTER SCHEMA public OWNER TO ${NEW_OWNER};" +``` + +## Migrate data from PostgreSQL 14 to 16 + +Restore the PostgreSQL 14 database dump into the new 16 database: + +```shell +PGPASSWORD="${NEW_PASSWORD}" pg_restore -j 4 -h "${NEW_IP}" -U "${NEW_USER}" -d "${NEW_DB_NAME}" -Fd "${TMP_PATH}" --no-owner +``` + +### Set up new database ownership + +Verify and modify the ownership for each database object in each schema to be equal to `charmed__owner` (`${NEW_OWNER}` above). + +For example, to find and fix ownership for all tables, sequences, and views: + +```shell +PGPASSWORD="${NEW_PASSWORD}" psql -h "${NEW_IP}" -U "${NEW_USER}" -d "${NEW_DB_NAME}" + +mydb=> DO $$ +DECLARE + r record; +BEGIN + FOR r IN + SELECT format('ALTER %s %I.%I OWNER TO %I;', + CASE c.relkind + WHEN 'r' THEN 'TABLE' + WHEN 'v' THEN 'VIEW' + WHEN 'm' THEN 'MATERIALIZED VIEW' + WHEN 'S' THEN 'SEQUENCE' + WHEN 'p' THEN 'TABLE' + ELSE NULL END, + n.nspname, c.relname, 'charmed__owner') + FROM pg_class c + JOIN pg_namespace n ON n.oid = c.relnamespace + WHERE n.nspname = 'public' + LOOP + EXECUTE r.format; + END LOOP; +END$$; +``` + +At this stage, the database has been completely imported. The cluster can be scaled, and the client app can be related to the new PostgreSQL 16 database. \ No newline at end of file From e3b58b8d85102ed8cd91bed1fd1dc1c8d2f36264 Mon Sep 17 00:00:00 2001 From: andreia Date: Wed, 29 Oct 2025 16:58:50 +0100 Subject: [PATCH 3/5] fixes --- docs/how-to/data-migration/migrate-data-from-14-to-16.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/how-to/data-migration/migrate-data-from-14-to-16.md b/docs/how-to/data-migration/migrate-data-from-14-to-16.md index 5ba32df4bb..2f64d040fa 100644 --- a/docs/how-to/data-migration/migrate-data-from-14-to-16.md +++ b/docs/how-to/data-migration/migrate-data-from-14-to-16.md @@ -1,8 +1,6 @@ # Migrate data from PostgreSQL 14 to 16 -# Migrate data from PostgreSQL 14 to 16 - -There are two possible ways to migrate data from PostgreSQL 14 to 16 depending on how {ref}`roles` are managed: +There are two possible ways to migrate data from PostgreSQL 14 to 16 depending on how roles are managed: **In case of admin roles management**, all database objects ownership are handled manually by the user. In this case, see the more general guide {ref}`migrate-data-via-pg-dump`. Note that you must set `extra-user-roles` to `charmed-admin` once a Juju relation is requested the new database. From 4c789bd90745c0b5734cd9107c37f920f87fd150 Mon Sep 17 00:00:00 2001 From: andreia Date: Wed, 29 Oct 2025 17:01:53 +0100 Subject: [PATCH 4/5] remove launchpad mailing list --- docs/reference/contacts.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/reference/contacts.md b/docs/reference/contacts.md index 664b25de25..bb291c39f3 100644 --- a/docs/reference/contacts.md +++ b/docs/reference/contacts.md @@ -13,5 +13,4 @@ Charmed PostgreSQL K8s is an open source project that warmly welcomes community * [Git sources for Charmed PostgreSQL K8s](https://github.com/canonical/postgresql-k8s-operator) * [Canonical Data on Launchpad](https://launchpad.net/~data-platform) * [Canonical Data on Matrix](https://matrix.to/#/#charmhub-data-platform:ubuntu.com) -* [Mailing list on Launchpad](https://lists.launchpad.net/data-platform/) From cadd562401bff93780161197a0172854c71d830a Mon Sep 17 00:00:00 2001 From: andreia Date: Wed, 29 Oct 2025 17:24:28 +0100 Subject: [PATCH 5/5] Update deployment channel to 16/edge for consistency --- docs/explanation/interfaces-and-endpoints.md | 4 ++-- docs/how-to/data-migration/migrate-data-via-pg-dump.md | 2 +- docs/how-to/deploy/aks.md | 2 +- docs/how-to/deploy/canonical-k8s.md | 2 +- docs/how-to/deploy/gke.md | 2 +- docs/how-to/deploy/multi-az.md | 2 +- docs/how-to/enable-ldap.md | 2 +- docs/how-to/scale-replicas.md | 2 +- docs/reference/performance-and-resources.md | 6 +++--- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/explanation/interfaces-and-endpoints.md b/docs/explanation/interfaces-and-endpoints.md index 5b81e206ad..7ad17dc8a2 100644 --- a/docs/explanation/interfaces-and-endpoints.md +++ b/docs/explanation/interfaces-and-endpoints.md @@ -16,7 +16,7 @@ Adding a relation is accomplished with `juju relate` (or `juju integrate` for Ju ```text # Deploy Charmed PostgreSQL cluster with 3 nodes -juju deploy postgresql-k8s --channel 16/stable -n 3 --trust +juju deploy postgresql-k8s --channel 16/edge -n 3 --trust # Deploy the relevant application charms juju deploy mycharm @@ -47,7 +47,7 @@ Check the limitations of legacy interface implementations in [](/explanation/leg This charm supports legacy interface `pgsql` from the previous [PostgreSQL charm](https://launchpad.net/postgresql-charm): ```text -juju deploy postgresql-k8s --channel 16/stable --trust +juju deploy postgresql-k8s --channel 16/edge --trust juju deploy finos-waltz-k8s --channel edge juju relate postgresql-k8s:db finos-waltz-k8s ``` diff --git a/docs/how-to/data-migration/migrate-data-via-pg-dump.md b/docs/how-to/data-migration/migrate-data-via-pg-dump.md index 2a08d8ab76..85aaaed97b 100644 --- a/docs/how-to/data-migration/migrate-data-via-pg-dump.md +++ b/docs/how-to/data-migration/migrate-data-via-pg-dump.md @@ -48,7 +48,7 @@ OLD_DB_USER=$(juju show-unit ${CLIENT_APP} | yq '.[] | .relation-info | select(. Deploy new PostgreSQL database charm: ```text -juju deploy postgresql-k8s ${NEW_DB_APP} --channel 16/stable --trust +juju deploy postgresql-k8s ${NEW_DB_APP} --channel 16/edge --trust ``` Obtain `operator` user password of new PostgreSQL database from PostgreSQL charm: diff --git a/docs/how-to/deploy/aks.md b/docs/how-to/deploy/aks.md index 8f439cdfa1..dc9adb64ae 100644 --- a/docs/how-to/deploy/aks.md +++ b/docs/how-to/deploy/aks.md @@ -130,7 +130,7 @@ juju model-config logging-config='=INFO;unit=DEBUG' The following command deploys PostgreSQL K8s: ```text -juju deploy postgresql-k8s --channel 16/stable --trust -n 3 +juju deploy postgresql-k8s --channel 16/edge --trust -n 3 ``` Sample output: ```text diff --git a/docs/how-to/deploy/canonical-k8s.md b/docs/how-to/deploy/canonical-k8s.md index 9bea0e177e..c74b3ebde4 100644 --- a/docs/how-to/deploy/canonical-k8s.md +++ b/docs/how-to/deploy/canonical-k8s.md @@ -49,7 +49,7 @@ juju bootstrap ck8s ```text juju add-model postgresql -juju deploy postgresql-k8s --channel 16/stable --trust +juju deploy postgresql-k8s --channel 16/edge --trust ``` follow the deployment progress using: diff --git a/docs/how-to/deploy/gke.md b/docs/how-to/deploy/gke.md index a9c3a28904..bcd0696d0a 100644 --- a/docs/how-to/deploy/gke.md +++ b/docs/how-to/deploy/gke.md @@ -91,7 +91,7 @@ kubectl get pods -n welcome-model The following commands deploy PostgreSQL K8s and PgBouncer K8s: ```text -juju deploy postgresql-k8s --channel 16/stable --trust +juju deploy postgresql-k8s --channel 16/edge --trust juju deploy pgbouncer-k8s --trust ``` diff --git a/docs/how-to/deploy/multi-az.md b/docs/how-to/deploy/multi-az.md index a9f92da318..e2ff4ca8ae 100644 --- a/docs/how-to/deploy/multi-az.md +++ b/docs/how-to/deploy/multi-az.md @@ -77,7 +77,7 @@ The command below demonstrates how to deploy Charmed PostgreSQL K8s with Juju co ```text export MYAPP="mydatabase" ; \ -juju deploy postgresql-k8s --channel 16/stable ${MYAPP} --trust -n 3 \ +juju deploy postgresql-k8s --channel 16/edge ${MYAPP} --trust -n 3 \ --constraints="tags=anti-pod.app.kubernetes.io/name=${MYAPP},anti-pod.topology-key=topology.kubernetes.io/zone" ``` diff --git a/docs/how-to/enable-ldap.md b/docs/how-to/enable-ldap.md index 7e1349270e..bef4e841a7 100644 --- a/docs/how-to/enable-ldap.md +++ b/docs/how-to/enable-ldap.md @@ -23,7 +23,7 @@ Deploy the [GLAuth charm](https://charmhub.io/glauth-k8s): ```text juju add-model glauth juju deploy self-signed-certificates -juju deploy postgresql-k8s --channel 16/stable --trust +juju deploy postgresql-k8s --channel 16/edge --trust juju deploy glauth-k8s --channel edge --trust ``` diff --git a/docs/how-to/scale-replicas.md b/docs/how-to/scale-replicas.md index b87995c1fa..99c89e5e53 100644 --- a/docs/how-to/scale-replicas.md +++ b/docs/how-to/scale-replicas.md @@ -9,7 +9,7 @@ This guide will show you how to establish and change the amount of juju units us To deploy PostgreSQL with multiple replicas, specify the number of desired units with the `-n` option: ```text -juju deploy postgresql-k8s --channel 16/stable -n --trust +juju deploy postgresql-k8s --channel 16/edge -n --trust ``` ### Primary vs. leader unit diff --git a/docs/reference/performance-and-resources.md b/docs/reference/performance-and-resources.md index 27707d79d2..e9971d09a5 100644 --- a/docs/reference/performance-and-resources.md +++ b/docs/reference/performance-and-resources.md @@ -22,7 +22,7 @@ Pre-deployed application profile change is planned but currently is NOT supporte You can set the profile during deployment using the `--config` flag. For example: ```text -juju deploy postgresql-k8s --channel 16/stable --trust --config profile=testing +juju deploy postgresql-k8s --channel 16/edge --trust --config profile=testing ``` You can change the profile using the `juju config` action. For example: @@ -38,12 +38,12 @@ For a list of all of this charm's config options, see the [Configuration tab](ht The Juju [`--constraints`](https://juju.is/docs/juju/constraint) flag sets RAM and CPU limits for Kubernetes pods: ```text -juju deploy postgresql-k8s --channel 16/stable --trust --constraints cores=8 mem=16G +juju deploy postgresql-k8s --channel 16/edge --trust --constraints cores=8 mem=16G ``` Juju constraints can be set together with the charm's profile: ```text -juju deploy postgresql-k8s --channel 16/stable --trust --constraints cores=8 mem=16G --config profile=testing +juju deploy postgresql-k8s --channel 16/edge --trust --constraints cores=8 mem=16G --config profile=testing ```