Tutorial: Mastering Multi-version CRDs: From YAML to a Serious Development Project
Talkat KubeCon + CloudNativeCon North America 2019 · on Thursday, 2019-11-21· at 16:25· Room 29ABCD - San Diego Convention Center, Upper Level·
summary
Starts from a YAML-only CRD and converts it into a multi-version, production-grade API using codegen and webhooks. Uses controller-gen to emit OpenAPI schemas, enables pruning and v1 defaulting, builds a secure conversion webhook (and a validating admission webhook) and a simulator plus controllers deployed to GKE/kind. Tests use Go fuzzer round-trip checks (fixed a nil vs empty-slice bug) with 1000+ round-trip tests to prove conversions are lossless. Requires Kubernetes 1.15/1.16 features.
AI-written summary · about
chapters (26)
- 0:00Intro
- 3:22Getting Started
- 9:17Advanced Features
- 14:52Example
- 15:17Pressure
- 16:41Custom Resources
- 17:53Multiple Versions
- 19:04Simulator UI
- 19:27Looking at the Code
- 21:49Running the Commands
- 22:38Running the Simulator
- 23:46Pressure Changes
- 24:19Cluster Setup
- 26:34Device CID
- 27:18Open API
- 34:39Pruning
- 35:16Missing fields
- 38:44Naming
- 46:47Debugging
- 49:32Multiversion
- 51:22Type
- 52:10Convert
- 55:00Queue Cutter
- 57:49Conversion Go
- 58:23Conversion Function
- 59:49Testing
related talks
17mUnraveling the Mystery of Versioning CRDs
19mKeynote: CRDs, No Longer 2nd Class Thing!
28mKubernetes CRD Design for the Long Haul: Tips, Tricks, and Lessons Learned
34mExtending Kubernetes 101
36mOpenAPI Specs – Towards Native User Experience of CRDs
19mKeynote: CRDs, No Longer 2nd Class Thing!
30mAPI Evolution With CRDs: Best Practices For Authoring & Fuzz Testing APIs
29mKubernetes Reloaded: AKA How to Avoid the Dev Plateau with CRDs
