More Info:
Enable node auto-upgrade so nodes stay current with the control plane version and receive security patches automatically. Outdated nodes may run vulnerable Kubernetes and OS versions.Risk Level
LowAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List all node pools and identify which require review
- Run on: any machine with
gcloudaccess.
- Decide which node pools should have auto-upgrade based on workload sensitivity, maintenance windows, and existing patching processes.
- Run on: any machine with
-
Gather auto-upgrade configuration for each node pool
- For each node pool name from step 1, run:
- Capture
.management.autoUpgradeand.management.autoRepairfor documentation.
-
Assess whether auto-upgrade should be enabled
- For each node pool, review:
- Change-management and maintenance window requirements.
- Need for predictable vs. rapid security updates.
- Workload disruption tolerance and PodDisruptionBudget coverage.
- Decide per node pool: enable auto-upgrade, or keep it disabled with a documented manual upgrade process and schedule.
- For each node pool, review:
-
Enable auto-upgrade where appropriate
- For node pools where you’ve decided to enable it, run:
- Note: this changes future upgrade behavior; it does not immediately upgrade nodes but may schedule automatic upgrades according to Google’s policy.
-
Document exceptions where auto-upgrade remains disabled
- For any node pool where you choose not to enable auto-upgrade:
- Record the business/technical justification.
- Define and document an alternative, regular manual upgrade process (commands, cadence, responsible owner).
- For any node pool where you choose not to enable auto-upgrade:
-
Verify configuration after changes
- Re-run the audit command for all node pools:
- Confirm
autoUpgradeistruefor node pools where it should be enabled, and that anyfalsevalues are intentional and documented.
Using kubectl
Using kubectl
kubectl cannot enable node auto-upgrade because this setting is managed on the GKE control-plane side (Google Cloud Console / gcloud / IaC), not via Kubernetes API objects. To remediate this finding, follow the guidance in the Manual Steps section using the Google Cloud Console, gcloud CLI, or your IaC tooling.
Automation
Automation
- Each node pool shows:
management: {...}– raw management block from the API.autoUpgrade: true <-- OK– compliant with the benchmark.autoUpgrade: false <-- NON_COMPLIANT– needs review and likely remediation.
autoUpgrade: true to align with CIS GKE 5.5.3.
