Releases: kubernetes-sigs/kro
v0.6.3
🔆 Highlights
Fixed several regressions in static type analysis introduced in v0.6.0, including: restoring support for struct-to-map and map-to-struct assignments, allowing optional fields without requiring .orValue() when zero values are acceptable, correcting additional properties type handling from map-any to dyn, and re-enabling assignments to structs defined with x-kubernetes-preserve-unknown-fields. (#833)
What's Changed
- fix: various fixes on static type analysis in our structural type checking by @jakobmoellerdev in #833
Full Changelog: v0.6.2...v0.6.3
v0.6.2
🔆 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
v0.6.1
What's Changed
- fix: exclude externalRef nodes from applySet to prevent empty CRs by @bschaatsbergen in #812
- feat: prevent CEL reserved keywords in RGD resource and field names by @a-hilaly in #784
- feat: enable CEL reserved keyword recognition for field access by @a-hilaly in #782
- chore: add presubmit scripts for integration tests, e2e tests, and image builds by @jakobmoellerdev in #792
- refactor: migrate to golangci-lint v2 by @bschaatsbergen in #798
- chore: bump and pin GitHub Actions by SHA instead of tag by @bschaatsbergen in #799
- stale: remove stale workflow badge by @bschaatsbergen in #803
- Remove GitHub Action "unit-tests" workflow by @bschaatsbergen in #805
- chore: bump to go 1.25.0 and bump controller-gen to v0.19.0 by @bschaatsbergen in #800
- Delete unused metadata functions by @tjamet in #810
- bump gcb-docker-gcloud to v20251110-7ccd542560 by @bschaatsbergen in #809
- fix: website generation instructions by @michaelhtm in #778
New Contributors
- @bschaatsbergen made their first contribution in #798
- @tjamet made their first contribution in #810
Full Changelog: v0.6.0...v0.6.1
v0.6.0
🔆 Highlights
Enhanced Instance Status Tracking
- Overhauled instance status with hierarchical sub-conditions for better visibility into resource reconciliation state. The top-level
Readycondition now aggregates three sub-conditions (InstanceManaged,GraphResolved,ResourcesReady), making debugging significantly easier by pinpointing exactly which reconciliation phase failed. Each condition includesobservedGenerationtracking to help verify that the controller has processed your latest changes. (#622)
Dependency Readiness Checks
- Added dependency readiness validation during instance reconciliation to ensure resources are created in the correct order and only when their dependencies are ready. This prevents cascading failures and improves reliability for complex multi-resource instances. (#764, #767)
Reactive Reconciliation with Informers
- Implemented child object watching using Kubernetes informers instead of periodic polling. kro now automatically detects changes to any managed resource and triggers reconciliation immediately, enabling real-time drift detection and correction. This architectural improvement significantly reduces API server load while providing faster response to resource changes. (#611)
Improved Static Validation
- Completely overhauled ResourceGraphDefinition static validation by eliminating emulation-based approaches. The new validation leverages CEL's native type system to validate field references, type compatibility, and function calls at RGD creation time - without executing expressions. This provides faster feedback with clearer error messages. (#756)
✨ Features
- Update instance status sub-conditions by @n3wscott in #759
- fix: add dependency readiness check in instance reconciliation by @govindup63 in #764
- feat: child object watch and resource reconciliation based on informers by @jakobmoellerdev in #611
- Overhaul RGD static validation to eliminate emulation by @a-hilaly in #756
- chore(applyset): add missing resource status markers for reconciliation process by @jakobmoellerdev in #768
🐛 Bugfixes
- fix: ensure LazyInformer shutdown handles nil cancel safely and add safety tests by @jakobmoellerdev in #773
📖 Documentation
- docs: fix Postgres env var typo in website by @kennygt51 in #770
Testing
New Contributors
- @govindup63 made their first contribution in #764
- @kennygt51 made their first contribution in #770
Full Changelog: v0.5.0...v0.6.0
v0.5.1
What's Changed
- Remove push-image from github ci by @a-hilaly in #740
- Add defensive check for lastApplied being nil. may happen in case of apply error. by @barney-s in #752
- fix(applyset): make sure labels and annotations are applied by @jakobmoellerdev in #748
- Remove old note about ghcr.io auth issues from
installation.mdby @a-hilaly in #755 - refactor: remove unused impersonation metrics by @a-hilaly in #757
- fix: replace error state check with error var check by @jakobmoellerdev in #750
Full Changelog: v0.5.0...v0.5.1
v0.5.0
🔆 Highlights
ApplySets (Server-Side Apply)
- kro now uses ApplySets with Server-Side Apply (SSA) as the default method for managing resources created by instance reconcilers. This is a major architectural improvement that replaces client-side apply and solves several long-standing issues: proper resource pruning, elimination of never-ending reconciliation loops on
ConfigMapsandSecrets, and better handling of server-transformed resources. ApplySets provide superior conflict resolution and field ownership tracking, with concurrent operations support for improved performance. (#561, #712). If you see any issues with this feature, do not hesitate to reach out to us!
Enhanced Validation
- Improved error messages for type mismatches in parser. (#698)
- CRD ownership verification to prevent conflicts when multiple
ResourceGraphDefinitionstry to manage the sameCRD. (#562) - New schema validation markers:
pattern,minLength,maxLength,uniqueItems,maxItems, andminItemsin SimpleSchema. (#661)
Performance Optimizations
- Concurrent applyset operations: Enabled parallel processing for apply and prune operations using configurable concurrency that defaults to the number of objects in the applyset, speeding up reconciliation for multi-resource instances. (#712)
- Controller optimizations: Watch CRDs as metadata only, use shared HTTP client with cached REST mappings, and RESTMapper optimizations (#725)
- Schema resolver caching: Added TTL/LRU-based caching (5-minute TTL, 500-entry cap) to reduce repeated API calls and client-side throttling. Uses singleflight deduplication to prevent redundant requests when multiple workers fetch the same schema. (#690)
Versioned documentation site
- Added versioned documentation to the kro.run website, allowing users to view docs for specific releases (
v0.1.0throughv0.5.0) and navigate between versions. (#717)
⚠️ Breaking Changes
Controller Shutdown Configuration
Changed shutdown timeout flags: --dynamic-controller-default-shutdown-timeout → --graceful-shutdown-timeout (same for env vars). The timeout now applies globally to all controllers instead of just the dynamic controller. Using the v0.5.0 helm chart should help with the migration. (#616)
Leader Election ID
Changed kro leader election Lease name to controller.kro.run. Update monitoring or operational tooling that relies on the previous leader election ID. (#694, #699)
Service Account Impersonation Removed
Removed service account spec and impersonation features as we were uncertain about the feature design and UX. We'll work on a proper design for this capability in the future. (#704)
New Reserved Keywords
Added item, items, self, this, root, and resourceGraphDefinition as reserved keywords. Rename these if used in your ResourceGraphDefinitions. (#691, #705, #734)
✨ Features
- expose leader election namespace in args by @michaelhtm in #664
- feat: add immutable marker by @Soumya-Vaidya in #660
- feat(simpleschema): add support for pattern, minLength, maxLengt, uniqueItems, maxItems and minItems markers by @simonfuhrer in #661
- feat: Create applyset for use by instance reconciler by @barney-s in #561
- fix: improve error messages for type mismatches in parser by @a-hilaly in #698
- !feat: Reserve item and items as keywords for collections by @ellistarn in #705
- feat: add concurrency support in applyset operations by @jakobmoellerdev in #712
- feat: Add TTL/LRU based caching to schema resolver by @a-hilaly in #690
- LSP Setup by @HeeManSu in #612
- Add moar reserved keywords to validation list by @a-hilaly in #734
🐛 Bugfixes
- bug: verify existing ownership of CRD managed by ResourceGraphDefinition to prevent conflict by @a-buck in #562
- fix: various controller optimizations for improved performance by @jakobmoellerdev in #725
📖 Documentation
- fix: update version label from 'latest' to 'main' in docusaurus configuration by @jakobmoellerdev in #719
- docs: add versioned documentation site for v0.1.0 through v0.4.1 by @a-hilaly in #717
- Update(01-Installation.md):latest release version url by @tzahimizrahi in #689
- docs: Update FAQ with instructions for using KRO with ArgoCD by @RafPe in #651
- refactor: update all imports and URLs from
github.com/kro-runtokubernetes-sigsby @a-hilaly in #675 - chore: docusaurus bump to
3.9.1, update image paths and dependencies in website by @jakobmoellerdev in #716 - ci: upgrade Node.js from 18 to 20 in docs deployment workflow by @a-hilaly in #718
- Remove out-dated governance page from docs site by @jlbutler in #723
- Remove reference for S3 bucket, not used in this example by @petrokashlikov in #733
Testing
- test(core): RGDs all the way down by @a-hilaly in #264
- Revert "test(core): RGDs all the way down" by @a-hilaly in #701
- chore(tests): properly use SpecContext from Ginkgo by @jakobmoellerdev in #700
🌱 Other
- Update image repository to
registry.k8s.ioby @a-hilaly in #737 - chore: create scripts to build and push images by @justinsb in #730
- chore: push helm chart alongside image by @justinsb in #731
- chore: dropped ATTRIBUTION.md as part of migration to SIG by @ellistarn in #709
- chore: Hydrate goproxy after each push by @ellistarn in #710
- chore: Tidy up lack of parity on dynamic controller interface by @ellistarn in #706
- fix: Use controllerruntime's namespaced name correctly by @ellistarn in #708
- chore: Make dynamic controller logging object-type agnostic. by @ellistarn in #707
- fix license headers by @barney-s in #647
- Switching to the Kubernetes code of conduct by @bridgetkromhout in #649
- Remove some defaulting fields in deployment spec for tests by @barney-s in #650
- Updates for K8s onboarding by @bridgetkromhout in #665
- project file updates for SIG subproject requirements by @jlbutler in #667
- update owners files to text by @jlbutler in #669
- Update copyright to Kubernetes Authors by @bridgetkromhout in #670
- Add NOTICE file by @bridgetkromhout in #671
- Adding SIG leads by @bridgetkromhout in #672
- Adding required security contact files by @bridgetkromhout in #673
- Update NOTICE by @a-hilaly in #676
- chore: remove GitHub Actions stale bot workflow in favor of Prow by @a-hilaly in #674
- Updating NOTICE to remove people who signed CLA by @bridgetkromhout in #678
- Mv hack under scripts to reduce Top level folders by @barney-s in #682
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #677
- Chore: refactor logic out of GHA by @justinsb in #681
- Removing after signing CLA by @bridgetkromhout in #684
- Another CLA signing by @bridgetkromhout in #686
- List the SIG and K8s on the website footer. by @bridgetkromhout in #688
- CLA signed - removing from NOTICE by @bridgetkromhout in #687
- Removing michaelhtm from NOTICE - signed CLA by @bridgetkromhout in #703
- Update NOTICE with removal of completed signed agreement by @Rakhmanov in #728
- chore: bump gcb-docker-gcloud to latest version by @justinsb in #735
- chore: run helm using go run by @justinsb in #736
New Contributors
- @simonfuhrer made their first contribution in #661
- @RafPe made their first contribution in https://github.com/kubernetes-sigs/kro/pu...
v0.5.0-rc.1
What's Changed
- fix license headers by @barney-s in #647
- Switching to the Kubernetes code of conduct by @bridgetkromhout in #649
- Remove some defaulting fields in deployment spec for tests by @barney-s in #650
- Updates for K8s onboarding by @bridgetkromhout in #665
- project file updates for SIG subproject requirements by @jlbutler in #667
- expose leader election namespace in args by @michaelhtm in #664
- feat: add immutable marker by @Soumya-Vaidya in #660
- update owners files to text by @jlbutler in #669
- Update copyright to Kubernetes Authors by @bridgetkromhout in #670
- Add NOTICE file by @bridgetkromhout in #671
- Adding SIG leads by @bridgetkromhout in #672
- Adding required security contact files by @bridgetkromhout in #673
- feat(simpleschema): add support for pattern, minLength, maxLengt, uniqueItems, maxItems and minItems markers by @simonfuhrer in #661
- Update NOTICE by @a-hilaly in #676
- chore: remove GitHub Actions stale bot workflow in favor of Prow by @a-hilaly in #674
- Updating NOTICE to remove people who signed CLA by @bridgetkromhout in #678
- Mv hack under scripts to reduce Top level folders by @barney-s in #682
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #677
- Chore: refactor logic out of GHA by @justinsb in #681
- Removing after signing CLA by @bridgetkromhout in #684
- Another CLA signing by @bridgetkromhout in #686
- List the SIG and K8s on the website footer. by @bridgetkromhout in #688
- CLA signed - removing from NOTICE by @bridgetkromhout in #687
- Update(01-Installation.md):latest release version url by @tzahimizrahi in #689
- feat: Create applyset for use by instance reconciler by @barney-s in #561
- Add
selfandthisto reserved keywords by @a-hilaly in #691 - fix!: use kro-controller as leaderElectionID by @a-hilaly in #694
- docs: Update FAQ with instructions for using KRO with ArgoCD by @RafPe in #651
- fix: improve error messages for type mismatches in parser by @a-hilaly in #698
- refactor: use domain-based naming for leader election ID by @a-hilaly in #699
- fix!: properly shutdown controller manager and dynamic controller by @jakobmoellerdev in #616
- test(core): RGDs all the way down by @a-hilaly in #264
- Revert "test(core): RGDs all the way down" by @a-hilaly in #701
- Removing michaelhtm from NOTICE - signed CLA by @bridgetkromhout in #703
- chore(tests): properly use SpecContext from Ginkgo by @jakobmoellerdev in #700
- !feat: Reserve item and items as keywords for collections by @ellistarn in #705
- chore: Tidy up lack of parity on dynamic controller interface by @ellistarn in #706
- chore!: remove service account spec and impersonation by @jakobmoellerdev in #704
- chore: Make dynamic controller logging object-type agnostic. by @ellistarn in #707
- fix: Use controllerruntime's namespaced name correctly by @ellistarn in #708
- chore: dropped ATTRIBUTION.md as part of migration to SIG by @ellistarn in #709
- chore: Hydrate goproxy after each push by @ellistarn in #710
- refactor: update all imports and URLs from
github.com/kro-runtokubernetes-sigsby @a-hilaly in #675 - feat: add concurrency support in applyset operations by @jakobmoellerdev in #712
- chore: docusaurus bump to
3.9.1, update image paths and dependencies in website by @jakobmoellerdev in #716 - ci: upgrade Node.js from 18 to 20 in docs deployment workflow by @a-hilaly in #718
- docs: add versioned documentation site for v0.1.0 through v0.4.1 by @a-hilaly in #717
- fix: update version label from 'latest' to 'main' in docusaurus configuration by @jakobmoellerdev in #719
- fix website type example typo by @fabianburth in #722
- feat: Add TTL/LRU based caching to schema resolver by @a-hilaly in #690
- Remove out-dated governance page from docs site by @jlbutler in #723
- bug: verify existing ownership of CRD managed by ResourceGraphDefinition to prevent conflict by @a-buck in #562
- LSP Setup by @HeeManSu in #612
- Update NOTICE with removal of completed signed agreement by @Rakhmanov in #728
- fix: various controller optimizations for improved performance by @jakobmoellerdev in #725
- Remove reference for S3 bucket, not used in this example by @petrokashlikov in #733
- chore: create scripts to build and push images by @justinsb in #730
- chore: push helm chart alongside image by @justinsb in #731
- Add moar reserved keywords to validation list by @a-hilaly in #734
- chore: bump gcb-docker-gcloud to latest version by @justinsb in #735
- chore: run helm using go run by @justinsb in #736
- Update image repository to
registry.k8s.ioby @a-hilaly in #737
New Contributors
- @simonfuhrer made their first contribution in #661
- @RafPe made their first contribution in #651
- @a-buck made their first contribution in #562
- @petrokashlikov made their first contribution in #733
Full Changelog: v0.4.1...v0.5.0-rc.1
v0.4.1
What's Changed
- kro cli generate diagram by @DhairyaMajmudar in #589
- chore(docs): add status description of RGD by @jakobmoellerdev in #619
- Restructure kro cli by @DhairyaMajmudar in #623
- Prefer to use interfaces for kube types to allow for unit testing controllers without real kube clients. by @n3wscott in #624
- refactor: use controller runtime helper functions for finalizers by @barney-s in #625
- chore(docs): add optionals example documentation by @jakobmoellerdev in #605
- Update instance states documentation by @7navyasa in #550
- changed apiVersion to kro.run/v1alpha1 in instances documentation by @Soumya-Vaidya in #634
- install envtest if not present and use it in integration tests by @barney-s in #636
- chore(docs): remove namespace for cluster scope resource by @Henni in #637
- Restructure Generate command groups by @DhairyaMajmudar in #630
- update maintainers by @jlbutler in #641
- Adding emeritus; removing empty column by @bridgetkromhout in #644
- chore(ci): add stale bot workflow for issue and PR management by @jakobmoellerdev in #642
- Add licenses automatically as part of fmt by @barney-s in #640
- feat: Add support for passing unstructured data to CRDs managed by KRO by @Moortiii in #627
New Contributors
- @Soumya-Vaidya made their first contribution in #634
- @Henni made their first contribution in #637
- @Moortiii made their first contribution in #627
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- Fix lint errors by @DhairyaMajmudar in #567
- fix(docs): minor spelling and grammar fixes by @newtondev in #578
- Fix typos by @chkp-dvirpa in #572
- Add additionalPrinterColumns examples to docs by @petar-cvit in #547
- Update PR and commit style guidance by @jlbutler in #581
- Add design under docs, and a proposal for proposals by @jlbutler in #582
- kro cli generate crd command by @DhairyaMajmudar in #583
- kro cli: validate command by @DhairyaMajmudar in #527
- fix: add missing permissions to create CRDs by @cmontemuino in #587
- docs: Fix typos in Markdown documentation files by @codesenju in #584
- Use CEL env's HasFunction method by @gfrey in #528
- feat: share http client by @fabianburth in #593
- Status conditions design to design dir by @n3wscott in #588
- Nested default values in rgd schema by @dnabic-c in #594
- Add e2e tests using chainsaw by @barney-s in #590
- Add base64 encoder to cel expression evaluation by @Damy3 in #599
- chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /website in the npm_and_yarn group across 1 directory by @dependabot[bot] in #600
- Fix parsing of array and scalar types for expected type 'any' by @Damy3 in #601
- [helm] fix: conditionally provide bool args and corrected RBAC for aggregation mode by @ryan-atkins in #597
- Inconsistency in flect pluralize causing that Kro can't find the CRD by @dnabic-c in #596
- feat: KRO optionals by @fabianburth in #525
- Fix required marker value handling by @gfrey in #517
- chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #606
- fix: failing e2e tests by @fabianburth in #608
- chore: improve optional type handling and error reporting in GoNativeType by @fabianburth in #607
- Rewrite conditions for ResourceGraphDefinition leveraging ConditionSet by @n3wscott in #544
- kro cli generate instance by @DhairyaMajmudar in #603
- Refactor EKS cluster mgmt example RGDs to leverage includeWhen by @iamahgoub in #613
Breaking Changes
- The
.status.conditionsof RGD and instance has been changed. For more details please refer to the design proposal and the PR: test/e2e/chainsaw/check-multi-resource-rgd/rgd-assert.yaml
New Contributors
- @chkp-dvirpa made their first contribution in #572
- @cmontemuino made their first contribution in #587
- @codesenju made their first contribution in #584
- @dnabic-c made their first contribution in #594
- @Damy3 made their first contribution in #599
- @ryan-atkins made their first contribution in #597
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- update contribution.md, add getting started section by @rushmash91 in #358
- Remove website dockerfile by @yashisrani in #365
- ci: add Go path filters to Go related workflows by @a-hilaly in #315
- Bump cel-go to latest and fix related tests by @tomasaschan in #388
- Cleanup: Removes unused function
GetResourceTopLevelFieldNamesby @DhairyaMajmudar in #393 - Tests: adds unit tests for
pkg/graph/crdby @DhairyaMajmudar in #402 - fix: makefile: deploy-kind command by @DhairyaMajmudar in #400
- Cleanup : unused
ExpectedTypesfield andExpectedSchemamismatch inparser_test.goby @Rudra-Sankha-Sinhamahapatra in #397 - feat: allow escaped nested expressions by @dirien in #297
- Make
ErrNestedExpressionerr descriptive by @rushmash91 in #410 - chore: fix typos in code comments by @feliperubo in #421
- adding validation for immutable fields in schema by @RinkiyaKeDad in #205
- Tests: adds unit tests for
pkg graph/metadata/selectors.goby @Rudra-Sankha-Sinhamahapatra in #409 - feat: use dynamic version in user agent string by @a-hilaly in #429
- feat: set default version values and add version label tests by @a-hilaly in #430
- chore: replace hardcoded versions with ${VERSION} placeholders by @a-hilaly in #431
- chore: fix typos in documentation by @feliperubo in #433
- devtools(1/many): Generate ATTRIBUTION.md with go generate by @tomasaschan in #437
- Fix
Conceptslink docs in website by @AshwinSriram11 in #436 - chore: migrate dag to cmp.Ordered by @jakobmoellerdev in #419
- chore: increase test coverage
pkg/graph/validation.goto 100% by @feliperubo in #439 - chore: increase test coverage of
pkg/metadata/labels.goto 100% by @feliperubo in #434 - chore: fix imports according to standard ordering in Go by @feliperubo in #440
- docs: fix broken code of conduct link by @philipsabri in #441
- chore: add test case to TestGraphBuilder_Validation by @feliperubo in #443
- chore: replace deprecated package
io/ioutilbyioby @feliperubo in #445 - pkg simpleschema: adds SimpleSchema enum support by @DhairyaMajmudar in #424
- GitOps Fleet Management using kro in a Multi-Account Set Up by @meetreks in #438
- chore: remove unnecessary logging during resource graph definition reconciliation by @philipsabri in #453
- Leverage the upstream k8s release-utils version strings and ldflags values. by @n3wscott in #452
- Bump
golang.org/x/oauth2version to v0.28.0 by @AnushkaaBansal in #455 - Remove demo scripts and "config files" from eks-cluster-mgmt example by @allamand in #456
- Adding ingress triangle example by @markoskandylis in #408
- Eks cluster mgmt example improvement by @allamand in #464
- update security contact information to Kro by @a-hilaly in #465
- chore: add test case to TestLoadPredefinedTypes by @feliperubo in #460
- Fix nil pointer panic when evaluating CEL expressions with CRDs by @Rakhmanov in #463
- Tests: adds tests for
cel/environment.goby @DhairyaMajmudar in #448 - Update contribution guide by @jlbutler in #466
- Enhance simpleschema documentation by @HeeManSu in #467
- Enhance error handling for
MarkerTypeMinimum&MarkerTypeMaximumby @DhairyaMajmudar in #468 - Tests: adds unit tests for
pkg/graph/variable.goby @Rudra-Sankha-Sinhamahapatra in #404 - Make dynamic client rate limiter configurable by @DanielKlt in #326
- Fork and update of Condition Sets from Knative, attributed by @n3wscott in #459
- Fix make build rule by @n3wscott in #472
- chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot in #475
- Do not store loggers in controller stucts by @n3wscott in #462
- Fix: Home page buttons spacing on mobile devices by @chamodshehanka in #473
- refactor: DryRunExpressions in builder.go by @michaelhtm in #481
- pkg simpleschema: Add simple CEL validation support by @DhairyaMajmudar in #484
New Contributors
- @Rudra-Sankha-Sinhamahapatra made their first contribution in #397
- @dirien made their first contribution in #297
- @feliperubo made their first contribution in #421
- @AshwinSriram11 made their first contribution in #436
- @jakobmoellerdev made their first contribution in #419
- @philipsabri made their first contribution in #441
- @meetreks made their first contribution in #438
- @AnushkaaBansal made their first contribution in #455
- @allamand made their first contribution in #456
- @markoskandylis made their first contribution in #408
- @Rakhmanov made their first contribution in #463
Full Changelog: v0.2.2...v0.3.0