Releases: kubernetes-sigs/controller-runtime
v0.10.2
v0.10.1
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
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
v0.9.6
v0.9.5
v0.9.3
v0.9.2
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
v0.9.0
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 -- useGetAPIServer().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! 😊