Skip to main content

Deploying CloudCADI on GCP

CloudCADI deploys into the user's own Google Cloud project using Google Cloud Infrastructure Manager. The deployment uses a Terraform configuration stored as a ZIP file in a Google Cloud Storage (GCS) bucket.

Infrastructure Manager executes the Terraform configuration, which provisions VPC + GKE + Cloud SQL PostgreSQL + Workload Identity + CloudCADI Helm deployment.

Deployment Flow

  1. Upload the Terraform configuration ZIP file to a GCS bucket.
  2. Create a new deployment in Google Cloud Infrastructure Manager.
  3. Configure the Terraform source using the GCS ZIP file.
  4. Enter the required Terraform input values.
  5. Create the Infrastructure Manager deployment.
  6. Infrastructure Manager executes the Terraform configuration and provisions the required GCP resources.
  7. Verify the deployment and access the CloudCADI application using the deployment output.

Infrastructure Manager Deployment Walkthrough

This document describes the step-by-step procedure to deploy the CloudCADI application in Google Kubernetes Engine (GKE) using Google Cloud Infrastructure Manager.

Prerequisites

  1. If the project is not linked to any billing account, link it to an existing billing account. If no billing account exists, create one first and then link it. Enable billing account

  2. Enable the BigQuery API if it is not already enabled. Enable bigquery

  3. Cloud Billing and Pricing export to BigQuery lets you export detailed Google Cloud billing data (such as usage, cost estimates, and pricing data) automatically throughout the day to a BigQuery dataset that you specify.

    • To enable and configure the export of Cloud Billing usage cost and pricing data to a BigQuery dataset, you need the following permissions:
      1. Billing Account Administrator role - for the target Cloud Billing account.
      2. BigQuery User role - for the Google Cloud project that contains the BigQuery dataset that will be used to store the Cloud Billing data.
  4. Open the Cloud Billing console for that project. Click Go to Linked Billing Account. Go to linked billing account

  5. This will take you to the detailed billing account page for your Billing Account. Select Billing export from the Billing navigation menu. Go to billing export

  6. Enable the export for Detailed usage cost and Pricing. Click Edit Settings for both Detailed Usage Cost and Pricing. Select the project and dataset where you want to store the billing and pricing data. Enable export

    Detailed usage cost

    Pricing

  7. After enabling the export, the page will appear as shown below.

Billing export

Retrieve BigQuery Export Table Details

You will need the following values while configuring CloudCADI:

  1. Open the Google Cloud Console.
  2. Select the project where you configured the billing and pricing exports.
  3. Navigate to BigQuery.
  4. In the Explorer panel, expand your project and dataset.
  5. Locate the tables generated by the Detailed Usage Cost and Pricing exports.

BigQuery

1. Fully Qualified Detailed Billing Report

Provide the following details:

  • Project ID → The Google Cloud project where the BigQuery billing export dataset is located.
  • Dataset Name → The BigQuery dataset configured for the Detailed Usage Cost export.
  • Table Name → The billing export table generated within the dataset.

These values combine to form the fully qualified BigQuery table name in the following format:

project-id.dataset-name.table-name

Example:

my-project.billing_export.gcp_billing_export_resource_v1_xxxxx

Note: The Detailed Usage Cost export table name typically contains resource_v1 as part of the table name.


2. Fully Qualified Pricing Report

Provide the following details:

  • Project ID → The Google Cloud project where the BigQuery billing export dataset is located.
  • Dataset Name → The BigQuery dataset configured for the Pricing export.
  • Table Name → The pricing table generated within the dataset.

These values combine to form the fully qualified BigQuery table name in the following format:

project-id.dataset-name.table-name

Example:

my-project.billing_export.cloud_pricing_export

Note: The Pricing export table name is different from the Detailed Usage Cost export table. The resource_v1 substring applies to the Detailed Usage Cost export table, not the Pricing export table.

Step 1 - Upload the Terraform Configuration to GCS

  • Open the Google Cloud Console and navigate to: Cloud StorageBuckets Upload terraform to gcs
  • Select the bucket where the Terraform deployment package should be stored. Upload the Terraform ZIP file and copy the Cloud Storage URI.

Step 2 - Open Infrastructure Manager

  • Open Google Cloud Console → Select the target GCP project → Infrastructure Manager. Open Infrastructure manager

Step 3 - Create a New Deployment

  • To create a new deployment, you can use either of the following options:

    • Click Create new deployment at the top of the page.
    • Click New Deployment in the center of the page. Create deployment
  • The Create new Terraform deployment page will be displayed.

Step 4 - Configure Deployment Details

  • Enter the Deployment ID, select the Infrastructure Manager region and Terraform version, choose GCS under Source of Terraform configuration, and enter the GCS path of the Terraform ZIP file. Click Continue. Configure deployment details

