Skip to main content
Glama

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
NameRequiredDescriptionDefault
nameYesDeployment name
namespaceNoKubernetes 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"],
      },
    },
  • Registration of the k8s_rollout_status tool handler in the switch statement.
    case "k8s_rollout_status": return rolloutStatus(a);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/batu-sonmez/infraclaude'

If you have feedback or need assistance with the MCP directory API, please join our Discord server