Kubernetes manifest
Write production-ready Kubernetes manifests (Deployment, Service, probes, resources, security). Use when the user asks to write or review K8s YAML, deploy to Kubernetes, or fix a manifest.From its SKILL.md
npx -y skills add minagayid/Agents --skill kubernetes-manifestAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.1 KB, as published. Nobody here has run it
Kubernetes Manifest
Write manifests that are safe, observable, and production-ready.
Essentials for a Deployment
- Resource requests & limits on every container (CPU/memory) — required for scheduling and stability.
- Liveness, readiness, and startup probes — don't route traffic before ready; restart when wedged.
- Security context —
runAsNonRoot, drop capabilities,readOnlyRootFilesystem, no privilege escalation. - Config & secrets via
ConfigMap/Secret(or a secrets manager) — never bake into the image. - Labels (
app.kubernetes.io/*) and a matchingServiceselector. - Rollout strategy (
RollingUpdatewith sanemaxUnavailable/maxSurge) and replica count. - Pod disruption budget + anti-affinity for HA workloads;
HorizontalPodAutoscalerif load varies. - Pin image tags to digests or immutable versions (never
:latestin prod).
Skeleton
apiVersion: apps/v1
kind: Deployment
metadata: { name: web, labels: { app.kubernetes.io/name: web } }
spec:
replicas: 3
selector: { matchLabels: { app.kubernetes.io/name: web } }
template:
metadata: { labels: { app.kubernetes.io/name: web } }
spec:
securityContext: { runAsNonRoot: true }
containers:
- name: web
image: registry/web:1.4.0
ports: [{ containerPort: 8080 }]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
readinessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 5 }
livenessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 10 }
Guidelines
- Validate with
kubectl apply --dry-run=server/kubeconform; lint withkube-linter. - Keep environment differences in overlays (Kustomize) or values (Helm), not copy-pasted YAML.