debug-pod
Create a debug container in a Kubernetes pod to diagnose issues and troubleshoot problems within the pod's environment.
Instructions
Create a debug container in a pod
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pod | Yes | The name of the pod to debug | |
| namespace | No | The namespace of the pod (optional, defaults to current context namespace) | |
| image | No | The debug container image to use (optional, defaults to busybox) |
Implementation Reference
- server.js:1864-1875 (handler)Handler for the 'debug-pod' tool. It destructures arguments, constructs a kubectl debug command with optional namespace and image, executes it using execAsync, and returns the stdout or a success message.case "debug-pod": { const { pod, namespace, image = "busybox" } = args; const nsArg = namespace ? `-n ${namespace}` : ""; const cmd = `kubectl debug ${pod} ${nsArg} --image=${image} --share-processes --copy-to=${pod}-debug`; const { stdout } = await execAsync(cmd); return { content: [{ type: "text", text: stdout || `Debug pod created for ${pod}` }] }; }
- server.js:725-746 (schema)Input schema definition for the 'debug-pod' tool, specifying parameters: pod (required string), namespace (optional string), image (optional string with default busybox).{ name: "debug-pod", description: "Create a debug container in a pod", inputSchema: { type: "object", properties: { pod: { type: "string", description: "The name of the pod to debug" }, namespace: { type: "string", description: "The namespace of the pod (optional, defaults to current context namespace)" }, image: { type: "string", description: "The debug container image to use (optional, defaults to busybox)" } }, required: ["pod"] } },
- server.js:1392-1394 (registration)Registration of the tool list handler which returns the array containing the 'debug-pod' tool definition when ListToolsRequest is called.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools }; });
- server.js:7-7 (helper)Helper function execAsync used by all tool handlers, including 'debug-pod', to execute kubectl commands asynchronously.const execAsync = promisify(exec);