Skip to content

beta-autopilot-private-cluster - v39.0 - Drift on cluster_autoscaling.default_compute_class_enabled #2450

@clevandowski

Description

@clevandowski

TL;DR

I enabled manually via gcloud cli the ability to define a default computeClass on my gke autopilot cluster:

gcloud container clusters update <mycluster> --location=<mylocation> --enable-default-compute-class

Since I upgraded the module beta-autopilot-private-cluster to v39.0, terraform detects a change on cluster_autoscaling.default_compute_class_enabled, and the module is not able to manage this case. So I can't reconcile the terraform config with the real cluster, and I need to have a default computeClass.

Expected behavior

Enable management of cluster_autoscaling.default_compute_class_enabled in the module beta-autopilot-private-cluster (and also in all autopilot modules)

Observed behavior

$ terraform plan
...
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # module.gke.google_container_cluster.primary will be updated in-place
  ~ resource "google_container_cluster" "primary" {
        id                                       = "projects/************/locations/europe-west9/clusters/********"
        name                                     = "********"
        # (37 unchanged attributes hidden)

      ~ cluster_autoscaling {
          - default_compute_class_enabled = true -> null
            # (3 unchanged attributes hidden)

            # (5 unchanged blocks hidden)
        }

        # (43 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Terraform Configuration

module "gke" {
  source  = "terraform-google-modules/kubernetes-engine/google//modules/beta-autopilot-private-cluster"
  version = "~> 39.0"

  project_id        = var.project_id
  name              = var.cluster_name
  regional          = true
  region            = var.region
  network           = google_compute_network.main.name
  subnetwork        = google_compute_subnetwork.main.name
  ip_range_pods     = google_compute_subnetwork.main.secondary_ip_range[0].range_name
  ip_range_services = google_compute_subnetwork.main.secondary_ip_range[1].range_name
  release_channel                 = "REGULAR"
  enable_private_endpoint         = false
  enable_private_nodes            = true
  enable_vertical_pod_autoscaling = true
  network_tags                    = [var.cluster_name]
  node_pools_cgroup_mode          = "CGROUP_MODE_V2"
  deletion_protection             = false
  enable_l4_ilb_subsetting        = true
  stateful_ha                     = false
  gke_backup_agent_config         = false
  ray_operator_config = {
    enabled            = true
    logging_enabled    = true
    monitoring_enabled = true
  }

  create_service_account = true
  grant_registry_access = true
}

Terraform Version

Terraform v1.13.2
on linux_amd64
+ provider registry.terraform.io/hashicorp/aws v6.5.0
+ provider registry.terraform.io/hashicorp/google v6.49.3
+ provider registry.terraform.io/hashicorp/google-beta v6.45.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.38.0
+ provider registry.terraform.io/hashicorp/random v3.7.2

Terraform Provider Versions

Providers required by configuration:
.
├── provider[registry.terraform.io/hashicorp/google] ~> 6.49.3
├── provider[registry.terraform.io/hashicorp/aws]
├── provider[registry.terraform.io/hashicorp/kubernetes]
└── module.gke
    ├── provider[registry.terraform.io/hashicorp/google] >= 6.42.0, < 8.0.0
    ├── provider[registry.terraform.io/hashicorp/google-beta] >= 6.42.0, < 8.0.0
    ├── provider[registry.terraform.io/hashicorp/kubernetes] ~> 2.10
    └── provider[registry.terraform.io/hashicorp/random] >= 2.1.0

Providers required by state:

    provider[registry.terraform.io/hashicorp/aws]

    provider[registry.terraform.io/hashicorp/google]

    provider[registry.terraform.io/hashicorp/google-beta]

    provider[registry.terraform.io/hashicorp/random]

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions