Description
Without resource_labels, it is harder to identify the service, environment or team that owns a GKE cluster. Labels are a basic asset-management tool, not an access control.
As the number of clusters grows, unlabeled assets can be left out of cost tracking and management automation. Production environments should maintain labels such as environment, service and owner.
Potential impact
- It can be harder to identify a cluster’s owner and purpose quickly.
- Cost allocation and environment classification can become inaccurate.
- Label-based automation and policies can omit the cluster.
Remediation
- Define
resource_labelsfor the environment, service and owner. - Include required-label checks when creating GKE clusters.
- Standardize the label structure across the organization and minimize exceptions.
Examples
These are cluster resource labels, not Kubernetes Pod labels or IAM permissions.
Before
hcl
resource "google_container_cluster" "example" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
}
After
hcl
resource "google_container_cluster" "example" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
resource_labels = {
environment = "prod"
service = "payments"
}
}
Explanation:
- Before: The cluster has no labels, making asset classification and operational policies harder to apply.
- After: Explicit labels make the cluster’s ownership and purpose easier to track.