~/talk

Writing controllers in rust

Talkat DevConf.CZ 2025 · 2025-06-12..06-14· [kubernetes, rust]
links:none on file
slides:none on file

Compares Go tooling (controller-runtime, kubebuilder) with a Rust stack centered on Qass and async runtimes, showing concrete tradeoffs: uses Qass + tokio + tracing for async controllers, derives CRDs from upstream OpenAPI, and wires traits/macros for type-safe CRs; observed about 10× less memory for equivalent controllers; client behavior differs (direct non-cached API calls vs cached watches), so caching semantics need attention; ships a working CLI/operator (cast-gather plus a GitOps controller) that records/replays cluster state and runs successfully in CI.

AI-written summary · about

  1. 0:00Writing controllers in Rust
  2. 1:04Qass library and Rust ecosystem
  3. 2:56Rust vs controller runtime example
  4. 5:49Client config and API types in Rust
  5. 7:57Error handling: Rust vs Go
  6. 10:49Performance vs Go
  7. 12:53Caching impact on controllers
  8. 15:20Controller setup and reconciliation
  9. 18:51Custom resources in Rust
  10. 21:21CRD challenges in Go
  11. 22:27Structured config maps in Rust
  12. 24:16Generating Rust types from CRDs
  13. 25:40Lessons and limitations in Rust
  14. 26:51Validation and schema in controllers
  15. 28:36Rust CLI for cluster diagnostics
  16. 31:49Debugging Rust controllers with kubetest
  17. 33:17Demo: Rust controller for Cluster API
  18. 34:43Generating CRDs in Rust
  19. 35:05Testing frameworks in Rust
  20. 35:47Conclusion and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.