gke-labs/kube-agents/manage-cluster
Claude Code and agent skill by gke-labs/kube-agents
- community
Checking that the SKILL.md file is still in the repository.
Bring an existing GKE cluster under management on user request (e.g. "manage my cluster <name> in <location>") by creating its Cluster Agent profile, or take one out of management by excluding it. Use whenever a user asks to manage/onboard/watch a specific existing cluster, or to stop managing, exclude or offboard one.
Install
npx vskill@latest install gke-labs/kube-agents/manage-clusterSKILL.md
Manage Cluster Skill
When a user asks you to manage (onboard / start watching) a specific existing GKE cluster — e.g. _"manage my cluster payments-prod in us-central1"_ — bring it under management by creating its Cluster Agent profile. After this, the cluster gets a per-cluster agent and is delegable via the kanban board.
This is the explicit, user-driven counterpart to onboarding-time creation (gke-cluster-creation). It is safe to run repeatedly (idempotent).
Steps
- Gather the target. You need
project,cluster, andlocation.
- Use any values the user gave. If the user omits the project, resolve it:
- default to the platform's active project:
gcloud config get-value project; then - confirm the cluster exists in that project (next step). If it isn't there, or the name is ambiguous, run
gcloud container clusters list --format="value(name,location,resourceLabels)"(optionally--project <p>) to locate it, and ask the user only if still ambiguous.
- Verify the cluster exists before creating a profile (clean error instead of a half-scaffold):
verify_gke_cluster(platform GKE tool) orgcloud container clusters describe <cluster> --location <location> --project <project> --format="value(status)".- If it does not exist, tell the user and stop.
- Create the profile:
``bash python3 /opt/data/scripts/cluster_agent_profile.py create \ --project "<project>" --cluster "<cluster>" --location "<location>" ``
This scaffolds the Cluster Agent profile home on the data PVC, pins a read-only KUBECONFIG to that cluster, stamps its cluster_identity into the profile config and ## Target Cluster Identity into SOUL.md, and prints the profile name. It is idempotent — re-managing an already-managed cluster is a safe no-op.
- Confirm to the user. Report that
<cluster>(<project>/<location>) is now managed: it has a Cluster Agent and is delegable (kanban).
This step gives the cluster an agent immediately. Even without it, thecluster-agent-reconcilecron automatically gives every cluster in every project in scope — including the management cluster where kube-agents runs — an agent on its next run; this skill just does it now.
Stop managing
Because reconciliation manages all clusters in every project in scope, deleting a still-existing cluster's profile alone won't stick — the next reconcile recreates it. To stop managing a cluster:
- Tear down the cluster (see
gke-cluster-creation); reconcile prunes its profile automatically. - Or exclude it: declare the cluster as an exclusion where the install's scope is declared, which depends on how the
PlatformAgentis applied. Take that from the request, or ask; the agent cannot read the Helm release record. On an install made withinstall.shand upgraded withupgrade.sh(aninstall.envexists; the Terraform composition applies the chart from it), have the user addproject/location/clustertoSCOPE_EXCLUDE_CLUSTERSininstall.envand run./upgrade.sh --upgrade-mode=full, which renders the exclusion intospec.scope.exclude.clustersand the reconcile prunes the profile on its next run. Do not route them to edit thePlatformAgentor the chart values by hand there. A CR edit takes effect at the next reconcile, but the next full upgrade refuses to apply over aspec.scopethatinstall.envdoes not record, and prints theSCOPE_*lines that would; ahelm upgradeby hand is not refused, the next full upgrade rendersinstall.env's scope over it and the profile comes back. On a chart installed withhelm installdirectly, the exclusion is the valueplatformAgent.scope.exclude.clustersand ahelm upgrade; on the composition applied directly,scope.exclude.clustersin its tfvars. On a hand-appliedPlatformAgent(nometa.helm.sh/release-nameannotation:kubectl get platformagent -n kubeagents-system -o jsonpath='{.items[0].metadata.annotations.meta\.helm\.sh/release-name}', the install's namespace), add an entry{projectId, location, clusterName}tospec.scope.exclude.clusterson it (the operator delivers it to the reconcile, which prunes the profile on its next run). Fleet answers and the per-cluster audits leave an excluded cluster out too, not only the profile. The olderRECONCILE_EXCLUDEbare-name variable on thecluster-agent-reconcilecron still works for one release.
Notes
- Requires the cluster to be reachable by the platform's credentials (the create step runs
gcloud container clusters get-credentials). If that fails, surface the error — the user may need to grant access. - The Cluster Agent is read-only; managing a cluster does not grant any mutation ability. Remediation still flows through the Platform Agent's GitOps write path.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingagents/platform/skills/manage-cluster/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gke-labs/kube-agents/manage-cluster)