🔆 Highlights
Improved Unknown Fields Handling
Enhanced support for schemas with x-kubernetes-preserve-unknown-fields by migrating to a more lenient type provider implementation. KRO now properly handles CRDs that allow unknown properties without breaking validation. This makes KRO more accurante in enforcing field validation, improving compatibility with dynamic schemas. (#823)
Structural Type Compatibility for CEL Validation
Resolved false positive type errors in CEL expression validation by implementing structural type compatibility checking. Previously, CEL's nominal type checking would reject structurally identical types with different names (e.g pod.spec.containers vs deployment.spec.template.spec.containers), causing validation failures even when the underlying structures matched perfectly. The new implementation performs deep structural comparison, enabling cross resource references like copying entire structs between resources (#813)
CRD Adoption for Recreated RGDs
Removed the RGD owner ID check that prevented ResourceGraphDefinitions from adopting CRDs after being deleted and recreated. When an RGD with the same name is recreated, it can now properly adopt the CRD left behind by the previous instance, with appropriate logging when ownership changes occur. (#826)
✨ Features
- fix: remove RGD owner ID check to allow RGDs to adopt their CRD by @michaelhtm in #826
🐛 Bugfixes
- fix: loosen up static type checker unknown field handling by @jakobmoellerdev in #823
- fix: Add structural type compatibility checking for CEL validation by @a-hilaly in #813
🌱 Other
- perf: optimize isKROReservedWord function by @kennygt51 in #829
- chore: add lint script for Prow job by @bschaatsbergen in #815
- chore: remove golangci-lint workflow by @bschaatsbergen in #817
- Delete unused kustomize configuration by @tjamet in #819
Full Changelog: v0.6.1...v0.6.2