/k8s-yaml-generator
Generate/create/scaffold Kubernetes YAML — Deployment, Service, ConfigMap, Ingress, RBAC, StatefulSet, CRDs.
$ npx -y skills add akin-ozer/cc-devops-skills --skill k8s-yaml-generator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/k8s-yaml-generator
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate/create/scaffold Kubernetes YAML — Deployment, Service, ConfigMap, Ingress, RBAC, StatefulSet, CRDs.
SKILL.md
k8s-yaml-generator.SKILL.mdname: k8s-yaml-generator
description: Generate/create/scaffold Kubernetes YAML — Deployment, Service, ConfigMap, Ingress, RBAC, StatefulSet, CRDs.
Kubernetes YAML Generator
Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output.
Trigger Guidance
Use this skill when the user asks to create or update Kubernetes YAML, for example:
- "Generate a Deployment + Service manifest for my app."
- "Create an Argo CD Application CRD."
- "Write a StatefulSet with PVC templates."
- "Produce production-ready Kubernetes YAML with best practices."
Do not use this skill for validation-only requests. For validation-only work, use `k8s-yaml-validator`.
Execution Model
Normative keywords:
- `MUST`: required
- `SHOULD`: default unless user requests otherwise
- `MAY`: optional
Deterministic sequence:
1. Preflight request and path/rendering sanity. 2. Capture minimum required inputs. 3. Resolve CRD references (bounded workflow only when CRD/custom API is involved). 4. Generate YAML with baseline quality checks. 5. Run mandatory validation (or documented fallback path when tooling is unavailable). 6. Deliver YAML plus explicit validation report and assumptions.
If one step is blocked by environment constraints, execute that step's fallback and continue.
1) Preflight
Before generation:
- Confirm whether output is full manifest(s) or snippet-only.
- Confirm target Kubernetes version when provided.
- Verify any referenced local file path exists before using it.
- Normalize resource naming to DNS-1123-compatible names where applicable.
Preflight stop condition:
- If required core inputs are missing (resource type, workload image for Pod-based resources, or CRD kind/apiVersion), ask for those first.
2) Capture Required Inputs
Collect:
- Resource types (`Deployment`, `Service`, `ConfigMap`, CRD kind, etc.)
- `apiVersion` + `kind`
- Namespace/scoping requirements
- Ports, replicas, images, probes, storage, and secret/config needs
- Environment assumptions (dev/staging/prod)
- For CRDs: project name and target CRD version if known
Safe defaults (state explicitly in output):
- Namespace: `default` (namespace-scoped resources)
- Deployment replicas: `2`
- Service type: `ClusterIP`
- Image pull policy: `IfNotPresent` (unless user needs forced pulls)
3) CRD Lookup Workflow (Bounded)
Run this step only for custom APIs outside Kubernetes built-in groups.
3.1 Identify CRD target
Extract:
- API group, version, kind (for example `argoproj.io/v1alpha1`, `Application`)
- Requested product/version (for example Argo CD `v2.9.x`)
3.2 Context7 primary path
Use the correct Context7 tools and payloads:
1. `mcp__context7__resolve-library-id` 2. `mcp__context7__query-docs`
Sample payloads:
Tool: mcp__context7__resolve-library-id
libraryName: "argo-cd"
query: "Find Argo CD documentation for Application CRD schema compatibility"
Tool: mcp__context7__query-docs
libraryId: "/argoproj/argo-cd/v2.9.0"
query: "Application CRD required spec fields for apiVersion argoproj.io/v1alpha1 with minimal valid example"
Selection rules:
- Prefer exact project/library name matches.
- Prefer versioned `libraryId` when user specifies a version.
- Otherwise use unversioned ID and note version uncertainty.
3.3 Thresholds and stop conditions
Bound the lookup to prevent unbounded retries:
- `resolve-library-id`: max 2 attempts (primary name + one alternate name).
- `query-docs`: max 3 focused queries total.
- Web fallback: max 2 version-specific searches.
Stop early when all are true:
- Required CRD fields are identified.
- At least one authoritative example is found.
- Version compatibility is known or explicitly marked unknown.
Hard stop when budgets are exhausted:
- Generate only fields verified by sources.
- Mark remaining fields as `Needs confirmation`.
- Report residual risk and request one of:
- exact CRD docs URL, or
- cluster introspection output (for example `kubectl explain <kind>.spec` when available).
3.4 Fallback order
Use this order:
1. Context7 (`resolve-library-id` -> `query-docs`) 2. Official project docs via web search 3. Cluster-local introspection (`kubectl explain`, if cluster access exists)
If none are available, provide a minimal, clearly marked draft and do not claim full CRD correctness.
4) YAML Generation Rules
Apply these checks:
- Use explicit, non-deprecated API versions.
- Include consistent labels (`app.kubernetes.io/*`) across related resources.
- Include namespace for namespace-scoped resources.
- Add resource requests/limits for Pod workloads unless user opts out.
- Add readiness/liveness probes for long-running services where applicable.
- Use `securityContext` to avoid root execution by default.
- Keep multi-resource ordering dependency-safe (for example ConfigMap before Deployment consumers).
Minimal label baseline:
labels:
app.kubernetes.io/name: myapp
app.kubernetes.io/instance: myapp-prod
app.kubernetes.io/part-of: myplatform
app.kubernetes.io/managed-by: codex
5) Mandatory Validation and Contingencies
For full manifest generation, validation is mandatory.
Primary path:
- Invoke `k8s-yaml-validator`.
- Iterate fix -> revalidate until blocking issues are gone.
Required reporting after each validation pass:
- `Validation mode`: `k8s-yaml-validator` | `script fallback` | `manual fallback`
- `Syntax`: pass/fail
- `Schema`: pass/fail/partial
- `CRD check`: pass/fail/partial
- `Dry-run`: server/client/skipped
- `Blocking issues remaining`: yes/no
Contingency A: validator skill unavailable
Run direct commands:
bash devops-skills-plugin/skills/k8s-yaml-validator/scripts/setup_tools.sh
yamllint -c devops-skills-plugin/skills/k8s-yaml-validator/assets/.yamllint <file.yaml>
kubeconform -schema-location default -strict -ignore-missing-schemas -summary <file.yaml>
server_out="$(mktemp)"
client_out="$(mkte
Read more
name: k8s-yaml-generator description: Generate/create/scaffold Kubernetes YAML — Deployment, Service, ConfigMap, Ingress, RBAC, StatefulSet, CRDs.
Kubernetes YAML Generator
Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output.
Trigger Guidance
Use this skill when the user asks to create or update Kubernetes YAML, for example:
- "Generate a Deployment + Service manifest for my app."
- "Create an Argo CD Application CRD."
- "Write a StatefulSet with PVC templates."
- "Produce production-ready Kubernetes YAML with best practices."
Do not use this skill for validation-only requests. For validation-only work, use `k8s-yaml-validator`.
Execution Model
Normative keywords:
- `MUST`: required
- `SHOULD`: default unless user requests otherwise
- `MAY`: optional
Deterministic sequence:
1. Preflight request and path/rendering sanity. 2. Capture minimum required inputs. 3. Resolve CRD references (bounded workflow only when CRD/custom API is involved). 4. Generate YAML with baseline quality checks. 5. Run mandatory validation (or documented fallback path when tooling is unavailable). 6. Deliver YAML plus explicit validation report and assumptions.
If one step is blocked by environment constraints, execute that step's fallback and continue.
1) Preflight
Before generation:
- Confirm whether output is full manifest(s) or snippet-only.
- Confirm target Kubernetes version when provided.
- Verify any referenced local file path exists before using it.
- Normalize resource naming to DNS-1123-compatible names where applicable.
Preflight stop condition:
- If required core inputs are missing (resource type, workload image for Pod-based resources, or CRD kind/apiVersion), ask for those first.
2) Capture Required Inputs
Collect:
- Resource types (`Deployment`, `Service`, `ConfigMap`, CRD kind, etc.)
- `apiVersion` + `kind`
- Namespace/scoping requirements
- Ports, replicas, images, probes, storage, and secret/config needs
- Environment assumptions (dev/staging/prod)
- For CRDs: project name and target CRD version if known
Safe defaults (state explicitly in output):
- Namespace: `default` (namespace-scoped resources)
- Deployment replicas: `2`
- Service type: `ClusterIP`
- Image pull policy: `IfNotPresent` (unless user needs forced pulls)
3) CRD Lookup Workflow (Bounded)
Run this step only for custom APIs outside Kubernetes built-in groups.
3.1 Identify CRD target
Extract:
- API group, version, kind (for example `argoproj.io/v1alpha1`, `Application`)
- Requested product/version (for example Argo CD `v2.9.x`)
3.2 Context7 primary path
Use the correct Context7 tools and payloads:
1. `mcp__context7__resolve-library-id` 2. `mcp__context7__query-docs`
Sample payloads:
Tool: mcp__context7__resolve-library-id libraryName: "argo-cd" query: "Find Argo CD documentation for Application CRD schema compatibility"
Tool: mcp__context7__query-docs libraryId: "/argoproj/argo-cd/v2.9.0" query: "Application CRD required spec fields for apiVersion argoproj.io/v1alpha1 with minimal valid example"
Selection rules:
- Prefer exact project/library name matches.
- Prefer versioned `libraryId` when user specifies a version.
- Otherwise use unversioned ID and note version uncertainty.
3.3 Thresholds and stop conditions
Bound the lookup to prevent unbounded retries:
- `resolve-library-id`: max 2 attempts (primary name + one alternate name).
- `query-docs`: max 3 focused queries total.
- Web fallback: max 2 version-specific searches.
Stop early when all are true:
- Required CRD fields are identified.
- At least one authoritative example is found.
- Version compatibility is known or explicitly marked unknown.
Hard stop when budgets are exhausted:
- Generate only fields verified by sources.
- Mark remaining fields as `Needs confirmation`.
- Report residual risk and request one of:
- exact CRD docs URL, or
- cluster introspection output (for example `kubectl explain <kind>.spec` when available).
3.4 Fallback order
Use this order:
1. Context7 (`resolve-library-id` -> `query-docs`) 2. Official project docs via web search 3. Cluster-local introspection (`kubectl explain`, if cluster access exists)
If none are available, provide a minimal, clearly marked draft and do not claim full CRD correctness.
4) YAML Generation Rules
Apply these checks:
- Use explicit, non-deprecated API versions.
- Include consistent labels (`app.kubernetes.io/*`) across related resources.
- Include namespace for namespace-scoped resources.
- Add resource requests/limits for Pod workloads unless user opts out.
- Add readiness/liveness probes for long-running services where applicable.
- Use `securityContext` to avoid root execution by default.
- Keep multi-resource ordering dependency-safe (for example ConfigMap before Deployment consumers).
Minimal label baseline:
labels: app.kubernetes.io/name: myapp app.kubernetes.io/instance: myapp-prod app.kubernetes.io/part-of: myplatform app.kubernetes.io/managed-by: codex
5) Mandatory Validation and Contingencies
For full manifest generation, validation is mandatory.
Primary path:
- Invoke `k8s-yaml-validator`.
- Iterate fix -> revalidate until blocking issues are gone.
Required reporting after each validation pass:
- `Validation mode`: `k8s-yaml-validator` | `script fallback` | `manual fallback`
- `Syntax`: pass/fail
- `Schema`: pass/fail/partial
- `CRD check`: pass/fail/partial
- `Dry-run`: server/client/skipped
- `Blocking issues remaining`: yes/no
Contingency A: validator skill unavailable
Run direct commands:
bash devops-skills-plugin/skills/k8s-yaml-validator/scripts/setup_tools.sh yamllint -c devops-skills-plugin/skills/k8s-yaml-validator/assets/.yamllint <file.yaml> kubeconform -schema-location default -strict -ignore-missing-schemas -summary <file.yaml> server_out="$(mktemp)" client_out="$(mkte
A practical skill pack for DevOps work in Claude Code and Codex desktop. This repository ships 31 skills: 16 generators for scaffolding production-ready configs 14 validators for linting, security checks, and dry-run validation 1 debugger (k8s-debug) for
Repo: akin-ozer/cc-devops-skills
Other skills on cc-devops-skills.
- /ansible-generator
Generate, create, or scaffold Ansible playbooks, roles, tasks, handlers, inventory, vars.
Open skill - /ansible-validator
Validate, lint, audit, or debug Ansible playbooks, roles, inventories, FQCN, tasks.
Open skill - /azure-pipelines-generator
Generate/create/scaffold azure-pipelines.yml, stages, jobs, steps, or reusable templates.
Open skill - /azure-pipelines-validator
Validate, lint, audit, or review azure-pipelines.yml — syntax, security, best practices.
Open skill - /bash-script-generator
Create, generate, write, or scaffold bash/shell scripts (.sh), automation, or CLI tools.
Open skill - /bash-script-validator
Validate, lint, audit, or fix bash/shell/.sh scripts via ShellCheck.
Open skill

