What's Changed
- cut docs v0.8.5 by @michaelhtm in #1032
- fix: flaky validate RGD status test by @michaelhtm in #1034
- chore(deps): bump webpack from 5.96.1 to 5.105.0 in /website in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1027
- refactor(cel): Move cel conversion functions to separate package by @NicholasBlaskey in #1043
- Fix flaky validate RGD status integration test by @Aman-Cool in #1041
- add jakobmoellerdev to kro-maintainers by @jlbutler in #1020
- promote nicslatts to emeritus-kro-maintainers by @jlbutler in #1044
- chore: bump controller-runtime to v0.23.1 by @NicholasBlaskey in #1046
- chore: bump cel-go to v0.27.0 by @NicholasBlaskey in #1047
- Limit collection size to 1000 to protect cluster performance by @NicholasBlaskey in #1036
- Add map library with merge functionality by @a-hilaly in #1068
- chore: limit collection dimension to 5 by @michaelhtm in #1045
- fix(docs): Wrong schema apiVersion definition in RGD chaining by @gagahsyuja in #1050
- fix: properly return error in simpleschema parsing when the marker does by @NickKeller in #1073
- Add json.marshal and json.unmarshal cel functions by @NicholasBlaskey in #1033
- chore(deps): bump the npm_and_yarn group across 2 directories with 4 updates by @dependabot[bot] in #1070
- fix: remove the rgd labels from managed resources by @jakobmoellerdev in #1075
- fix(applyset): preserve prune scope on UID conflicts and requeue retry by @a-hilaly in #1081
- chore: Remove myself from NOTICE by @codesenju in #1082
- Document escaping Bash '${VAR}' syntax for CEL by @mwarkentin in #1083
- fix: pass up expressive error by @fabianburth in #1078
- feat: disable instance reconciliation when a kro.run/reconcile:"disabled" label is present by @NickKeller in #1062
- fix(runtime): schema-aware CEL value conversion by @jakobmoellerdev in #1080
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #1087
- chore(deps): bump @tootallnate/once from 2.0.0 to removed in /website in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1089
- feat: external ref watches and external ref collections by @jakobmoellerdev in #1079
- docs: expand external references to support collections with label selectors by @jakobmoellerdev in #1093
- test: harden pkg/runtime coverage by @a-hilaly in #1099
- build: group Dependabot npm and Go security updates by @a-hilaly in #1096
- test(instance): harden instance reconciler coverage by @a-hilaly in #1103
- fix(cel/ast): derive known functions from CEL environment by @a-hilaly in #1109
- test(rgd): Harden rgd controller unit tests by @a-hilaly in #1102
- docs(website): remove pre-v0.7.0 entries from versions.json by @a-hilaly in #1111
- fix(graph/resolver): expose schema resolver metrics on controller-runtime registry by @a-hilaly in #1113
- dynamiccontroller: retain parent informers for shared GVR watches by @a-hilaly in #1105
- perf(graph): eliminate duplicate CEL type building during RGD construction by @jakobmoellerdev in #1116
- Fix ResourceGraphDefinition delete predicate handling by @a-hilaly in #1097
- feat: add metrics for pkg/runtime by @NicholasBlaskey in #1053
- docs(metrics): add stability notice for ALPHA metrics by @jakobmoellerdev in #1118
- perf(cel): cache base declarations and environment with sync.Once by @jakobmoellerdev in #1119
- dynamiccontroller: rollback provisional watches on failed reconciles by @a-hilaly in #1106
- test: verify externalref integration cases reconcile on watched updates by @a-hilaly in #1123
- refactor(dag): use a heap-based topological sort by @a-hilaly in #1122
- test(pkg/graph): harden unit tests for graph builder and friends by @a-hilaly in #1120
- feat(compat): detect default value changes as non-breaking in schema comparison by @michaelhtm in #1098
- Add AWS Accounts Factory example with nested RGDs by @tzahimizrahi in #1128
- KREP-008: docs: add proposal for resource-backed includeWhen evaluation by @shivansh-source in #933
- feat(cel): add deterministic seeded integer generation function by @a-hilaly in #1108
- website: overhaul overview docs with interactive resource graph diagrams by @a-hilaly in #1110
- Make string templates compile to concentation by @NicholasBlaskey in #1131
- fix: return a requeue error when waiting for readiness by @fabianburth in #1090
- feat(helm): add topologySpreadConstraints in deployment by @QuentinBtd in #1137
- feat(instance): block graph propagation on terminating managed resources by @a-hilaly in #1132
- Add RGD controller metrics by @NicholasBlaskey in #1063
- feat(cel): add support for
TwoVarComprehensionsin CEL environment by @jakobmoellerdev in #1136 - perf(cel): add caching for CEL compilation artifacts to optimize performance by @jakobmoellerdev in #1129
- fix(cel): sort transformList result before comparison in TwoVar test by @a-hilaly in #1141
- Fix: Kro controller metrics report errors when objects are deleted by @Avr8 in #1059
- feat(cel): add metrics for CEL cache hit/miss tracking by @a-hilaly in #1142
- Add instance controller metrics by @NicholasBlaskey in #1056
- feat(cel): add cel.bind() support to default environment and AST inspector by @pnz1990 in #1145
- website: add KREP roadmap page by @a-hilaly in #1133
- docs: add "Building Abstractions with kro" guides by @a-hilaly in #1112
- KREP-003: Decorators (Collection Watching) by @ellistarn in #738
- refactor(api): move InstanceState and NodeState to api/v1alpha1 by @NicholasBlaskey in #1134
- chore(deps): bump dompurify from 3.3.0 to 3.3.2 in /website in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1092
- feat(cel): add index-mutation functions to the lists library by @pnz1990 in #1148
- chore: implement annotation change predicate to allow reconciles on a… by @shabbskagalwala in #1155
- Add client-go and reflector metrics registration by @a-hilaly in #1143
- test: add webhook denial integration tests with ValidatingAdmissionPolicy by @NicholasBlaskey in #1154
- KREP-10 for cluster-scoped instance CRDs by @antcybersec in #1030
- KREP-017 template field omission with
omit()by @a-hilaly in #1121 - allow
includeWhento reference other resources by @a-hilaly in #1104 - Use expressive histogram buckets for controller reconciliation metrics by @a-hilaly in #1157
- commit watches on requeue signals, not just on success by @a-hilaly in #1158
- feat: implement KREP-10 - support cluster-scoped instance CRDs by @antcybersec in #1152
- feat(cel): add omit() for conditional field omission in templates by @michaelhtm in #1139
- test: integration test case, omit() removes field by @michaelhtm in #1168
- feat(#510): implement standard Kubernetes feature gates via component-base by @jakobmoellerdev in #1172
- fix: show root cause error by @fabianburth in #1160
- fix(dynamic): skip parent instance events with unchanged generation by @jakobmoellerdev in #1173
- fix(metadata): skip instance-namespace label for cluster-scoped instances by @a-hilaly in #1175
- KREP-15: label/annotation migration to
internal.kro.run/prefix by @michaelhtm in #1094 - docs: Update docs be explicitly clear about resources depending on
schema.specby @NickKeller in #1072 - docs: document cluster-scoped instance support by @a-hilaly in #1162
- fix(docs): correct RGD conditions by @a-hilaly in #1181
- fix(collections): register collection watch for all expanded resources by @a-hilaly in #1182
- feat(cel): add k8s Quantity library support by @NicholasBlaskey in #1177
- fix(cel): handle
oneOfstring|number schemas inUnstructuredToValby @a-hilaly in #1179 - feat: Add opt-in pprof profiling support via build tags by @a-hilaly in #922
- feat(graph): reject omit() on required resource metadata fields by @michaelhtm in #1167
- refactor(runtime,instance): split large files and simplify state management by @jakobmoellerdev in #1165
- feat(cel): add k8s Lists library support by @NicholasBlaskey in #1178
- Use RGD metadata.name as the label for ResourceGraphDefinition controller metrics. by @a-hilaly in #1140
- make instance requeue interval configurable by @a-hilaly in #1184
- add verify-codegen script by @a-hilaly in #1183
- feat(events): Add events for instance status condition transition by @spattk in #1151
- feat(graph): gate omit() behind CELOmitFunction feature flag by @a-hilaly in #1185
- docs: Add a page for feature gates by @a-hilaly in #1186
- feat(helm): expose feature gates in chart values by @a-hilaly in #1187
- fix(externalref): allow external collections to list across all namespaces by @a-hilaly in #1180
- fix(test): use unique labels to avoid cross-namespace collisions by @a-hilaly in #1193
- harden
BuilderCachestores and cache iterator environments by @a-hilaly in #1189 - add
schema.Cachefor pointer stable OpenAPI field lookups by @a-hilaly in #1190 - perf: removes the lock convoy during large RGD bursts by @a-hilaly in #1192
- fix: disable instance reconciliation with annotation instead of label by @michaelhtm in #1191
- fix missing dynamic controller registration, and wire up missing metrics by @jakobmoellerdev in #1146
- key typed env cache by schema structure instead of pointer address by @a-hilaly in #1194
- Implementation of Graph Revisions (KREP-013) by @a-hilaly in #1085
- fix: get rid of cel build caches due to problems during stabilization by @jakobmoellerdev in #1195
- Add verify-codegen ci entrypoint by @a-hilaly in #1196
- Add an upgrade test framework that validates kro upgrades don't break by @a-hilaly in #1197
- refactor(apis): add condition prune mechanism for upgrades by @a-hilaly in #1198
- fix(instance): surface graph resolution failures in conditions and metrics by @a-hilaly in #1201
- docs(website): rewrite graph revisions page and add interactive diagrams by @a-hilaly in #1199
- Update helm chart and values.yaml by @a-hilaly in #1203
- docs: Fix formatting in the verify installation step (getting started… by @KatharinaSick in #1188
- Watch owned
GraphRevisionsfrom the RGD controller by @a-hilaly in #1200 - expose leader election tuning flags in helm chart by @a-hilaly in #1205
- feat(perf): use DefaultUnstructuredConverter to eliminate JSON round-trips in conditions by @spattk in #1204
- watch graph revisions by
spec.snapshot.namefor orphan adoption by @a-hilaly in #1206 - cut docs for 0.9.0 by @a-hilaly in #1207
New Contributors
- @NicholasBlaskey made their first contribution in #1043
- @gagahsyuja made their first contribution in #1050
- @NickKeller made their first contribution in #1073
- @mwarkentin made their first contribution in #1083
- @shivansh-source made their first contribution in #933
- @QuentinBtd made their first contribution in #1137
- @Avr8 made their first contribution in #1059
- @pnz1990 made their first contribution in #1145
- @KatharinaSick made their first contribution in #1188
Full Changelog: v0.8.5...v0.9.0