Setting up Infrastructure
Requirements
All the compute plane requirements must be met in order to install the control plane. Below are the additional requirements for the control plane:Permissions Required
For the control plane, we will be using the following permissions:- Compute plane permissions
- Cloud SQL Admin
Setting up control plane
TrueFoundry control plane infrastructure is provisioned using OpenTofu/Terraform. You can download the OpenTofu/Terraform code for your exact account by filling up your account details and downloading a script that can be executed on your local machine. To perform the below steps, you need to register an account on TrueFoundry and login to the platform.Enable Deployment Feature in the Platform (Optional)
- In the left hand navigation, go to
SettingsthenPlatform Feature VisibilityunderPreferences - Click on
Editbutton. Then enable the toggle forEnable Deployment

- Click on
Savebutton.

Choose to create a new cluster or attach an existing cluster
Clusters. Add the following value at the end of your URL &controlPlaneSetupEnabled=true. This will enable the control plane installation for you. You can click on Create New Cluster or Attach Existing Cluster depending on your use case. Read the requirements and if everything is satisfied, click on Continue.
Fill up the form to generate the OpenTofu/Terraform code
Submit when done- Create New Cluster
- Attach Existing Cluster
Region- The region where you want to create the cluster.Project ID- The project ID where you want to create the cluster.Cluster Name- A name for your cluster.Cluster VersionandMaster node IPv4 block- The version of the cluster and the IPv4 block for the master nodes.Availability Zones- The availability zones where you want to create the cluster nodes.Resource Tags- Tags to be added to the resources created by TrueFoundry on your behalf if any.Network Configuration- Choose betweenNew networkorExisting networkdepending on your use case.DNS Configuration- Configure the DNS zone and domains that will point to the cluster’s load balancer. This also provisions a TLS certificate for those domains. Select New DNS Zone or Existing DNS Zone if you want TrueFoundry to provision DNS in GCP. If you use an external DNS provider (e.g., Route53, Cloudflare), you can skip this section.
GCS Bucket for OpenTofu/Terraform State- OpenTofu/Terraform state will be stored in this bucket. It can be a preexisting bucket or a new bucket name. The new bucket will automatically be created by our script.Control Plane Configuration- Control plane URL and the database details. You can chose betweenPostgreSQL on kubernetesorManaged PostgreSQL (RDS)orExisting PostgreSQL configurationdepending on your use case.
Copy the curl command and execute it on your local machine
curl command to download and execute the script. The script will take care of installing the pre-requisites, downloading OpenTofu/Terraform code and running it on your local machine to create the cluster. This will take around 40-50 minutes to complete.
Create DNS Record
LoadBalancer in the istio-system namespace. You can run the following command to get the IP address.Attach the compute plane to the control plane
Clusters. Click on Attach Existing Cluster and fill in the details of the control plane cluster. The key fields to fill up here are:Cluster Name- The name of the cluster.Cluster Addons- Unselect all the addons as we have installed them while bringing up the control plane.Network Configuration- Networking configuration of the control plane cluster.GCS Bucket for OpenTofu/Terraform State- OpenTofu/Terraform state will be stored in this bucket. It can be a preexisting bucket or a new bucket name. You can use the same bucket that we used for the control plane and change the bucket key to be used for OpenTofu/Terraform state file.Platform Features- This is to decide which features like BlobStorage, ClusterIntegration, ParameterStore, DockerRegistry and SecretsManager will be enabled for your cluster. To read more on how these integrations are used in the platform, please refer to the platform features page.

Copy the curl command and execute it on your local machine
curl command to download and execute the script. The script will take care of installing the pre-requisites, downloading OpenTofu/Terraform code and running it on your local machine to create the cluster. This will take around 40-50 minutes to complete.
Verify the cluster is showing as connected in the platform
Start deploying workloads to your cluster
FAQ
Can I use my own certificate and key files to add TLS to the load balancer?
Can I use my own certificate and key files to add TLS to the load balancer?
How to enable SSL for PostgreSQL connections?
How to enable SSL for PostgreSQL connections?
DB_SSL_MODE environment variable in your truefoundry-values.yaml.Supported DB_SSL_MODE values:no-verify)This is the simplest option for GCP Cloud SQL. It encrypts the connection but skips server certificate validation.require)This mode encrypts the connection and validates the server certificate. GCP Cloud SQL supports client certificate authentication (mTLS), so you may need to provide the server CA certificate along with the client certificate and client key.Download the certificates from the Cloud SQL instance page in the GCP Console, then create a Kubernetes Secret:truefoundry-values.yaml to mount the certificates and set the SSL paths:How to enable and access control plane monitoring (Grafana)?
How to enable and access control plane monitoring (Grafana)?
truefoundry-values.yaml:- Replace
<your-truefoundry-control-plane-url>with your actual control plane domain (e.g.,app.example.com) and<tenant-name>with your TrueFoundry tenant name provided during onboarding. - Only users with the admin role can access this endpoint.
- Make sure to include the trailing
/at the end of the URL. - If you already have Prometheus or VictoriaLogs in your cluster, you can point the monitoring stack to them using
externalServicesinstead of installing new instances.