Skip to main content
compliance · gcp

GKE clusters with node auto-upgrade turned off on their node pools

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

GKE clusters are flagged when ZopNight records node auto-upgrade as off, the legacy per-pool `management.autoUpgrade` setting that Google enables by default. Nodes then stop following the control plane version, and keeping them within the GKE version skew policy, including security patch releases, becomes a manual job until GKE forces an upgrade at end of support.

Signal and threshold

How ZopNight evaluates GKE clusters with node auto-upgrade turned off on their node pools.
Field Value
Rule IDsRC-120
Categorycompliance
Severitymedium
Metricnone — pure configuration read
Thresholdnode auto-upgrade recorded as disabled
SourceZopNight
Permissions usedcontainer.clusters.list · container.clusters.get

What happens when nodes stop upgrading

GKE upgrades the control plane on your behalf. Node auto-upgrade keeps node pools moving with it. Google’s auto-upgrade page says what you take on when you switch it off: responsibility for keeping node versions compatible with the control plane under the GKE version skew policy. It also notes that disabling only delays upgrades until the end of standard support, after which GKE upgrades the nodes anyway, on its own timing rather than yours.

So a disabled flag rarely prevents an upgrade forever. It turns a steady stream of small, scheduled node updates into one forced upgrade on a date you did not choose.

Checking each node pool

Terminal window
gcloud container node-pools list --cluster=CLUSTER_NAME --location=LOCATION \
--format="table(name,version,management.autoUpgrade)"

Compare the node versions with the control plane version from gcloud container clusters describe CLUSTER_NAME --location=LOCATION --format="value(currentMasterVersion)".

The signal ZopNight uses

ZopNight rolls up the auto-upgrade setting of a cluster’s node pools into one value per cluster during inventory, and fires only when that value is explicitly off. A cluster with no recorded value is not flagged.

Pauses this rule cannot see

Google now recommends maintenance exclusions, not the per-pool flag, as the way to hold upgrades back. An exclusion leaves the flag on, so a cluster paused that way does not appear here. Review exclusions with the cluster’s maintenance policy if you need a complete picture. Autopilot clusters always auto-upgrade and cannot be switched off.

Patch risk, no dollar figure

There is no saving; the fixed estimate is $0. The risk is nodes missing security fixes, and a forced upgrade arriving at an inconvenient time.

Re-enabling upgrades safely

  1. Set a maintenance window so upgrades land when you want them.
  2. Turn auto-upgrade back on for each pool: gcloud container node-pools update POOL_NAME --cluster=CLUSTER_NAME --location=LOCATION --enable-autoupgrade.
  3. Configure a surge upgrade strategy or PodDisruptionBudgets so upgrades do not take down too many replicas at once.
  4. Keep auto-repair on too; see GKE Node Pool Auto-Repair Disabled.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·