Kubernetes Operator
End-to-end discipline for building Kubernetes Operators correctly. Catches the recurring reconcile-loop bugs (missing finalizers, blocking calls, status drift, RBAC over-grants, no requeue) before they reach a cluster.
What's inside
- 3 stdlib Python tools — CRD validator, reconcile-loop linter, OperatorHub capability auditor
- 4 reference docs — operator pattern, CRD design, reconcile patterns, framework comparison
- Asset templates — production CRD YAML + Go controller skeleton (both pass the linters)
/operator-auditslash command — runs all 3 tools and produces a report
Install
# Via Claude Code marketplace
/plugin install kubernetes-operator
# Or clone the repo
git clone https://github.com/alirezarezvani/claude-skills.git
cd claude-skills/engineering/kubernetes-operator
Quick start
SKILL=engineering/kubernetes-operator/skills/kubernetes-operator
python "$SKILL/scripts/crd_validator.py" --crd config/crd/myapp.yaml
python "$SKILL/scripts/reconcile_lint.py" --controller controllers/myapp_controller.go
python "$SKILL/scripts/operator_capability_audit.py" --operator-dir .
Scope
This is the Operator pattern specifically. For other Kubernetes work:
- Helm chart authoring →
helm-chart-builder - Kubectl operations / blue-green deploys →
senior-devops - General k8s security →
cloud-security - Cloud architecture →
aws-solution-architect,azure-cloud-architect,gcp-cloud-architect
Key principles
- Reconcile is idempotent, declarative, and bounded in time
- Status subresource is non-negotiable — without it, status updates loop spec reconciles
- Finalizers protect external resources — cascade deletion is the operator pattern's free gift, but only for owned k8s resources
- RBAC is least-privilege — controllers shouldn't read secrets they don't need
- Capability levels are an SLA, not a label — aim for L3 (Full Lifecycle) before public release
Skill structure
kubernetes-operator/
├── README.md
├── .claude-plugin/plugin.json
└── skills/kubernetes-operator/
├── SKILL.md
├── scripts/
│ ├── crd_validator.py
│ ├── reconcile_lint.py
│ └── operator_capability_audit.py
├── references/
│ ├── operator_pattern.md
│ ├── crd_design.md
│ ├── reconcile_loop.md
│ └── tooling_landscape.md
└── assets/
├── crd_template.yaml
└── reconcile_skeleton.go
Verifiable success
A team using this skill should achieve:
- 100% of new CRDs pass
crd_validator.pybefore merge - All reconcile functions pass
reconcile_lint.pystrict mode - Operators reach OperatorHub Capability Level 3 before public release
- Mean time to fix a reconcile bug: <1 day (no infinite loops in production)
License
MIT — see repo root LICENSE.