Controllers: Lambda Functions for Extending your Infrastructure
summary
Demonstrates a concrete controller pattern: define a CRD + codegen, hook up informers + listers to maintain a cached view, enqueue keys into a workqueue with rate‑limiting, and run idempotent worker goroutines that reconcile parent and child resources. Uses ownerReferences to requeue parents when children change, uses finalizers when deletion must be witnessed, and prefers letting the queue retry on errors rather than complex error handling. Shows Cloudflare’s Leifer as a working bare‑metal load‑balancer integration.
AI-written summary · about
chapters (13)
- 0:00Start
- 3:19Example Problem
- 3:584 Steps to Writing a Controller
- 4:17Creating a Custom Resource for Users
- 4:43Generating Client Code
- 5:13Installing the Generator
- 7:57Work Queues
- 8:49What goes on the queue?
- 14:42Worker go routine
- 19:31Don't handle Transient Errors
- 20:40Handling Deletion
- 21:20Don't Handle the OnDelete Differently
- 22:00No? Use Kubernetes Garbage Collection
related talks
31mIt's all about reconciliation - anatomy of a kubernetes controller
27mDemystifying Why the World Is Built on Kubernetes: Learning To Leverage Bespoke CRDs and Controllers
24mWriting kube controllers for everyone
38mTo Crd, or Not to Crd, That is the Question
29mKubernetes Custom Resources with Kubeless and Metacontroller
35mDynamic Multi-Cluster Controllers With Controller-runtime
31mBeyond the Limits: Scaling Kubernetes Controllers Horizontally
31mKubernetes is Your Platform: Design Patterns For Extens...
