Skip to content
NewFinOps, Kubernetes and AI, on one platform
Book a demo
UnitVane docs
API referenceReleases

Connect Google Cloud billing

Read your detailed billing export in BigQuery with a service account that can view the dataset and run queries.

Who does what

How Google Cloud data reaches KubeOn

  1. 01

    Billing export

    Cloud Billing detailed usage cost export to BigQuery, net of committed use discounts and credits.

    Your billing project

  2. 02

    Read-only access

    A service account with BigQuery Data Viewer on the export dataset and Job User in the billing project.

    KubeOn service account

  3. 03

    Cluster snapshots

    A cluster token from KubeOn. No service account or bucket: snapshots go to your organization in KubeOn and nowhere else.

    Agent in each cluster

  4. 04

    Allocate + reconcile

    The hub joins hourly snapshots with the bill, allocates each node's cost to pods, teams and labels, and reconciles every cluster to its bill.

    KubeOn hub

The KubeOn agent never changes your clusters. The billing service account only reads, and the agent can only write snapshots.

On this page

No keys needed

In Integrations > Connect a cloud, choose your cloud and select Keyless. You create no key, password or secret. Your cloud checks that the request is for your organization ID, which KubeOn sets and no organization can change. The page fills that ID into the commands.

Grant access

gcloud and bq
# Prerequisite: Cloud Billing > Billing export > Detailed usage cost to BigQuery# dataset: acme-billing:billing_export. GKE cost allocation is optional.gcloud iam service-accounts create kubeon-billing \  --project acme-billing --display-name "KubeOn billing reader"# Read the billing export datasetbq add-iam-policy-binding \  --member="serviceAccount:kubeon-billing@acme-billing.iam.gserviceaccount.com" \  --role="roles/bigquery.dataViewer" \  acme-billing:billing_export# Run queries in the billing projectgcloud projects add-iam-policy-binding acme-billing \  --member="serviceAccount:kubeon-billing@acme-billing.iam.gserviceaccount.com" \  --role="roles/bigquery.jobUser"
Use the detailed usage cost export. The standard export has no resource-level detail, so nodes cannot be matched to billing.

GKE cost allocation

Optional. With cost allocation enabled, the billing export carries namespace and label detail for GKE workloads, which KubeOn uses as a cross-check.

gcloud
gcloud container clusters update gke-prod-usc1 \  --region us-central1 \  --enable-cost-allocation

Add the integration

In Settings > Integrations, choose Google Cloud and enter the project, dataset and table of the export, and the service account.

Need help with this guide?Contact support