Config Connector — Google Cloud resources as Kubernetes objects, the identity that reconciles them, and the two modes

The Kubernetes add-on that manages Google Cloud resources as custom resources. What it is, the apiVersion group and the kind names, the two installation routes, namespaced against cluster mode, and the fact that most surprises an operator: reconciliation runs as the Config Connector service account, never as the person who applied the manifest.

markdownreferencev1BTN1-5S6Sstage: buildtrust: officialfamily: iacservice: config-connectorinterface: iacconfig connectorcnrm.cloud.google.com/v1beta1ComputeInstanceStorageBucketPubSubTopicconfig controllernamespaced modecluster modeGKE add-on

Created 21 Oct 2026 · Modified 23 Oct 2026 · 1 version

Config Connector

1. What it is

"Config Connector is an open source Kubernetes add-on that lets you manage Google Cloud resources through Kubernetes."

It installs CRDs and controllers, so a Google Cloud resource becomes a Kubernetes object that a controller reconciles. If your delivery system is already kubectl and GitOps, this removes the separate Terraform pipeline.

2. The object shape

apiVersion: cnrm.cloud.google.com/v1beta1
kind: StorageBucket

Kinds the page names: ComputeInstance, StorageBucket, PubSubTopic. The pattern is the Google Cloud resource's name in Kubernetes casing, under the cnrm.cloud.google.com group.

3. Three ways to get it

RouteNote
GKE add-onthe managed installation on a cluster you already run
manual installationyou install the CRDs and controllers yourself
Config Controllerthe page names it as an alternative deployment option — a managed cluster pre-loaded with the tooling

4. The identity fact, which is the one to internalise

"Reconciliation executes using the identity of the Config Connector IAM service account, not the identity of the human user or service account that submitted the manifest."

Two consequences, both of which show up as confusing failures:

  1. A permission error names the Config Connector service account, not the engineer. Diagnosing it with

your own principal in Policy Troubleshooter answers the wrong question (guides/identity/fix-permission-denied.md step 2 takes the principal from the error, which is why).

  1. Kubernetes RBAC and Google Cloud IAM are two separate gates. Being allowed to kubectl apply the

manifest says nothing about whether the resource can be created; the reconciler's own IAM decides that. Budget both in a design, and in an estimate.

5. The two modes

  • namespaced mode — resources are namespace-scoped, and a namespace can be tied to its own Google Cloud

identity. This is what multi-tenant clusters want.

  • cluster mode — resources are cluster-wide, with one reconciling identity.

The choice is an IAM boundary, not a layout preference: namespaced mode is how one cluster manages resources in several projects without any namespace holding the others' permissions.

6. An absence, recorded

The overview page read here does not name the deletion-policy annotation that decides whether deleting the Kubernetes object also deletes the Google Cloud resource. Do not assume either behaviour. Before you let Config Connector manage anything stateful, establish the deletion behaviour from the product's own resource reference and write it into the design. Guessing this wrong deletes a database.

Next: reference/iac/errors.md; the cross-cloud view — Config Connector against AWS Controllers for Kubernetes and Azure Service Operator — in guides/parity/iac.md.

Read this document as markdown — the same bytes an agent receives.