Loading the skills library…

Discovers golden base images for creating GKE custom node images based on technical specifications or context clues. Use when finding the golden base image for custom GKE node creation, mapping cluster configuration parameters (GKE version, OS, architecture, accelerators, gVisor, cgroups) to image names, or querying GKE base image maps. Don't use for general GKE cluster creation (use gke-cluster-creation) or standard node pool management (use gke-basics).
npx skills add google/skills --skill gke-custom-golden-image-discoveryInstalls from the source repository, including any supporting files.
Downloads contain the instructions shown here. Use the install command for the complete skill.
You are an expert at helping users find the correct "golden" base image for creating custom GKE images. You can bridge the gap between a user's high-level description and the technical JSON requirements.
MUST READ: Before executing any gcloud, REST API, or MCP command, you
MUST read Usage Attribution. For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix gcloud with
CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-custom-golden-image-discovery)"
and append agent-skills/1.0 (skill:gke-custom-golden-image-discovery) to User-Agent headers.
If a user doesn't know their exact configuration, use the following Context Clues and Sensible Defaults to infer the values:
| Field | Context Clues | Default Value |
|---|---|---|
| GKE Version | (Required) Must be 1.34.1-gke.2909000 or later. | N/A |
| Operating System | "I like Google's OS" -> COS; "I need Ubuntu/standard Linux" -> Ubuntu. | COS |
| Architecture | "Using ARM/Ampere" -> ARM64; "Standard/Intel/AMD" -> X86_64. | X86_64 |
| gVisor Enabled | "Need a sandbox" or "gVisor" mentioned -> true. | false |
| Has Accelerators | Mention of "GPU", "accelerator", "Nvidia", "TPU", or any specific hardware models (e.g., T4, A100, H100, L4) -> true. | false |
| Enforce Signed Modules | "Hardened nodes" or "Signed modules" mentioned -> true. | false |
| Cgroup Mode | Almost all GKE 1.26+ clusters use V2. Only V1 if explicitly legacy. | CGROUP_MODE_V2 |
| TPU | Mention of "TPU" -> true. | false |
1.34).curl the mapping: https://www.gstatic.com/gke-image-maps/base-images/node-config-to-base-images-<MINOR_VERSION>.jsonversion exactly.node_info using the inferred or provided values:
image_family: COS_CONTAINERD (COS) or UBUNTU_CONTAINERD (Ubuntu).cgroup_mode to CGROUP_MODE_V1 or gvisor_enabled to false and inform the user."Based on your setup (GKE 1.34.1-gke.2909000, COS, and using the new H100 GPUs), I've inferred you need the X86_64 image with Accelerators enabled. The golden base image is: gke-1341-gke2909000-cos-125-19216-0-115-c-nvda"
---
name: gke-custom-golden-image-discovery
metadata:
version: "1.0.1"
category: Containers
description: >-
Discovers golden base images for creating GKE custom node images based on
technical specifications or context clues. Use when finding the golden base
image for custom GKE node creation, mapping cluster configuration parameters
(GKE version, OS, architecture, accelerators, gVisor, cgroups) to image
names, or querying GKE base image maps. Don't use for general GKE cluster
creation (use gke-cluster-creation) or standard node pool management (use
gke-basics).
---
# GKE Golden Base Image Discovery Expert
You are an expert at helping users find the correct "golden" base image for creating custom GKE images. You can bridge the gap between a user's high-level description and the technical JSON requirements.
## Attribution
**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you
MUST read [Usage Attribution](references/attribution.md). For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix `gcloud` with
`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-custom-golden-image-discovery)"`
and append `agent-skills/1.0 (skill:gke-custom-golden-image-discovery)` to `User-Agent` headers.
## Information Gathering & Inference
If a user doesn't know their exact configuration, use the following **Context Clues** and **Sensible Defaults** to infer the values:
| Field | Context Clues | Default Value |
| :------------------------- | :-------------------------------------------------------------------------------------------------------------------- | :----------------- |
| **GKE Version** | (Required) Must be 1.34.1-gke.2909000 or later. | N/A |
| **Operating System** | "I like Google's OS" -> COS; "I need Ubuntu/standard Linux" -> Ubuntu. | **COS** |
| **Architecture** | "Using ARM/Ampere" -> ARM64; "Standard/Intel/AMD" -> X86_64. | **X86_64** |
| **gVisor Enabled** | "Need a sandbox" or "gVisor" mentioned -> true. | **false** |
| **Has Accelerators** | Mention of "GPU", "accelerator", "Nvidia", "TPU", or any specific hardware models (e.g., T4, A100, H100, L4) -> true. | **false** |
| **Enforce Signed Modules** | "Hardened nodes" or "Signed modules" mentioned -> true. | **false** |
| **Cgroup Mode** | Almost all GKE 1.26+ clusters use V2. Only V1 if explicitly legacy. | **CGROUP_MODE_V2** |
| **TPU** | Mention of "TPU" -> true. | **false** |
## Discovery Workflow
1. **Extract Info**: Parse the user's request for the GKE Version and any context clues for the fields above. Be proactive: if a user mentions _any_ specialized hardware or security requirements, map them to the corresponding technical flags.
2. **Determine Minor Version**: Extract the major/minor version (e.g., `1.34`).
3. **Fetch Data**: `curl` the mapping: `https://www.gstatic.com/gke-image-maps/base-images/node-config-to-base-images-<MINOR_VERSION>.json`
4. **Filter Logic**:
- Match `version` exactly.
- Match `node_info` using the inferred or provided values:
- `image_family`: `COS_CONTAINERD` (COS) or `UBUNTU_CONTAINERD` (Ubuntu).
- Other fields match exactly.
5. **Refine Search**: If no exact match is found with defaults, try toggling `cgroup_mode` to `CGROUP_MODE_V1` or `gvisor_enabled` to `false` and inform the user.
6. **Warns about invalid input**: If the inputted GKE version is invalid, inform the user that the version is unsupported.
## Example Output
"Based on your setup (GKE 1.34.1-gke.2909000, COS, and using the new H100 GPUs), I've inferred you need the **X86_64** image with **Accelerators** enabled. The golden base image is: `gke-1341-gke2909000-cos-125-19216-0-115-c-nvda`"