Skip to content

Releases: kubernetes-sigs/controller-runtime

v0.10.2

05 Oct 04:56
78ce10e
Compare
Choose a tag to compare

Changes since v0.10.1

✨ New Features

  • Allow webhooks to register custom validators/defaulter types (#1679)

🌱 Others

  • 🌱 Source should retry to get informers until timeout expires in (#1682)

Thanks to all our contributors! 😊

v0.10.1

21 Sep 16:30
9d7bcf7
Compare
Choose a tag to compare

Changes since v0.10.0

🐛 Bug Fixes

  • envtest: Fix CRD installation (#1666)
  • envtest: Get gvk from hook struct instead of forcing set TypeMeta (#1665)
  • Fakeclient: Allow manipulating registered types through unstructured (#1662)
  • Unconditionally set NegotiatedSerializer (#1664)
  • Fix object overwrite on patch for fake client (#1651)
  • Set partialmetadata gvk in list/watch funcs to avoid data race in cache (#1650)

🌱 Others

  • Update k8s.io/* dependencies to v0.22.2 (#1672)

Thanks to all our contributors! 😊

v0.10.0

31 Aug 17:42
1730628
Compare
Choose a tag to compare

Controller-runtime v0.10.0

Changes since v0.9.6

⚠️ Breaking Changes

  • Client: Ensure no stale data remains in target object (#1640)
  • bump to kubernetes 1.22.0 (#1626)
  • Disable the rest_client_request_latency_seconds metric by default (#1587)
  • Fakeclient: Reject Delete with mismatched ResourceVersion (#1582)

✨ New Features

  • Construct the typed clients we need (#1637)
  • Add UnsafeDisableDeepCopy into cache option to avoid deep copy during get/list (#1274)
  • Add an option to recover panic for controller reconcile (#1627)
  • chore: Fix bad urls (#1632)
  • Update Kubernetes dependencies to v0.21.3 (#1604)
  • Restrict namespace for list/watch based on field selectors (#1602)
  • add health check for webhook server (#1588)

🐛 Bug Fixes

  • Envtest should try to allocate a port for etcd listenPeerURL (#1612)
  • Fix a bug with Limit list opt returning less than expected number of objects in the result. (#1618)
  • fix webhook health check tls handshake timeouts (#1617)
  • fix the typo of certwatcher example test (#1615)
  • Use non blocking file locking for flock library (#1605)

📖 Documentation

  • Update doc.go (#1597)
  • add godoc badge to README (#1596)
  • Remove extraneous "s" in pkg/events in GoDoc (#1466)
  • tmp-logging - fix markdown parsing error (#1584)

🌱 Others

  • Manager should use the global logger, reduce log names verbosity (#1647)
  • Update dependencies August 2021 (#1635)
  • Disable fsync on etcd envtest (#1629)
  • OWNERS_ALIASES: move joelanford to maintainers (#1624)
  • cleanup Use objectutil IsAPINamespaced (#1573)
  • Update k8s.io/* dependencies to 0.22.1 (#1646)
  • Add varshaprasad96 as reviewer (#1614)

Thanks to all our contributors! 😊

v0.9.7

03 Sep 16:14
2d2f85f
Compare
Choose a tag to compare

Changes since v0.9.6

🌱 Others

  • Manager should use the global logger, reduce log names verbosity (#1648)
  • Update dependencies to Kubernetes v1.21.4 (#1634)

Thanks to all our contributors! 😊

v0.9.6

10 Aug 18:37
3c54acb
Compare
Choose a tag to compare

Changes since v0.9.5

🌱 Others

  • Disable fsync starting from etcd 3.5 in envtest (#1630)
  • Fix webhook health check tls handshake timeouts (#1616)

Thanks to all our contributors! 😊

v0.9.5

28 Jul 18:34
8348079
Compare
Choose a tag to compare

Changes since v0.9.3

✨ New Features

  • Update Kubernetes dependencies to v0.21.3 (#1604)
  • Restrict namespace for list/watch based on field selectors (#1602)

🐛 Bug Fixes

  • Use non blocking file locking for flock library (#1605)

Thanks to all our contributors! 😊

v0.9.3

21 Jul 17:46
d5fde10
Compare
Choose a tag to compare

Changes since v0.9.2

✨ New Features

  • Make it possible to monitor if the webhook server has been started (#1598)

Thanks to all our contributors! 😊

v0.9.2

24 Jun 19:25
985e819
Compare
Choose a tag to compare

Changes since v0.9.1

🐛 Bug Fixes

  • Remove advertise-address from testenv api-server (#1562)

🌱 Others

  • addr.Suggest should lock a file instead of memory (#1563)
  • Remove async ginkgo tests (#1564)
  • Limit parallel go test executions on MacOS (#1567)
  • Refactor golangci-lint, enable more linters and add github action (#1566)

Thanks to all our contributors! 😊

v0.9.1

21 Jun 19:27
484f82a
Compare
Choose a tag to compare

Changes since v0.9.0

✨ New Features

  • Finalizer helper library (#1481)

🌱 Others

  • Update dependencies to Kubernetes v1.21.2 (#1561)

Thanks to all our contributors! 😊

v0.9.0

07 Jun 22:42
a905949
Compare
Choose a tag to compare

Changes since v0.8.3

🚨 Significant Changes 🚨

Envtest Refactor & Support for 1.20+ Clusters (#1486)

This adds support for newer Kubernetes clusters, particularly those that require the use of authentication & the secure port, as well as some refactors & deprecation.

By and large, these changes should be transparent for most users.

As a result of the removal of the insecure port in newer k8s versions, authentication & authorization are now on by default in envtest (and the secure port is used by default). The built-in REST config now returns an admin account, meaning perceived impact should be minimal in most cases -- if you're using the built-in Environment.Config, things should just work.

However, if you manually construct new REST configs from raw URLs, things will break. You'll need to migrate to using Environment.AddUser instead.

Additionally, a number of options on ControlPlane & APIServer around the secure & insecure ports are deprecated -- see the docs for more details.

Envtest Setup Tool (#1488)

A new tool has been introduced for setting up envtest binaries at sigs.k8s.io/controller-runtime/tools/setup-envtest. This replaces the existing hack/setup-envtest.sh script, so if you were depending on that, you should switch. See the docs for more information.

Kubernetes Dependencies

Now at v1.21.1.

⚠️ Breaking Changes

  • Update Kubernetes v1.21 dependencies and use Go 1.16 (#1389)
    moderate impact: if you're on an old Go version, it's time to upgrade 😉
  • Envtest should modify CRDs appropriately when using webhooks (#1525)
    minimal impact: one of the methods on WebhookInstallOptions had a signature change. Mostly internal, expected that this method is unlikely to be called directly.
  • Allow setting NewClientFunc w/o implementing an interface (#1473)
    moderate impact: If you're constructing a custom client, this'll change how you do so, but should make it easier in the long run.
  • Support global controller options in component config (#1371)
    minimal impact: adds new method to Manager interface, generally only implemented by CR)
  • Fix race in the delegating logger (#1361)
    minimal impact: exposed piece of internals was changed)
  • Fakeclient: Handle Finalizers (#869)
    moderate impact: Finalizers in the fakeclient now behave similiar to the kube api, i.E. an object with a finalizer will not actually be deleted upon Delete and Updating an object with a DeletionTimestamp to remove the finalizer will result in deletion

✨ New Features

  • Structured args in Testing (#1541) -- the use of templated args (Environment.KubeAPIServerFlags) is now deprecated -- use GetAPIServer().Configure() instead.
  • Clean up pkg/internal/testing (#1540)
  • Cleanup Webhook server setup (#1504)
  • EnvTest Binaries Setup Tool (#1488)
  • Add SelectorsByObject option to cache (#1435)
  • Simple helper for unmanaged webhook server (#1429)
  • pkg/log/zap: clarify zap level vs. logr verbosity (#1485)
  • Add ClientWithWatch for use in CLIs (#1460)
  • Add client.StrategicMergeFrom (#1406)
  • Add tests in controller that use source.Channel (#1373)
  • Revert injection deprecation logging until internal injection code use stops (#1382)
  • Update dependencies to Kubernetes v1.21.1 (#1536)
  • Adding certwatcher as an external package (#1441)
  • Adding TokenReview.auth.k8s.io/v1 webhook support (#1440)

🐛 Bug Fixes

  • Envtest should enable conversion only for convertible GVKs (#1532)
  • Envtest conversion mods should set strategy and review versions (#1531)
  • Honor LeaderElectionReleaseOnCancel (#1523)
  • Fakeclient: Fix List for unregistered type through unstructured (#1521)
  • Metadata client applies patch options (#1508)
  • Fakeclient: Support WithWatch (#1510)
  • Webhook servers should always start before cache syncs (#1512)
  • Add manager.Options.WebhookServer so webhook server can be set (#1500)
  • controllerutil.CreateOrPatch doesn't update not empty Status fields if Spec fields are specified (#1403)
  • Metadata only objects should always preserve GroupVersionKind (#1484)
  • Actually inject the scheme in StandaloneWebhook (#1490)
  • Fakeclient: Do not require ListKind (#1467)
  • Event recorder should not send events when broadcaster is stopped (#1451)
  • Fix the typo of UseExistingCluster comment (#1434)
  • Fix cache sync timeout functionality (#1428)
  • Deflake should update CRDs if already present in the cluster (#1430)
  • Controller: Wait for all reconciliations before shutting down (#1427)
  • Print webhook config options from scratch-env example (#1302)
  • Fix client.Apply and client.Merge to satisfy Patch (#1410)
  • Manager leader election: Don't reset restcfg UserAgent (#1401)
  • Fix a possible temporary directory leak (#1331)
  • Fix a race condition between leader election and recorder (#1379)
  • Handle unstructured CRD objects in envtest webhook mods (#1526)

🌱 Others

  • Use gomodules.xyz/jsonpatch/v2 v2.2.0 (#1533)

Thanks to all our contributors! 😊