- Home
- Skills
- Williamzujkowski
- Standards
- Advanced Kubernetes
advanced-kubernetes_skill
- Python
13
GitHub Stars
2
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill williamzujkowski/standards --skill advanced-kubernetes- REFERENCE.md28.0 KB
- SKILL.md19.6 KB
Overview
This skill provides a compact, practical reference and implementation guide for building Kubernetes Operators and CRDs. It condenses core patterns—CRD design, reconciliation loops, webhooks, leader election, testing, and deployment—into actionable checklists and commands. Use it to bootstrap production-ready operators with best practices and common pitfalls highlighted.
How this skill works
The skill inspects and documents the operator development lifecycle: CRD schema design, controller reconciliation logic, admission webhook patterns, leader election configuration, and test harnesses. It explains what to validate in OpenAPI schemas, how reconciles should fetch resources, handle finalizers, and update status, and how to run envtest and kind for unit and integration tests. It also maps common commands and project layout to real-world build and deploy steps.
When to use it
- Managing complex stateful applications (databases, message queues)
- Automating operational tasks like backups, upgrades, and scaling
- Integrating Kubernetes with external systems or cloud APIs
- Enforcing organization-wide policies via declarative objects
- Not for simple one-off deployments or basic configuration (use Helm or plain manifests)
Best practices
- Design CRDs with clear Spec/Status separation and OpenAPI validation
- Make reconciliation idempotent; prefer controllerutil.CreateOrUpdate
- Use finalizers for external resource cleanup and owner references for garbage collection
- Implement status conditions: Ready, Progressing, Degraded with messages
- Avoid blocking work in reconcile handlers; offload long tasks to background workers
Example use cases
- Operator to manage database clusters with automated backups and restores
- Custom ML workflow CRD that provisions jobs, tracks progress, and stores metrics
- Controller that integrates with external SaaS APIs to maintain desired cloud resources
- Policy operator that enforces security and cost controls across namespaces
- GitOps-style reconciler that tracks Git commits and remediates drift
FAQ
kubebuilder (v3+), Go 1.21+, controller-gen, kustomize, and a container builder (Docker/Podman). A running Kubernetes cluster or kind is needed for integration testing.
How should I handle long-running external tasks from reconcile?
Avoid blocking the reconcile loop. Start background workers or Jobs, record progress in Status, and requeue based on status or events. Use finalizers to ensure cleanup on deletion.