SkillAgentSearch skills...

gke-ai-troubleshooting-tpu-reservation-stockout

Diagnose and resolve cluster-wide GKE TPU node pool creation or scale-up failures caused by Compute Engine reservation stockouts (GCE_STOCKOUT, ZONE_RESOURCE_POOL_EXHAUSTED) when existing unhealthy or NotReady TPU node pools in the cluster have node auto-repair disabled and hold reserved TPU capacit…

Install / Use

npx skills add google/skills --skill gke-ai-troubleshooting-tpu-reservation-stockout

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

91/100

Supported Platforms

Universal

Tags

Our assessment of gke-ai-troubleshooting-tpu-reservation-stockout

gke-ai-troubleshooting-tpu-reservation-stockout scores 91/100 on our quality scale, 1008th of 4,603 Development & Engineering skills we index (top 22%).

Its SKILL.md is 17 KB long, well organised into 11 sections and no code examples: a thorough specification that gives an agent plenty to work with.

With 20,340 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
13/20
Description
15/15
Adoption
18/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 26 days ago, so gke-ai-troubleshooting-tpu-reservation-stockout is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

gke-ai-troubleshooting-tpu-reservation-stockout compared with similar skills

All 4 of these similar skills score higher than gke-ai-troubleshooting-tpu-reservation-stockout; compare them before choosing.

SkillScoreStarsUpdatedFormat
gke-ai-troubleshooting-tpu-reservation-stockout (this skill)by google9120.3k26d agoSKILL.md
taste-skillby Leonxlnx10099.7ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10059.2ktodayCLAUDE.md
claude-howtoby luongnv8910042.0ktodayCLAUDE.md
algorithmic-artby anthropics100177.9k27d agoSKILL.md

Frequently asked questions

How do I install gke-ai-troubleshooting-tpu-reservation-stockout?
Run npx skills add google/skills --skill gke-ai-troubleshooting-tpu-reservation-stockout. The install tabs above show the steps for each supported agent.
Which AI agents does gke-ai-troubleshooting-tpu-reservation-stockout work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is gke-ai-troubleshooting-tpu-reservation-stockout safe to use?
It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is gke-ai-troubleshooting-tpu-reservation-stockout still maintained?
The repository was last updated 26 days ago, so gke-ai-troubleshooting-tpu-reservation-stockout is actively maintained.

name: gke-ai-troubleshooting-tpu-reservation-stockout description: >- Diagnose and resolve cluster-wide GKE TPU node pool creation or scale-up failures caused by Compute Engine reservation stockouts (GCE_STOCKOUT, ZONE_RESOURCE_POOL_EXHAUSTED) when existing unhealthy or NotReady TPU node pools in the cluster have node auto-repair disabled and hold reserved TPU capacity. Use when TPU node pool creation or scale-up fails with GCE_STOCKOUT, ZONE_RESOURCE_POOL_EXHAUSTED, or ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS despite having a specific Compute Engine TPU reservation. Don't use for general pod scheduling without a TPU reservation or workload-level container crashes. metadata: version: "1.0.1" category: Containers

Troubleshoot GKE TPU reservation stockouts caused by leaked node pool capacity

Use this skill to diagnose and resolve GKE TPU node pool creation or scale-up failures that fail with GCE_STOCKOUT, ZONE_RESOURCE_POOL_EXHAUSTED, or ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS (or queue due to lack of capacity) even though they target a specific Compute Engine TPU reservation.

If node auto-repair is disabled on an existing TPU node pool, GKE doesn't repair its nodes when they become NotReady. While their VMs are still running, they keep consuming slots in the reservation (inUseCount is the number of running instances that consume the reservation). Per Ensure reservation availability, the reservation must have sufficient available TPU chips at the time of node pool creation, and per Multi-host TPU slice node pools, if GKE is unable to deploy one node in a slice, no nodes in the TPU slice node pool are deployed. When the free slots in the reservation (specificReservation.count - specificReservation.inUseCount; see Consumable instances in a reservation) are fewer than the number of nodes that the new TPU node pool needs, creation fails with GCE_STOCKOUT or ZONE_RESOURCE_POOL_EXHAUSTED (or queues due to lack of capacity).

