Making CRDs Delightful: Beyond the Pitfalls
Talkat KubeCon + CloudNativeCon Europe 2025 · on Wednesday, 2025-04-02· at 16:15· Level 0 | ICC Capital Hall | Room J·
summary
Ten practical rules for authoring CRDs with concrete examples: use status for humans and machines (include enums, human descriptions, and resource references); prefer positive-condition polarity so Ready/Succeeded summarize health; emit events for state changes only; add additionalPrinterColumns, short names, and categories so kubectl is useful; prefer embedding Kubernetes types, make zero values meaningful, set ownerReferences, and design CRDs to be GitOps-friendly; for large fleets use a two‑lane reconciler to avoid API rate limits.
AI-written summary · about
chapters (17)
- 0:00CRD UX challenges
- 1:03Custom resource UX in Kubernetes
- 3:14Status fields in CRDs
- 7:30Kubernetes events for observability
- 9:18Simplified permissions with roles
- 10:47Standardized conditions for UX
- 13:36Enhancing kubectl output
- 15:21Aggregated objects for clarity
- 17:31Reusing Kubernetes types
- 19:15Zero values for defaults
- 21:02Idempotency in GitOps
- 22:45Labels and annotations for interaction
- 24:52CRD controller checklist
- 27:00Zero values and defaults
- 29:16Managing conditions with libraries
- 31:24Rate limits in operators
- 34:20Q&A
related talks
26mTroubleshooting Kubernetes CRDs is too damn hard
36mDesign Conventions You Need to Know When Extending Kubernetes with CRDs
19mKeynote: CRDs, No Longer 2nd Class Thing!
34mExtending Kubernetes 101
47mContent Addressable CRDs: Type Uniqueness Across Kubernetes Clusters
36mThe future of CRDs in a post-cluster world
01h 27mTutorial: How To Write a Reconciler Using K8s Controller-Runtime!
35mStop being a YAML engineer, be a software engr. with CDK8s
