Overview
The GCP base installer creates a new Google Cloud project forasymptote-integrations and provisions the shared infrastructure integrations run on. GitHub-specific infrastructure is installed in a second step from the GitHub integration guide.
What permissions the installer needs
The identity running./providers/gcp/install-gcp.sh should have permissions equivalent to the following:
| What the installer needs to do | GCP IAM permissions |
|---|---|
| Create projects under the organization or folder you choose | resourcemanager.projects.create |
| Attach the new project to the billing account you specify | billing.resourceAssociations.create |
| Enable required Google Cloud APIs in that new project | serviceusage.services.enable |
| Create the Terraform state bucket and networking resources | storage.buckets.create, compute.networks.create, compute.subnetworks.create, compute.globalAddresses.create, servicenetworking.services.addPeering |
| Create the private PostgreSQL instance and store generated credentials in Secret Manager | cloudsql.instances.create, cloudsql.databases.create, cloudsql.users.create, secretmanager.secrets.create, secretmanager.versions.add |
Fill the base config file
The installer readsproviders/gcp/config/install-gcp.yaml by default. Fill in the required values, then leave optional fields blank unless you need custom names, CIDR ranges, or database sizing.
This is the full template with comments explaining each field:
Run the base installer
Update `providers/gcp/config/install-gcp.yaml`
Fill in your GCP values before you start the installation.
What the base installer creates
At a high level, the GCP base installer:- Creates a new GCP project under the parent you selected.
- Creates a bucket for Terraform state.
- Provisions a dedicated VPC and private PostgreSQL instance.
- Reserves the Private Service Access range used for private Cloud SQL networking.
- Creates the
integrationsdatabase and an application user for it. - Stores generated database credentials in Secret Manager.
- Writes
generated/gcp/<project-id>/install-state.jsonfor later integration installers.
What to expect at the end
When the script completes, it prints the key details you will need to keep:- Project ID
- Terraform state bucket name
- VPC and subnet names
- Cloud SQL connection details
- Database name and application username
- Secret Manager secret name
- Install state path

