Keep the Space Shuttle Flying: Writing Robust Operators
summary
Practical war stories from building operators that manage cloud resources (Rook, Crossplane) and the exact tactics used: prefer Requeue vs RequeueAfter to avoid exponential backoff when polling external APIs, record external operation IDs in status to track async creates/updates, use conditions not phases with careful lastTransitionTime updates, always use finalizers for external deletion, avoid blocking reconcile loops by spawning background goroutines, and unit-test the reconcile function instead of relying on full integration harnesses.
AI-written summary · about
chapters (12)
- 0:00Start
- 3:52Frameworks
- 6:38Operator Anatomy
- 7:48External Resource Controller
- 8:22External vs. Internal CRUD
- 13:01Reconcile Patterns - Requeue
- 14:39Reconciler Patterns - Conditions
- 16:13Reconcile Patterns - Concurrency
- 17:52Reconcile Patterns - Status
- 19:45Reconcile Patterns - Garbage Collection
- 24:14Reconcile Patterns - Issues
- 29:10References
related talks
19mHow to build an operator that doesn't break prod
46mOperators Live in the Past: Designing Reliable Kubernetes Controllers
35mBeyond Reconcile Loop - Patterns for Kubernetes Operator Development
29mRage Against the API-Machinery: Writing an Operator for Production
24mKubernetes Operators with Go
32mMinimalist Best Practices in Kubernetes Operators
36mLessons learned writing 10+ Kubernetes Operators - Lars Francke and Jannik Heyl
31mBeing Creative: Tales from the Trenches
