Beyond Reconcile Loop - Patterns for Kubernetes Operator Development
summary
Three concrete tricks: use Tilt for near–production live-reload during operator development; keep YAML templates compiled into the binary via go:embed (or string-templates) so owned resources are easy to render and controllerReferences set before persisting; prefer server-side apply and field ownership for patches; and implement a deterministic state-machine pattern where status.phase drives single-path transitions, avoid status-change-triggered reconciles, split logic into testable services, and add deliberate retry/delay transitions.
AI-written summary · about
chapters (9)
- 0:00Introduction to Kubernetes operators
- 1:10What are Kubernetes operators
- 3:40Operator frameworks and best practices
- 9:46Speaker background and journey
- 13:18Bronze nugget: Using Tilt for development
- 16:49Silver nugget: Templating owned resources
- 24:37Gold nugget: State machine pattern
- 31:45Benefits of state machine pattern
- 32:26Q&A on customizing and debugging
related talks
19mHow to build an operator that doesn't break prod
24mKubernetes Operators with Go
31mIt's all about reconciliation - anatomy of a kubernetes controller
32mMinimalist Best Practices in Kubernetes Operators
34mWriting a Kubernetes Operator: the Hard Parts
46mWhy build resource-hungry software: principles of the reconciliation loop (hello, K8s!)
46mOperators Live in the Past: Designing Reliable Kubernetes Controllers
32mTestable Kubernetes Operators
