Skip to content

Releases: reconcilerio/runtime

v0.24.1

29 Sep 14:14
f1a1c5a

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.24.0...v0.24.1

v0.24.0

16 Sep 13:04
ec87995

Choose a tag to compare

Breaking Changes

Upstream breaking changes are reflected here.

  • adds compatibility for controller-runtime 0.22 and breaks compatibility with previous controller-runtime releases

What's Changed

  • Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by @dependabot[bot] in #598
  • Bump golang.org/x/net from 0.35.0 to 0.36.0 by @dependabot[bot] in #599
  • Bump golang.org/x/net from 0.36.0 to 0.37.0 by @dependabot[bot] in #600
  • Bump gomodules.xyz/jsonpatch/v2 from 2.4.0 to 2.5.0 by @dependabot[bot] in #601
  • Bump sigs.k8s.io/controller-runtime from 0.20.2 to 0.20.3 by @dependabot[bot] in #602
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #604
  • Bump golang.org/x/net from 0.34.0 to 0.36.0 in /hack in the go_modules group by @dependabot[bot] in #603
  • Quiet errors are always actually quiet by @scothis in #605
  • Allow ResourceReconciler to skip processing by @scothis in #606
  • Always reconciler by @scothis in #607
  • Bump sigs.k8s.io/controller-runtime from 0.20.3 to 0.20.4 by @dependabot[bot] in #608
  • Suppress result when updating status by @scothis in #609
  • Bump golang.org/x/net from 0.37.0 to 0.38.0 by @dependabot[bot] in #610
  • Allow ChildReconciler to return user defined errors by @scothis in #611
  • Bump sigs.k8s.io/controller-tools from 0.17.2 to 0.17.3 in /hack by @dependabot[bot] in #613
  • Add discovery client to config by @scothis in #612
  • Bump golang.org/x/net from 0.38.0 to 0.39.0 by @dependabot[bot] in #614
  • Switch to secret CodeCov token by @scothis in #616
  • Bump reconciler.io/dies/diegen from 0.15.0 to 0.15.1 in /hack by @dependabot[bot] in #617
  • Bump reconciler.io/dies from 0.15.0 to 0.15.1 by @dependabot[bot] in #618
  • Allow ducks to own child resources by @scothis in #615
  • Normalize ducks in fake client config by @scothis in #619
  • Bump golang.org/x/net from 0.36.0 to 0.38.0 in /hack in the go_modules group by @dependabot[bot] in #620
  • SuppressTransientErrors sub reconciler by @scothis in #621
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #622
  • Bump reconciler.io/dies from 0.15.1 to 0.16.0 by @dependabot[bot] in #624
  • Allow ChildReconciler to opt-in to dangerous chilren by @scothis in #506
  • Bump golang.org/x/net from 0.39.0 to 0.40.0 by @dependabot[bot] in #625
  • Config WithTracker creates a new tracker for the config by @scothis in #626
  • Bump sigs.k8s.io/controller-tools from 0.17.3 to 0.18.0 in /hack by @dependabot[bot] in #627
  • Migrate dependabot reviewers to CODEOWNERS by @mamachanko in #629
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #628
  • Bump sigs.k8s.io/controller-runtime from 0.20.4 to 0.21.0 by @dependabot[bot] in #630
  • Bump github.com/go-logr/logr from 1.4.2 to 1.4.3 by @dependabot[bot] in #631
  • Bump golang.org/x/net from 0.40.0 to 0.41.0 by @dependabot[bot] in #632
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #633
  • Bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0 by @dependabot[bot] in #634
  • Bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in #635
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #636
  • Bump sigs.k8s.io/yaml from 1.5.0 to 1.6.0 by @dependabot[bot] in #637
  • Bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in #638
  • Bump actions/checkout from 4 to 5 by @dependabot[bot] in #639
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #640
  • Bump sigs.k8s.io/controller-tools from 0.18.0 to 0.19.0 in /hack by @dependabot[bot] in #643
  • Bump sigs.k8s.io/controller-runtime from 0.21.0 to 0.22.0 by @dependabot[bot] in #644
  • Bump actions/setup-go from 5 to 6 by @dependabot[bot] in #646
  • Bump sigs.k8s.io/controller-runtime from 0.22.0 to 0.22.1 by @dependabot[bot] in #647
  • Bump golang.org/x/net from 0.43.0 to 0.44.0 by @dependabot[bot] in #648
  • Bump the kubernetes group with 3 updates by @dependabot[bot] in #649
  • Support client.Apply() test expectations by @scothis in #645
  • Extract stash machinery into dedicated package by @scothis in #650

Full Changelog: v0.23.0...v0.24.0

v0.23.0

