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.