Rage Against the API-Machinery: Writing an Operator for Production
summary
Production operators come from real choices: Kanister and K10 implement the operator pattern and use Go frameworks with code generation, client-go/controller-runtime, ginkgo tests and fake clients; bootstrap options tested include kubebuilder and operator-sdk plus meta-controller; recommend RBAC with least privilege, emit Kubernetes events, and use Deployments/StatefulSets rather than managing pods. Watch for CRD lifecycle and validation gaps: Kubernetes 1.11 adds CRD multi-version in Kubernetes 1.11 but conversion is naive, admission webhooks handle deeper checks, and large apps like Istio create 55 CRDs which slow kubectl list.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 1:07The Rule of Thumb
- 1:25Agenda
- 1:48What is a Printer
- 2:19What is a Controller
- 2:43Operator Design Pattern
- 3:22Custom Resources
- 4:15Examples
- 4:47API Conventions
- 6:00Operator Kits
- 6:53New School Frameworks
- 8:30Bootstrapping
- 9:38Clients
- 11:22No Changes
- 12:30Cogeneration
- 13:38Eventing
- 14:22API Objects
- 14:44Ginkgo
- 16:09Fake Lines
- 18:24Validation
- 19:37Managing Operators
- 21:38Custom Resource Versioning
- 23:16Questions
related talks
43mLessons learned writing 10+ Kubernetes Operators
24mKubernetes Operators with Go
45mKubernetes Operators: Operating Cloud Native services at scale
31mKubernetes Operators within Reach of Any Developer
36mLessons learned writing 10+ Kubernetes Operators - Lars Francke and Jannik Heyl
36mEssential Patterns For Designing And Implementing Your Operator
39mWriting a Kubernetes/Openshift Operators Using Golang
23mStop Writing Operators
