TMA-GKE-5.5.3
Verify node auto-upgrade is enabled for GKE node pools
Description
Verify node auto-upgrade is enabled for GKE node pools so nodes receive supported Kubernetes versions, node image updates, and security fixes through the managed upgrade process. Node auto-upgrade is enabled by default for new GKE node pools, but it should still be reviewed for older node pools. Requires gcloud with container.clusters.get; the cluster comes from GKE_CLUSTER and GKE_LOCATION (optional GKE_PROJECT, else the gcloud default project). Every node pool is checked.
How it is checked
Audit method: Shell command
out=$(gcloud container node-pools list --cluster "${GKE_CLUSTER:?set GKE_CLUSTER}" --location "${GKE_LOCATION:?set GKE_LOCATION}" ${GKE_PROJECT:+--project=$GKE_PROJECT} --format='value(name,management.autoUpgrade)') || exit 1
bad=$(printf '%s\n' "$out" | awk -F '\t' 'NF && !($2=="True") {print $1 ": " $2}')
if [ -z "$bad" ]; then echo compliant; else printf '%s\n' "$bad"; fi- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Enable node auto-upgrade for any GKE node pool where the audit result is not true. This allows GKE to automatically schedule eligible node pools for upgrades when upgrade targets become available, subject to maintenance windows, maintenance exclusions, release channel behavior, and upgrade rollout constraints. gcloud container node-pools update $POOL_NAME \ --cluster $CLUSTER_NAME \ --location $LOCATION \ --project $PROJECT_ID \ --enable-autoupgrade After remediation, rerun the audit command and confirm that management.autoUpgrade returns true. If multiple node pools are present, repeat the audit and remediation for each applicable node pool.
Properties
- Operating systems
- Any
- Tags
- gkemanaged-services
- Reference
- CIS Google Kubernetes Engine (GKE) Benchmark v2.0.0 - 5.5.3 Verify node auto-upgrade is enabled for GKE node pools
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target gke --level 2