Skip to content

Releases: kubernetes-sigs/controller-runtime

v0.5.6

16 Jun 21:24
3e5a1d7
Compare
Choose a tag to compare

This is a maintenance release with bug fixes backported from release-0.6.

✨ New Features

  • Add ContainsFinalizer helper to the controllerutil (#922)

v0.5.5

01 Jun 14:25
5291db5
Compare
Choose a tag to compare

This is a maintenance release with bug fixes backported from release-0.6.

✨ New Features

  • Add Patch MergeFrom optimistic locking option (#973)

v0.5.4

22 May 18:53
c45adcf
Compare
Choose a tag to compare

This is a maintenance release with bug fixes backported from release-0.6.

✨ New Features

  • Controller: Let sources sync even if they use a different cluster (#960)

v0.5.3

20 May 23:12
f31eaf7
Compare
Choose a tag to compare

This is a maintenance release with bug fixes backported from release-0.6.

✨ New Features

  • Introduce controllerutil.Object interface (#898)

🐛 Bug Fixes

  • controllerutil.RemoveFinalizer can occurs slice bounds out of range exception (#917)
  • Fix swapped constant value in webhook envtest (#913)
  • Fix CRD filtering in envtest package (#902)
  • KubeAwareEncoder should handle unstructured object correctly (#881)
  • Return original error from GetConfig (#888)
  • MatchingLabels: Make sure requests with invalid labels fail (#882)
  • Fix version check when reading webhooks from file (#861)
  • Fix scheme used by DeleteAllOf in the fake client.

v0.6.0

24 Apr 17:06
1c83ff6
Compare
Choose a tag to compare

v0.6.0

⚠️ Breaking Changes

  • Update Informers interface to accept context (#830) — Impact: if you're using Informers methods directly, you'll need to pass a context.Context as first argument.
  • Add predicates as variadic args for Owns, For, and Watches func (#799) — Impact: The methods signature have changed, now allow to pass in Options as variadic arguments.
  • Envtest: Do not disable admission plugins by default (#848) — Impact: Tests using envtest might fail if an admission plugin rejects the action, users might need to change tests accordingly.
  • Fakeclient: Reject Update with outdated ResourceVersion (#832) — Impact: Tests using an outdated ResourceVersion when using Update will now fail; this is expected behavior.
  • Fakeclient: Reject Create and Update if Name isn't provided (#886) — Impact: Tests issuing Create/Update calls without a Name will now fail; this is expected behavior.
  • log/zap options Level and StacktraceLevel type (#906)

✨ New Features

  • Add DryRunClient wrapper (#839)
  • Allow controllers to be started and stopped separately from the manager (#863)
  • Expose metrics http server for extra endpoints (#824)

🐛 Bug Fixes

  • controllerutil.RemoveFinalizer can occurs slice bounds out of range exception (#917)
  • Fix swapped constant value in webhook envtest (#913)
  • Ensure KUBECONFIG is unset when testing GetConfigWithContext (#909)
  • Fix CRD filtering in envtest package (#902)
  • KubeAwareEncoder should handle unstructured object correctly (#881)
  • Return original error from GetConfig (#888)
  • MatchingLabels: Make sure requests with invalid labels fail (#882)
  • Fix version check when reading webhooks from file (#861)

Thanks to all our contributors!

v0.5.2

26 Mar 14:25
67ee49a
Compare
Choose a tag to compare

v0.5.2

✨ New Features

  • Add helpers to configure logger options via pflags (#767)

🐛 Bug Fixes

  • fix conservative delay in rate limiter (#859)
  • expose DefaultKubeAPIServerFlags in envtest (#846) -- fixes an accidental breaking change in envtest

Thanks to all our contributors!

v0.5.1

10 Mar 23:21
525a2d7
Compare
Choose a tag to compare

v0.5.1

✨ New Features

  • Add controllerutil.SetOwnerReference (#816, #844)
  • Take context when getting informer. (#663)
  • Support restconfig to target the control plane (#756)
  • Create a supported way of setting a cache on source.Kind (#794)
  • Webhook support in envtest (#787)
  • Enable webhook server set-up mTLS service to verify client's certificate (#802)
  • Make workqueue rate limiter configurable during controller creation (#731)

🐛 Bug Fixes

  • Fix testdata imports in pkg/webhook/conversion (#843)
  • Respect context in unstructured client (#812)
  • Fix informer cache creating pointers to pointers (#796)
  • Use GenerateName during fake client's Create method (#815)

Thanks to all our contributors!

v0.5.0

12 Feb 22:30
0fcf28e
Compare
Choose a tag to compare

v0.5.0

⚠️ Breaking Changes

  • Update dependencies to k8s 1.17 (#795) -- impact: minimal -- minor change in fake leader election interface. If you were faking out leader election, you may need slight adjustment.

  • Bump to Go 1.13 (#606) -- impact: minimal -- soft bump to go 1.13 already occurred, new changes mean we now won't work properly on older versions (e.g. new "errors" package)

  • Envtest: Do not pull in ginkgo outside of _test.go files (#720) -- impact: larger. Test suite generated with kubebuilder will need an additional import for the ginkgo NewlineReporter. Folks not using the NewlineReporter should have zero impact

  • Remove defaulting for leader election ID (#446) -- impact: if you're using leader election, leaving the leader election ID field empty will now yield a runtime error

  • Add testenv support for CRDv1/CRDv1beta1 + update to k8s 1.16.4 (#752) -- impact: if you were populating the CRD field of envtest.Environment by hand (as opposed to loading files from disk), you'll have to change the type of the slice. If you were accessing this field, the type is now runtime.Object. Adjust accordingly.

  • Bring in testing framework (#749) -- impact: minimal -- if you were manually importing sigs.k8s.io/testing_frameworks, you'll have to update your import paths.

✨ New Features

  • APIServer defaults deduplication (#763)
  • Parameterize webhook key/cert name (#760)
  • update CRD if already present (#696)
  • Add Merge patch type and deprecate ConstantPatch in favor of RawPatch (#721)
  • client: Use dynamic RESTMapper by default (#737)
  • Define metrics.Registry as an interface (#713)
  • ErrorIfCRDPathMissing on Environment (#715)
  • CRD file path on CRDInstallOptions.Paths (#716)
  • Clean-up installed CRDs on Stop() (#697)
  • add 10% jitter to ResyncPeriod (#647)
  • envtest: surface merged crds (#706)
  • Add HasLabels helper option for List calls (#792)

🐛 Bug Fixes

  • When loading client config, check os/user.HomeDir if $HOME is unset (#753)
  • Integration test should close http body (#786)
  • Fix panic in call to processState.Stop() (#781)
  • wait for cache start before returning from WaitForCacheSync (#755)
  • Envtest: Allow creating objects with privileged container specs (#708)
  • Remove TotalRequests Prometheus metrics as it is not getting used (#719)
  • Fix SetControllerReference to consider multiple CRD versions (#707)
  • use semantic equality in CreateOrUpdate (#704)

Thanks to all our contributors!

v0.4.0

15 Nov 20:43
198197f
Compare
Choose a tag to compare

v0.4.0

⚠️ Breaking Changes

  • Soft-bump to Go 1.13 (#685) -- this will not break anyone at the moment, but Go 1.13 features (particularly errors) may be adopted in a future feature release.

  • Bump to kube-1.16.0 (#618) -- this is breaking due to a change in metav1.ObjectMeta. It's the removal of a deprecated field, and thus unlikely to affect many people, but technically shows up in our API

  • Minor change in home directory resolution: when resolving home directories, we now use $HOME instead of user.Current(). This change was not entirely intended, but does appear to bring us in line with tooling like kubectl. See #748 for ongoing details. Thanks to @edwardecook for reporting.

  • Semantic change: don't error on missing watched types in controller.New (#643): due to changes in when controllers start their watches, you will no longer receive errors if your watch types aren't registered with the API server when calling controller.New (and consequently Builder.Complete). These errors will now occur at controller (generally manager) start time instead, and will cause manager termination. See #840 for more details.

✨ New Features

  • envtest set service-cluster-ip-range if user not set (#659)
  • Add helpers for remaining Zap options (#639)
  • fakeClient: bump ResourceVersion on write (#620)
  • Update sigs.k8s.io/testing_frameworks to v0.1.2 (#672)
  • Add support for multi-value KUBECONFIG (#642)
  • Improve webhook loggings (#439)
  • implement helpers for add/remove finalizer (#545)
  • Add helpers for common Zap options (#646)
  • added health probes (#419)
  • handle unstructured objects correctly in fake client (#682)

🐛 Bug Fixes

  • InformerCache: Do not require leader lease (#678)
  • cross-namespace owner references should be disallowed (#675)
  • Fix delete example not setting metadata properly for CRDs (#674)
  • go.mod,go.sum: revert prometheus/client_golang to v0.9.x (#679)
  • pkg/metrics/workqueue.go: remove deprecated metrics (#662)
  • Allow kube-apiserver to start without a default route (#670)
  • pkg/log/zap: use enabled in UseDevMode, add tests (#653)
  • prevent controller.New and manager's errChan from leaking goroutines (#651)
  • Fix comments for option in zap (#643)

Thanks to all our contributors!

v0.3.0

10 Oct 23:01
d212411
Compare
Choose a tag to compare

v0.3.0

Note that this release is NOT code-breaking -- it removes support for dep, so we don't want dep users to accidentally upgrade

⚠️ Breaking Changes

  • Remove dep usage and Gopkg.* (#598)

✨ New Features

  • Bump dependencies for Kubernetes 1.15.4 (#599)
  • Avoid extra deep copy in CacheReader.List (#625)
  • Add Limit and Continue functional list options for client (#341)
  • Expose CRDInstallOptions via envtest.Environment (#544)
  • DynamicRESTMapper that reloads on REST cache miss (#554)

🐛 Bug Fixes

  • Return error when trying to read from an unstarted cache (#627)
  • Set limit and continue in ApplyToList method (#608)
  • Prevent NewDiscoveryRESTMapper from panicking by calling NewDiscoveryClientForConfig (#622)

Thanks to all our contributors!