Step 5 - Provide Terraform Inputs

  • After selecting the Terraform source, Infrastructure Manager reads the Terraform configuration and displays the required input variables.

  • The CloudCADI Terraform configuration contains the following variables:

    Input valuesDescription
    project_idTarget GCP project ID GCP project where CloudCADI resources are created
    regionGCP region for regional resources
    zoneGCP zone where the zonal GKE cluster is created
    goog_cm_deployment_nameUnique deployment name used as the resource-name prefix

Step 6 - Create the Deployment

  • Fill in all the required Terraform input values click Create deployment.

    Create deployment

  • After clicking Create deployment, Infrastructure Manager executes the Terraform configuration.

Step 7 - Verify and Access the Application

  • Once all resources are created successfully, go to Outputs and use the site_url field to access the application. Verify and access application

Architecture

CloudCADI on GCP — Architecture & Flow
Enterprise FinOps Platform — GKE Deployment (Infrastructure Manager flow)
Cluster: Google Kubernetes Engine (GKE) | Database: Cloud SQL for PostgreSQL | Registry: Artifact Registry | IaC: Terraform + Infrastructure Manager | Source: Terraform ZIP + Google Cloud Storage
1
Upload Terraform Configuration to GCS
Package the CloudCADI GCP Terraform configuration as a ZIP file and upload it to the Google Cloud Storage bucket
2
Open Infrastructure Manager
Open Google Cloud Infrastructure Manager and select Create a new Terraform deployment
3
Create a New Deployment
Provide the deployment ID, region, Terraform version, and service account, then select GCS as the Terraform source
4
Configure Deployment Details
Provide the GCS source path containing the Terraform ZIP and continue to the Terraform details
5
Provide Terraform Input Values
Enter the required values such as project_id, region, zone, and goog_cm_deployment_name
6
Create the Deployment
Infrastructure Manager reads the Terraform configuration from GCS and executes Terraform to provision the GCP resources
7
Verify and Access the Application
Verify that the GKE resources and CloudCADI workloads are running successfully and access the deployed application
1
Terraform Configuration
CloudCADI Terraform scripts define the GCP infrastructure required for the deployment
2
Google Cloud Storage
The Terraform ZIP is stored in a GCS bucket and provided as the Infrastructure Manager source
3
Infrastructure Manager
Infrastructure Manager manages the Terraform deployment and executes the configuration using the selected Terraform version
4
Terraform Variables
Infrastructure Manager passes the deployment inputs such as project, region, zone, and deployment name to Terraform
5
GCP Resources Created
Terraform provisions the required networking, IAM, GKE, Cloud SQL, and supporting GCP resources
1
Images Available in Artifact Registry
CloudCADI and supporting container images are stored in the Google Artifact Registry repository
2
Helm Deployment
The CloudCADI Helm chart is used to configure and deploy the application into the GKE cluster
3
GKE Cluster
CloudCADI application pods and supporting Prefect server and worker workloads run inside the provisioned GKE cluster
4
Cloud SQL PostgreSQL
The CloudCADI application connects to Cloud SQL PostgreSQL for application data and database operations
5
CloudCADI Pods Running
CloudCADI containers are running successfully inside the customer's GKE environment
Infrastructure Manager Deployment Details
  • Deployment ID — unique Infrastructure Manager deployment name
  • Region — Infrastructure Manager deployment region
  • Terraform Version — version used to execute the Terraform configuration
  • Service Account — service account used for Terraform execution
  • Source — GCS path containing the Terraform ZIP
Terraform Input Values
  • project_id — target GCP project
  • region — GCP deployment region
  • zone — GKE deployment zone
  • goog_cm_deployment_name — Infrastructure Manager deployment name
GCP Infrastructure
  • VPC / Subnet — network connectivity for the deployment
  • IAM Service Account — required permissions for deployment and runtime
  • GKE — Kubernetes cluster and node pool for CloudCADI
  • Cloud SQL — PostgreSQL database
  • Artifact Registry — CloudCADI container images and Helm artifacts
Deployment Model
  • Manual — operator uploads the Terraform ZIP to GCS and creates the Infrastructure Manager deployment
  • Infrastructure Manager — executes Terraform and provisions the GCP infrastructure
  • Helm — deploys CloudCADI workloads into GKE
CloudCADI is deployed into the target GCP project using Google Cloud Infrastructure Manager. The Terraform configuration is packaged as a ZIP file and stored in Google Cloud Storage. Infrastructure Manager reads the source, applies the provided Terraform input values, and provisions the GCP infrastructure. CloudCADI is then deployed into GKE using Helm, with Cloud SQL PostgreSQL used as the application database and Artifact Registry providing the required container and Helm artifacts.