k8s_rollout_status
Monitor deployment rollout status in Kubernetes to verify successful updates and identify issues with pods or replicas.
Instructions
Check the rollout status of a deployment
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Deployment name | |
| namespace | No | Kubernetes namespace (default: 'default') |
Implementation Reference
- Implementation of the k8s_rollout_status tool handler logic.
export async function rolloutStatus(args: Record<string, unknown>): Promise<string> { const api = getAppsV1Api(); const namespace = (args.namespace as string) || "default"; const name = args.name as string; if (!name) throw new Error("Deployment name is required"); const response = await api.readNamespacedDeployment(name, namespace); const dep = response.body; const desired = dep.spec?.replicas || 0; const updated = dep.status?.updatedReplicas || 0; const ready = dep.status?.readyReplicas || 0; const available = dep.status?.availableReplicas || 0; const generation = dep.metadata?.generation || 0; const observedGeneration = dep.status?.observedGeneration || 0; const lines: string[] = [ `Rollout status for deployment '${name}' in '${namespace}':`, "", ` Desired: ${desired}`, ` Updated: ${updated}`, ` Ready: ${ready}`, ` Available: ${available}`, "", ]; if (generation === observedGeneration && updated === desired && ready === desired) { lines.push("✅ Rollout completed successfully."); } else if (updated < desired) { lines.push(`⏳ Rollout in progress: ${updated}/${desired} replicas updated.`); } else if (ready < updated) { lines.push(`⏳ Waiting for rollout: ${ready}/${updated} updated replicas ready.`); } else { lines.push("⚠️ Rollout status unclear — check conditions."); } // Conditions const conditions = dep.status?.conditions || []; if (conditions.length > 0) { lines.push("", "Conditions:"); for (const cond of conditions) { lines.push(` ${cond.type}: ${cond.status} — ${cond.message || ""}`); } } return lines.join("\n"); } - Definition and input schema for the k8s_rollout_status tool.
{ name: "k8s_rollout_status", description: "Check the rollout status of a deployment", inputSchema: { type: "object" as const, properties: { name: { type: "string", description: "Deployment name" }, namespace: { type: "string", description: "Kubernetes namespace (default: 'default')" }, }, required: ["name"], }, }, - src/tools/kubernetes/index.ts:204-204 (registration)Registration of the k8s_rollout_status tool handler in the switch statement.
case "k8s_rollout_status": return rolloutStatus(a);