19 Feb 19:57
d4697d5

Choose a tag to compare

Highlights

Nested Reconciler validation

Reconcilers/SubReconcilers/AdmissionWebhookAdapters are now validated, with the validation extending into nested SubReconcilers for tests. This will provide meaningful fast failures for test cases that embed invalid reconcilers.

In order to participate custom types need to implement validation.Validator interface. Calling into the Validate() method on nested types should be guarded by checking validation.IsRecursive.

	if validation.IsRecursive(ctx) {
		if v, ok := r.Reconciler.(validation.Validator); ok {
			if err := v.Validate(ctx); err != nil {
				return fmt.Errorf("Advice %q must have a valid Reconciler: %w", r.Name, err)
			}
		}
	}

full source

ChildReconciler/ChildSetReconciler error handling

The ChildReconciler can now define the set of error conditions that will be passed to ChildReconciler#ReflectChildStatusOnParent at ChildReconciler#ReflectedChildErrorReasons. By default the set of passed errors are:

Custom diffing for types in tests

ExpectConfig and test cases that embed it are able to define a custom Differ that is used to compare the side effects of the test expected and actual values. By default this is implemented using go-cmp. Users who wish to use a different diff implementation, or provide custom cmp.Options may implement the Differ interface and assign it to the particular config or test case.

Breaking Changes and Deprecations

  • ResourceManager was deprecated in v0.22.0 and is removed in favor of ObjectManager for a generic type, or UpdatingObjectManager.

  • AggregateReconciler.{HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize} were deprecated in v0.22.0 and are removed in favor of AggregateReconciler.AggregateObjectManager.

  • ChildReconciler.{Finalizer, HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize, SetResourceManager} were deprecated in v0.22.0 and are removed in favor of ChildReconciler.ChildObjectManager.

  • ChildSetReconciler.{HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize} were deprecated in v0.22.0 and are removed in favor of ChildSetReconciler.ChildObjectManager.

  • AdmissionWebhookAdapter#Build is newly deprecated in favor of AdmissionWebhookAdapter#BuildWithContext.

  • AdmissionWebhookTestSuite#Run, AdmissionWebhookTests#Run, and AdmissionWebhookTestCase#Run are newly deprecated in favor of #RunWithContext.

What's Changed

New Contributors

Full Changelog: v0.22.0...v0.23.0

v0.22.0

01 Oct 12:52
72b6e1c

Choose a tag to compare

Highlights

Stashers

A Stasher provides a convenient way to stash typed values. Create a NewStasher using the type of the value being stashed and a unique stash key. All operations through a stasher, including retrieval are type safe with options for handling missing values on retrieval.

ObjectManager

The previous ResourceManager is split into an interface (ObjectManager) and implementation (UpdatingObjectManager).

The AggregateReconciler, ChildReconciler, and ChildSetReconciler are updated to use the interface allowing new strategies to be plugged-in.

Breaking Changes

There are no breaking changes in this release, but a number of existing APIs have been deprecated. Migration to the suggested APIs is encouraged as the deprecated APIs will be removed in a future release.

  • ResourceManager is deprecated in favor of ObjectManager for a generic type, or UpdatingObjectManager.
  • AggregateReconciler.{HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize} are deprecated in favor of AggregateReconciler.AggregateObjectManager.
  • ChildReconciler.{Finalizer, HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize, SetResourceManager} are deprecated in favor of ChildReconciler.ChildObjectManager.
  • ChildSetReconciler.{HarmonizeImmutableFields, MergeBeforeUpdate, Sanitize} are deprecated in favor of ChildSetReconciler.ChildObjectManager.

What's Changed

Full Changelog: v0.21.1...v0.22.0

v0.21.1

15 Aug 14:01
5c96b7e

Choose a tag to compare

What's Changed

  • Apply defaults to objects implementing CustomDefaulter by @scothis in #540

Full Changelog: v0.21.0...v0.21.1

v0.21.0

15 Aug 11:33
20db0da

Choose a tag to compare

Breaking changes

Highlights

What's Changed

New Contributors

Full Changelog: v0.20.0...v0.21.0

v0.20.0

13 Mar 20:07
5ce1c94

Choose a tag to compare

First release after forking from github.com/vmware-labs/reconciler-runtime. Users will need to update their go imports to remove all references to github.com/vmware-labs/reconciler-runtime/....

Before:

import "github.com/vmware-labs/reconciler-runtime/reconcilers"

After:

import "reconciler.io/runtime/reconcilers"

There are no other API changes since v0.19.0

What's Changed

  • Migrate to reconciler.io/runtime by @scothis in #1

Full Changelog: v0.19.0...v0.20.0