Skip to main content
Glama

generate_k8s_manifest

Generate linted Kubernetes YAML manifests for Deployments, Services, HPAs, and PDBs with non-root security contexts, health probes, and resource requests/limits.

Instructions

Generate production-hardened, linted Kubernetes YAML manifests (Deployment, Service, HPA, PDB) with non-root securityContext, probes, and resource requests/limits.

Input Schema

NameRequiredDescriptionDefault
kindNoManifest type: "Deployment", "Service", "HPA", "PDB", or "all" (default: "all")
nameYesWorkload or application name (e.g. "api-gateway")
portNoContainer port (default: 8080)
imageYesContainer image (e.g. "nginx:alpine" or "myorg/api:v1.2.0")
replicasNoInitial replica count (default: 3)
namespaceNoKubernetes namespace (default: "production")
enable_hpaNoIncludes paired HorizontalPodAutoscaler manifest (default: true)
cpu_requestNoCPU request (default: "100m")
memory_limitNoMemory limit (default: "256Mi")
enable_security_contextNoEnforces runAsNonRoot: true, drops ALL capabilities, read-only root filesystem (default: true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden. It does add real behavioral detail beyond the schema — output is "linted" and "production-hardened" with non-root securityContext, probes, and resource bounds always applied — but it never says whether anything is written to disk or applied to a live cluster, whether generation is idempotent, or what the response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence, front-loaded with the action and resource, with zero filler. Every clause (manifest kinds, security hardening, probes, resource limits) contributes signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter generation tool with no annotations and no output schema, the description leaves the return contract undefined: does it return YAML text inline, multiple documents when `kind: "all"`, or file paths? It also omits whether any cluster interaction occurs. Parameter-level gaps are covered by the schema, but the output/behavioral side is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 10 parameters are already documented with defaults and an enum. The description's mention of the four manifest kinds and the hardening defaults loosely reinforces `kind` and `enable_security_context`, but adds no syntax or format meaning beyond the schema — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Generate") + resource ("Kubernetes YAML manifests") and enumerates the artifact types produced (Deployment, Service, HPA, PDB) plus the qualities baked in (securityContext, probes, requests/limits, linted). No sibling in the list produces manifests, so the tool's identity is unmistakable without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus alternatives, no prerequisites, and no note about what it is not (e.g., it does not apply to a cluster or edit existing manifests). An agent must infer usage entirely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.