Provision a Cloud SQL PostgreSQL instance

Support for using Puppet Enterprise with Google Cloud SQL for PostgreSQL is currently a Limited Availability feature. Limited Availability features are supported for production use and are available on a limited basis.

Create a Cloud SQL PostgreSQL instance using the Google Cloud Console or gcloud.

The exact provisioning workflow largely follows Google’s documentation, but Puppet Enterprise requires several specific constraints.

Setting Requirement
PostgreSQL version PostgreSQL 17. The Cloud SQL instance's major version must match the PostgreSQL version bundled with your PE primary. PE 2025.11 ships PostgreSQL 17; a dump taken from PostgreSQL 17 cannot be restored into an older major version. Confirm the source version on the PE primary with /opt/puppetlabs/server/bin/psql --version, and provision a Cloud SQL instance of the same major version.
Edition Cloud SQL Enterprise edition. If you use gcloud, specify --edition=enterprise. Some projects default to Enterprise Plus, which does not support custom machine tiers.
Instance type For all installation types, use the PE‑PostgreSQL node requirements from the extra‑large hardware requirements section. See Hardware requirements.
Memory For all installation types, use the PE‑PostgreSQL node requirements from the extra‑large hardware requirements section.  See Hardware requirements.
Storage For all installation types, use the PE‑PostgreSQL node requirements from the extra‑large hardware requirements section. See Hardware requirements.
Connectivity Public IP or private connection reachable from the PE primary and every compiler.
SSL mode Configure the instance with --ssl-mode=ENCRYPTED_ONLY. Connections must use TLS, but client certificates are not required. Do not use TRUSTED_CLIENT_CERTIFICATE_REQUIRED, because PE connects using sslmode=verify-ca and password authentication rather than client certificates.
postgres user password Set a password for the built‑in postgres user when creating the instance. The migration process uses this password, and PE uses it for all PE database roles. Do not use a single quote (') in this password.
Provisioning a Cloud SQL instance with an older PostgreSQL major version than the PE primary causes the migration restore to fail. For example, a POSTGRES_14 destination rejects a PostgreSQL 17 dump with errors such as option "locale_provider" not recognized and unrecognized configuration parameter "transaction_timeout", and no databases are created.

For detailed provisioning instructions, see Google documentation.