Skill · kubernetes/workload-hardening · v1.0.0 · MIT
Kubernetes Workload Hardening
Production Kubernetes 1.34-1.37 workloads that pass Pod Security restricted, really start, shut down cleanly and survive drains.
Teaches an agent to write and fix Deployment, StatefulSet, Job and CronJob manifests as Kubernetes works in late 2026 (1.37): the Pod Security Standards restricted profile control by control on every init, sidecar and ephemeral container, seccompProfile instead of the removed annotations, the kubelet's runAsNonRoot check that rejects images whose USER is a name or unset, read-only root filesystems with emptyDir scratch space, probes that do not cascade, preStop delays that work in distroless images (the sleep action, GA 1.34) with grace periods that cover them, PodDisruptionBudgets that let drains finish (maxUnavailable and unhealthyPodEvictionPolicy, GA 1.31), HPA autoscaling/v2 with requests on every container, topology spread, native sidecars for Jobs (GA 1.33) and the API versions 1.37 no longer serves. Rules were ported from the v1.37.2 source and reproduced on a 1.37 cluster.
- DevOps
- Security
- Platform engineering
- Cloud
- build
- secure
- ship
- operate
- kubernetes
- docker
uplift
No runs exist for this digest.
Not measured for this digest.
Untested is not the same as useless: nobody has measured it yet. Proof comes from A/B runs on hidden tests:
npx sigil prove catalog/skills/kubernetes/workload-hardening --suite <suite> --runs 6trust level · submitted
- in the catalog: met
- structure check: not met
- static scan, no high findings: not met
- canary sandbox passed: not met
- maintainer approved: not met
canary sandbox
Not run for this digest.
static scan
Not run for this digest.
compatibility · targeted, compiled and evaluated are separate claims
| agent | targeted by author | compiled | evaluated in the lab | notes |
|---|---|---|---|---|
| Claude Code | targeted: yes | no record for compiled | no record for evaluated | |
| Codex | targeted: yes | no record for compiled | no record for evaluated | |
| Cursor | targeted: yes | no record for compiled | no record for evaluated | |
| GitHub Copilot | targeted: yes | no record for compiled | no record for evaluated | |
| Gemini CLI | targeted: yes | no record for compiled | no record for evaluated | |
| OpenCode | targeted: yes | no record for compiled | no record for evaluated |
declared permissions
- network
- none
- shell
- kubectl, kubeconform, docker image inspect
- filesystem
- write
- env
- none
Undeclared access is a finding in the scan and a tripwire in the canary.
source
- path
- catalog/skills/kubernetes/workload-hardening
- authors
- dgesteves
- entry
- SKILL.md (agent-skill)
- registry
- 2026-11-02 · 5cb851d
install
$ npx sigil add kubernetes/workload-hardening --agent claude-codeNo compile record for Claude Code on this digest. Install never runs capability scripts, and refuses on any digest mismatch.
known limitations
- Written for upstream Kubernetes 1.34 to 1.37 as of November 2026. Managed platforms can add admission policies (GKE Autopilot, OpenShift SCCs, Kyverno or Gatekeeper rules) that are stricter than Pod Security Admission.
- Plain manifests only. Helm charts and Kustomize overlays are covered only through the YAML they render.
- The kubelet runAsNonRoot and preStop behaviour was measured with containerd (k3s v1.37.1); CRI-O and Windows nodes were not tested.
- Endpoint propagation delays depend on the ingress controller, kube-proxy mode and cloud load balancer; the skill gives the budget arithmetic, not the right number for a given cluster.
- The proof suite measures Pod Security restricted plus image users, PDB and HPA behaviour, and shutdown in a distroless image. Topology spread, probes and Job sidecars are taught but not scored.