Attribution

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-ai-troubleshooting-tpu-reservation-stockout)" and append agent-skills/1.0 (skill:gke-ai-troubleshooting-tpu-reservation-stockout) to User-Agent headers.

Prerequisites

  • Required IAM Roles:
    • Logs Viewer (roles/logging.viewer): Query Cloud Audit Logs in Cloud Logging.
    • Monitoring Viewer (roles/monitoring.viewer): Query GKE node readiness metrics in Cloud Monitoring.
    • Kubernetes Engine Viewer (roles/container.viewer): Inspect GKE node pools (management.autoRepair), cluster operations, and node conditions.
    • Compute Viewer (roles/compute.viewer): Inspect Compute Engine reservation utilization (specificReservation.inUseCount vs specificReservation.count), consuming instances, and VM labels (including in the reservation's owner project if using a shared reservation).
    • For remediation ([High Risk] steps): Kubernetes Engine Cluster Admin (roles/container.clusterAdmin)
  • API Enablement & Billing:
    • Ensure the target project has an active Google Cloud billing account attached: gcloud billing projects describe {project_id}.
    • Enable required APIs: container.googleapis.com, compute.googleapis.com, logging.googleapis.com, and monitoring.googleapis.com.
  • CLI & Authentication Setup:
    • Install Google Cloud SDK (gcloud) and kubectl: https://cloud.google.com/sdk/docs/install.
  • Cluster mode: This skill applies to Standard clusters. Autopilot clusters always auto-repair nodes, and you can't turn this off (see Settings for Autopilot and Standard).
  • Reference Documentation:

Read-only rule: Run read-only diagnostic commands only. Never drain, delete, or re-create nodes, or run any other command that changes the cluster. Give the user any fix to apply themselves.

When you recommend a fix, link the doc section that describes it.


Diagnostic workflow

Step 0: Collect context and set the investigation window

Identify the following environment parameters from the user prompt or cluster context:

  • {project_id}, {cluster_name}, {location}, {failing_nodepool_name}, {reservation_name}, {reservation_project_id} (the project that owns {reservation_name}, which defaults to {project_id} for a single-project reservation or is the owner project for a shared reservation; see Consuming a specific shared reservation), {zone} (the zone of the reservation), and {issue_time}.
  • Time window: By default, query a 60-minute window [{issue_time} - 30m, {issue_time} + 30m] ({start_time} to {end_time}).

Step 1: Confirm the stockout error and reservation utilization [Low Risk]

  1. Check Cloud Audit Logs and GKE operations for stockout or capacity errors:
  2. Check Compute Engine reservation utilization:
    • Per Limitations, query shared reservations in the owner project where they were created ({reservation_project_id}).
    • Follow the View reservations section to run gcloud compute reservations describe {reservation_name} --zone={zone} --project={reservation_project_id} or gcloud compute reservations list --project={reservation_project_id}, and compare specificReservation.inUseCount against specificReservation.count.

Interpret the results

  • Don't suggest deleting any node pool until you have identified which existing VMs and node pools hold the reserved capacity (Step 2).
  • Stockout confirmed: Per Ensure reservation availability and Multi-host TPU slice node pools, if GKE can't deploy one node in a multi-host slice, no nodes in the slice are deployed. If a stockout or lack-of-capacity message is present and the free slots (specificReservation.count - specificReservation.inUseCount; see Consumable instances in a reservation) are fewer than the number of nodes that {failing_nodepool_name} needs, proceed to Step 2.

Step 2: Find which VMs and node pools hold the reservation [Low Risk]

  1. Check which VMs are consuming {reservation_name}:
  2. Check node readiness in {cluster_name}:

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars20.3k
CategoryDevelopment
Updated26d ago
Forks1.7k

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions