The Wire · Showcase
OPERATOR SDK 13.0 BREAKS CONTROLLER ARCHITECTURE, ANDROID TESTS GO LOCAL
By RepoJournal · Filed · About .NET
The dotnet-operator-sdk ships a major breaking change that fundamentally rewrites how multiple controllers target the same entity, while the Android team closes external test dependencies to fix certificate export failures on macOS.
The operator SDK v13.0.0-prerelease.1 [1] introduces a breaking change that restructures controller architecture: you can now run multiple controllers against the same entity type with independent label and field selectors [2]. This isn't a cosmetic API bump. Each controller gets its own watcher, queue, and reconciliation pipeline. You'll need to rewrite controller registration logic if you're targeting entities from multiple controllers, and the SDK now validates selector conflicts at compile time with error KOG001 [3]. Meanwhile, the Android team shipped a critical infrastructure fix: macOS Key Vault certificate exports were broken because PersistKeySet imports keys into the login Keychain where they can't be exported again, producing public-only PFX files [4]. The fix selects storage flags by OS, using Exportable-only on macOS so private keys stay in memory and survive export. The team also hardened test stability by replacing external HTTP services (httpbin.org, badssl.com) with local loopback servers [5], eliminating flaky remote dependencies. On the runtime front, TryParse APIs supporting AllowTrailingInvalidCharacters moved to explicit implementation to avoid breaking F# [6], and the .NET for Android build now excludes SourceLink runtime assets to prevent System.IO.Hashing version collisions in the SDK pack [7].
Action items
- → Plan migration for operator SDK 13.0.0 if using multiple controllers per entity type - API surface changes dotnet/dotnet-operator-sdk [plan]
- → Test macOS certificate export flows against the Key Vault fix immediately dotnet/performance [immediate]
- → Monitor operator SDK release cycle for stable v13.0.0 shipping date dotnet/dotnet-operator-sdk [monitor]
- → Verify .NET for Android builds complete successfully with SourceLink exclusion dotnet/android [monitor]
References
- [1] v13.0.0-prerelease.1 ↗ dotnet/dotnet-operator-sdk
- [2] feat(operator)!: support multiple controllers and selectors per entity ↗ dotnet/dotnet-operator-sdk
- [3] feat(transpiler): add schema validation for CRD attributes ↗ dotnet/dotnet-operator-sdk
- [4] Load macOS Key Vault certs as Exportable only so private key survives export (#5259) dotnet/performance
- [5] [tests] Use local servers for networking tests ↗ dotnet/android
- [6] [main] Source code updates from dotnet/runtime (#7617) dotnet/dotnet
- [7] [build] Exclude SourceLink runtime assets to pin System.IO.Hashing ↗ dotnet/android