Google GKE Cluster Access for Cloudaware
Configure Google Kubernetes Engine (GKE) cluster access so Cloudaware can discover Kubernetes objects in your GCP projects.
Prerequisites
- Access to a Cloudaware account.
- A user with access to the Admin Console for managing integrations (Cloudaware Administrator).
- You have
Service Account Admin/Project IAM Adminpermissions in Google Cloud. - You have
Cluster Viewerpermissions to view or access the cluster. - A service account is configured and keys are created for Cloudaware as described in Google Cloud Setup Guide.
- One or more GKE clusters in projects where the Cloudaware service account has access. The GKE cluster(s) must be able to download the container image.
Access Model Overview
GKE access for Cloudaware typically involves:
- IAM — the Cloudaware service account must be allowed to obtain Kubernetes credentials for the cluster (for example, via
roles/container.adminor a more restrictive custom role). - Kubernetes RBAC — the Kubernetes identity used by Cloudaware should have a read‑only ClusterRole (namespaces, nodes, pods, services, RBAC, etc.).
Configuration
Configure the GKE Cluster
The cluster needs credentials or identity-based access to pull the app image from your container registry. Use one of the following options:
- Workload Identity - A Google Cloud-native way to let workloads authenticate without storing long-lived secrets in Kubernetes.
- Image pull secrets - A Kubernetes secret containing registry credentials, used when pulling private images.
Assign GKE IAM Roles to Cloudaware
Grant Cloudaware one of the following IAM roles:
- Kubernetes Engine Viewer. Assign the Cloudaware service account a predefined IAM role that provides read-only access to resources within Google Kubernetes Engine (GKE).
- Custom role. Create a custom IAM role with the
container.clusters.getpermission and assign it to the Cloudaware service account.
To assign the role in the Google Cloud console:
- Sign in to the Google Cloud console.
- Select the project, folder, or organization that contains the GKE clusters Cloudaware should discover.
- Go to IAM & Admin → IAM.
- Click Grant Access.
- In New principals, enter the Cloudaware service account email address.
- In Select a role, choose Kubernetes Engine Viewer or the custom role created for Cloudaware.
- Click Save.
- Repeat these steps for each project, folder, or organization scope that contains GKE clusters to discover.
For more information about Kubernetes Engine roles and permissions, use the Google Cloud documentation.
note
If the GKE cluster is not reachable from Cloudaware due to private networking, install the Breeze agent and use TunHub for a secure connection.
Verification in Cloudaware
After the Google Cloud permissions for GKE are in place:
- Allow time for the next discovery cycle (up to 24 hours in some environments).
- In Cloudaware CMDB Navigator, check the GOOGLE CLOUD PLATFORM → COMPUTE → GKE.
- Confirm that GKE cluster resources (namespaces, nodes, pods, services, role bindings, etc.) are populated.
Troubleshooting
If GKE resources do not appear:
- Confirm that:
- The Cloudaware service account has the required GKE IAM permissions, such as
container.clusters.getor an equivalent read-only role. - The GKE cluster endpoint is reachable from Cloudaware, or the Breeze agent and TunHub are configured for private clusters.
- The GCP integration service account key in Cloudaware is current and matches an active Google Cloud service account.
- The Cloudaware service account has the required GKE IAM permissions, such as
- Review Google Cloud audit logs and Kubernetes audit logs for denied requests from the Cloudaware service account or mapped Kubernetes identity.
Supported GKE Objects
| Google GKE Object | CMDB Object API Name |
|---|---|
| Google GKE Cluster | CA10G1__CaGoogleGkeCluster__c |
| Google GKE Cluster Config Map | CA10G1__CaGoogleGkeClusterConfigMap__c |
| Google GKE Cluster Daemon Set | CA10G1__CaGoogleGkeClusterDaemonSet__c |
| Google GKE Cluster Deployment | CA10G1__CaGoogleGkeClusterDeployment__c |
| Google GKE Cluster Endpoint | CA10G1__CaGoogleGkeClusterEndpoint__c |
| Google GKE Cluster HPA | CA10G1__CaGoogleGkeClusterHpa__c |
| Google GKE Cluster Ingress | CA10G1__CaGoogleGkeClusterIngress__c |
| Google GKE Cluster Limit Range | CA10G1__CaGoogleGkeClusterLimitRange__c |
| Google GKE Cluster Namespace | CA10G1__CaGoogleGkeClusterNamespace__c |
| Google GKE Cluster Network Policy | CA10G1__CaGoogleGkeClusterNetworkPolicy__c |
| Google GKE Cluster Network Policy Rule | CA10G1__CaGoogleGkeClusterNetworkPolicyRule__c |
| Google GKE Cluster Node | CA10G1__CaGoogleGkeClusterNode__c |
| Google GKE Cluster Node Address | CA10G1__CaGoogleGkeClusterNodeAddress__c |
| Google GKE Cluster Node Condition | CA10G1__CaGoogleGkeClusterNodeCondition__c |
| Google GKE Cluster Node Pool | CA10G1__CaGoogleGkeClusterNodePool__c |
| Google GKE Cluster Pod | CA10G1__CaGoogleGkeClusterPod__c |
| Google GKE Cluster Pod Container | CA10G1__CaGoogleGkeClusterPodContainer__c |
| Google GKE Cluster Pod Disruption Budget | CA10G1__CaGoogleGkeClusterPodDisruptionBudget__c |
| Google GKE Cluster Replica Set | CA10G1__CaGoogleGkeClusterReplicaSet__c |
| Google GKE Cluster Resource Quota | CA10G1__CaGoogleGkeClusterResourceQuota__c |
| Google GKE Cluster Role | CA10G1__CaGoogleGkeClusterRole__c |
| Google GKE Cluster Role Binding | CA10G1__CaGoogleGkeClusterRoleBinding__c |
| Google GKE Cluster Secret | CA10G1__CaGoogleGkeClusterSecret__c |
| Google GKE Cluster Service | CA10G1__CaGoogleGkeClusterService__c |
| Google GKE Cluster Service Account Secret | CA10G1__CaGoogleGkeClusterServiceAccSecret__c |
| Google GKE Cluster Service Account | CA10G1__CaGoogleGkeClusterServiceAccount__c |
| Google GKE Cluster Stateful Set | CA10G1__CaGoogleGkeClusterStatefulSet__c |
| Google GKE Cluster Storage Class | CA10G1__CaGoogleGkeClusterStorageClass__c |