-
Notifications
You must be signed in to change notification settings - Fork 98
GKE Autoscaling NodePool continually resets its node count when initNodeCount is set, but nodeCount is not #516
Description
What happened?
I'm creating GKE NodePools with autoscaling enabled and initialNodeCount slightly higher than the min. However, when the nodepool scales down naturally, crossplane automatically ups it to the initial value.
The Managed Resource sets Node Count! for some reason
Spec: │
│ For Provider: │
│ Autoscaling: │
│ Max Node Count: 4 │
│ Min Node Count: 0 │
│ Initial Node Count: 4 │
│ Node Count: 4
....
I execed into the provider-gcp pod, found the resource and did terraform init/plan which gave me
# google_container_node_pool.control-plane-xxx-xxx will be updated in-place
~ resource "google_container_node_pool" "control-plane-xxx-xxx" {
id = "projects/xxx/locations/xxx/clusters/xxx/nodePools/xxxx"
name = "xxxx"
~ node_count = 0 -> 4
# (9 unchanged attributes hidden)So Crossplane is setting the node_count even though I do not set the nodeCount field.
How can we reproduce it?
Create a GKE cluster with a Node pool with config
apiVersion: container.gcp.upbound.io/v1beta1
kind: NodePool
spec:
forProvider:
initialNodeCount: 4
autoscaling:
- maxNodeCount: 4
minNodeCount: 0
nodeConfig...What environment did it happen in?
I've reproduced this running crossplane both on a local kind cluster and a GKE cluster.
provider-gcp-container:v0.38.1
provider-gcp-compute:v0.38.1
helmReleaseName = "upbound-stable/universal-crossplane"
helmName = "uxp"
helmRepo = "upbound-stable"
helmRepoUrl = "https://charts.upbound.io/stable"
version = "v1.14.3-up.1"