Releases: kubernetes-sigs/cluster-api
v1.9.3
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.32.x
- Workload Cluster: v1.26.x -> v1.32.x
More information about version support can be found here
Changes since v1.9.2
📈 Overview
- 2 new commits merged
- 1 bug fixed 🐛
🐛 Bug Fixes
- ClusterClass: Export runtime.Client interface and cache package (#11612)
🌱 Others
- Dependency: Bump to golang.org/x/net v0.23.0 (#11618)
Dependencies
Added
Nothing has changed.
Changed
- golang.org/x/net: v0.32.0 → v0.33.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.8.8
👌 Kubernetes version support
- Management Cluster: v1.27.x -> v1.31.x
- Workload Cluster: v1.25.x -> v1.31.x
More information about version support can be found here
Changes since v1.8.7
📈 Overview
- 2 new commits merged
- 1 bug fixed 🐛
🐛 Bug Fixes
- ClusterClass: Export runtime.Client interface and cache package (#11613)
🌱 Others
- Dependency: Bump to golang.org/x/net v0.23.0 (#11619)
Dependencies
Added
Nothing has changed.
Changed
- golang.org/x/net: v0.27.0 → v0.33.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.2
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.32.x
- Workload Cluster: v1.26.x -> v1.32.x
More information about version support can be found here
Changes since v1.9.1
📈 Overview
- 4 new commits merged
🌱 Others
- Cluster: Reconcile topology only when necessary (#11606)
- KCP: Improve KCP scale up when using failure domains (#11604)
- Runtime SDK: Cache DiscoveryVariables calls (#11599)
- util: Add TypedAll, ResourceIsUnchanged and TypedResourceIsUnchanged predicates (#11603)
Dependencies
Added
Nothing has changed.
Changed
Nothing has changed.
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.8.7
👌 Kubernetes version support
- Management Cluster: v1.27.x -> v1.31.x
- Workload Cluster: v1.25.x -> v1.31.x
More information about version support can be found here
Changes since v1.8.6
📈 Overview
- 2 new commits merged
🌱 Others
Dependencies
Added
Nothing has changed.
Changed
- golang.org/x/crypto: v0.25.0 → v0.31.0
- golang.org/x/sync: v0.7.0 → v0.10.0
- golang.org/x/sys: v0.22.0 → v0.28.0
- golang.org/x/term: v0.22.0 → v0.27.0
- golang.org/x/text: v0.16.0 → v0.21.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.1
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.32.x
- Workload Cluster: v1.26.x -> v1.32.x
More information about version support can be found here
Highlights
- Support for Kubernetes v1.32
Changes since v1.9.0
📈 Overview
- 11 new commits merged
- 1 feature addition ✨
✨ New Features
- Testing: Bump Kubernetes in tests to v1.32.0 and claim support for v1.32 (#11565)
🌱 Others
- Dependency: Bump golang.org/x/crypto (#11582)
- e2e: Allow e2e scalability test to have custom deletion timeout (#11574)
- e2e: Bump default kind image to v1.32.0 (#11569)
- Machine: Remove solved todo comment (#11567)
📖 Additionally, there have been 6 contributions to our documentation and book. (#11560, #11561, #11576, #11577, #11583, #11585)
Dependencies
Added
Nothing has changed.
Changed
- golang.org/x/crypto: v0.29.0 → v0.31.0
- golang.org/x/net: v0.31.0 → v0.32.0
- golang.org/x/sync: v0.9.0 → v0.10.0
- golang.org/x/sys: v0.27.0 → v0.28.0
- golang.org/x/term: v0.26.0 → v0.27.0
- golang.org/x/text: v0.20.0 → v0.21.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.0
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.31.x
- Workload Cluster: v1.26.x -> v1.31.x
More information about version support can be found here
Highlights
- Bumped to controller-runtime v0.19, k8s.io/* v0.31, controller-gen v0.16
- Improvements to status fields: (#11105)
- Proposal: Improving status in CAPI resources
- Just a few highlights:
- Overhaul of our contract documentation: Provider contracts
- Implemented v1beta2 conditions for core Cluster API objects
- Huge improvements to
Deleting
conditions of Cluster, KCP, MD, MS and Machines - Added
Available
conditions to Cluster, KCP and MD - Added
ControlPlaneInitialized
,ControlPlaneAvailable
,WorkersAvailable
,RemoteConnectionProbe
, conditions to Cluster - Added
UpToDate
conditions to KCP and MD Machines - Added
ScalingUp
,ScalingDown
,Remediating
,MachinesReady
,MachinesUpToDate
conditions to Cluster, KCP, MD and MS - Significantly improved
Available
,EtcdClusterHealthy
andControlPlaneComponentsHealthy
conditions on KCP - Added
Paused
conditions - Improved counter fields for Cluster, KCP, MD, MS
- Added utils and extended patch helper for v1beta2 conditions
- ClusterCache supersedes the now deprecated ClusterCacheTracker (#11272)
- ClusterClass: Support oneOf/anyOf/allOf/not in variable schemas (#10637)
- Improved logging in predicates (#10959 #11239 #11188)
- KubeadmControlPlane: Implement pre-terminate hook for clean Machine Deletion (#11137)
- KubeadmControlPlane: NamingStrategy for Machines (#11123)
- MachineSetPreflightChecks feature got promoted to beta (#11228)
- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174)
- Machine: Improvements to Node drain:
- Improve Node drain observability (#11074 #11121): documentation: Machine deletion process
- MachineDrainRules Configurable Machine drain behavior (#11240): Proposal: MachineDrainRules
- Stop waiting for detachment of volumes belonging to Pods ignored during drain (#11246 #11386)
- As usual, significantly improved e2e test framework & coverage (e.g. #11066 #11333 #10984 #11082 #11212 #11127 #11362)
- New providers in clusterctl: Canonical (#11337), Nutanix (#11135), Vultr (#11091)
Deprecation and Removals Warning
- API: Deprecated FailureMessage and FailureReason fields (#11317)
- The ClusterCacheTracker component has been deprecated (#11312 #11340), please use the new ClusterCache instead.
- For more context and examples for how to use it, see PR: Introduce new ClusterCache and the corresponding issue
- Please note:
- The DisabledFor option (previously ClientUncachedObjects) is not defaulted to &corev1.ConfigMap & &corev1.Secret anymore, thus it’s now necessary to explicitly set DisabledFor to avoid caching ConfigMaps and Secrets.
- SecretClient and UserAgent are now mandatory options, please take a look at the corresponding godoc.
- The
--clustercachetracker-concurrency
,--clustercachetracker-client-qps
and--clustercachetracker-client-burst
flags on all core CAPI controllers have been renamed to--clustercache-concurrency
,--clustercache-client-qps
and--clustercache-client-burst
- The deprecated
--metrics-bind-addr
flag has been removed (#11140) - Deprecated obsolete
errors
package (#10798) - Deprecated
ClusterCreateInfraReady
andClusterUnpausedAndInfrastructureReady
predicates (#11300)
Changes since v1.8
📈 Overview
- 348 new commits merged
- 5 breaking changes
⚠️ - 33 feature additions ✨
- 40 bugs fixed 🐛
📝 Proposals
- Conditions: Small improvements to the v1beta2 status proposal (#11460)
⚠️ Breaking Changes
- API: Deprecate replica counters planned for removal (#11517)
- Machine: Ignore attached Volumes referred by pods ignored during drain (#11246)
- MachineDeployment: Deprecate MD.Spec.ProgressDeadlineSeconds (#11514)
- util: Fix object logging in predicates (#11239)
- util: Fix object logging in ResourceHasFilterLabel, ResourceNotPaused & ResourceNotPausedAndHasFilterLabel predicates (#11188)
✨ New Features
- API: Add v1beta2 structs to object status (#11234)
- API: Update machine with v1beta2 status (#11276)
- API: Update machineset with v1beta2 status test (#11278)
- ClusterCacheTracker: Add typed watcher to ClusterCache (#11331)
- ClusterCacheTracker: Introduce new ClusterCache (#11247)
- ClusterClass: Add support for oneOf/anyOf/allOf/not ClusterClass variable schema constructs (#10637)
- ClusterClass: Ensure templates are created in the Cluster namespace (#11366)
- clusterctl: Add support for v1beta2 conditions to clusterctl describe (#11277)
- clusterctl: Allow user to suppress API warnings (#11149)
- clusterctl: Suppress "finalizer name" API warnings in "move" command (#11173)
- Core: Add v1beta2 condition to Cluster controller (#11364)
- Dependency: Bump to controller-runtime v0.19 & controller-tools v0.16 (#10803)
- e2e: Bump Kubernetes to v1.31.0-rc.1 (#11021)
- e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10965)
- e2e: Bump Kubernetes version used for testing to v1.32.0-beta.0 (#11388)
- e2e: Detect panics in e2e tests (#11066)
- KCP: Add machine UpToDate condition to KCP (#11389)
- KCP: Add v1beta2 available condition to KCP (#11383)
- KCP: Add v1beta2 Etcd and ControlPlaneComponents conditions to KCP (#11302)
- KCP: Add v1beta2 OwnerRemediated condition to KCP (#11297)
- Logging: Suppress finalizer name API warnings in CAPI, CABPK, and KCP controller logs (#11242)
- Machine: Implement MachineDrainRules (#11353)
- Machine: Introduce Deletion status field and add timestamps for drain and volumeDetach instead of using the condition (#11166)
- Machine: Refactor node drain (#11074)
- MachineDeployment: Add v1beta2 condition to MD controller (#11338)
- MachineHealthCheck: Update MHC with v1Beta2 status (#11290)
- MachineSet: Add machine UpToDate condition to MachineSet (#11393)
- MachineSet: Promote MachineSetPreflightChecks to Beta (#11228)
- KCP/CAPD: Add more v1beta2 conditions to KCP (#11320)
- Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11030)
- Testing: Collect additional logs with CAPD log collector (#11083)
- util: Implement utils for v1beta2 conditions (#10997)
- util: Warning handler that discards messages that match a regular expression (#11179)
🐛 Bug Fixes
- API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10972)
- API: Fix panics in SetV1Beta2Conditions methods (#11369)
- API: Re-add /finalizers subresource RBAC (#11106)
- Bootstrap: Always declare try-or-die-command function in kubeadm-bootstrap-script.sh (#11089)
- CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#10983)
- CAPD: Ensure DockerMachinePool providerIDList is deterministic (#10998)
- CI: Hack: fix the shell used when running pr-verify (#11169)
- CI: Kind: downgrade binary to v0.24.0 to fix building node images for <= v1.30 (#11485)
- Cluster: Disable aggregation of not reported MachinePool conditions for Cluster (#11416)
- Cluster: Fix RuntimeClient nil check in Cluster controller (#11426)
- ClusterCacheTracker: Improve context handling in ClusterCache (#11445)
- ClusterCacheTracker: Try to fix TestClusterCacheHealthCheck test (#11343)
- ClusterClass: Fix nil pointer for empty workers in webhook (#11197)
- ClusterClass: Fix RuntimeClient nil check in ClusterClass controller (#11350)
- clusterctl: Ensure move uses mutated metadata when updating a target object (#10957)
- clusterctl: Fix: considers objects in kube-system for cert-manager to avoid upgrading twice (#11351)
- clusterctl: Handle a nil mutator by returning an error, not panicking (#10951)
- Dependency: Update controller-runtime dependency to v0.18.5 (#11045)
- e2e: Properly display the namespace name in scale test (#11548)
- KCP: Consider all machines for setting .status.version (#11304)
- KCP: Fix TestControlPlane/MachinesUpToDate flake (#11398)
- KCP: Make KCP pre-terminate hook more robust (#11161)
- KCP: Remove etcd member in pre-terminate hook (#11137)
- Logging: Fix predicate logging (#11406)
- Logging: Log errors on specific log levels correctly (#11233)
- Machine: Fix drain log for unreachable Nodes (#11147)
- Machine: Machine Controller should try to retrieve node on delete (#11032)
- Machine: Use correct APIVersion for KCP related exclude (#11492)
- MachineHealthCheck: MHC: fix flaky test (#11506)
- MachineSet: Align "random" deletion policy behavior regarding deletion annotations (#11431)
- Release: Set previous release tag version for RELEASE CANDIDATE/BETA RELEASE (#10435)
- Testing: Add race option to detect raced codes (#10899)
- Testing: Fix CRS test flake (#11009)
- Testing: Fix panics in patch unit tests (#11380)
- Testing: Fix: incorrect name used in kustomize path (#11305)
- Testing: Test/framework isDockerCluster should check that infra ref is present (#10971)
- util: Fix conditions hasSameState nil pointer dereference (#11254)
- util: Fix conditions lexicographicLess nil pointer dereference (#11255)
- util: Fix sorting of v1beta2 conditions when patching (#11326)
- util: Use namespace of the reference o...
v1.8.6
👌 Kubernetes version support
- Management Cluster: v1.27.x -> v1.31.x
- Workload Cluster: v1.25.x -> v1.31.x
More information about version support can be found here
Changes since v1.8.5
📈 Overview
- 8 new commits merged
- 1 bug fixed 🐛
🐛 Bug Fixes
- clusterctl: Fix: considers objects in kube-system for cert-manager to avoid upgrading twice (#11456)
🌱 Others
- clusterctl: Add nutanix ipam & runtime extensions providers (#11414)
- Dependency: Bump github.com/coredns/corefile-migration to v1.0.24 (#11533)
- Dependency: Bump go to v1.22.10 (#11536)
- Dependency: Bump Go version to v1.22.9 (#11410)
- Dependency: Update controller runtime v0.18.6 (#11525)
- e2e: Add dry-run CreateOrUpdate call in clusterctl upgrade e2e tests (#11458)
- e2e: Add retry to clusterctl
UpgradeWithBinary
(#11541)
Dependencies
Added
Nothing has changed.
Changed
- github.com/coredns/corefile-migration: v1.0.23 → v1.0.24
- sigs.k8s.io/controller-runtime: v0.18.5 → v0.18.6
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.7.9
👌 Kubernetes version support
- Management Cluster: v1.26.x -> v1.30.x
- Workload Cluster: v1.24.x -> v1.30.x
More information about version support can be found here
Changes since v1.7.8
📈 Overview
- 6 new commits merged
- 1 bug fixed 🐛
🐛 Bug Fixes
- clusterctl: Fix: considers objects in kube-system for cert-manager to avoid upgrading twice (#11455)
🌱 Others
- clusterctl: Always run crd migration if possible to reduce conversion webhook usage (#11513)
- Dependency: Bump github.com/coredns/corefile-migration to v1.0.24 (#11532)
- Dependency: Bump go 1.22.10 (#11544)
- Dependency: Bump Go version to v1.22.9 (#11420)
- e2e: Add retry to clusterctl
UpgradeWithBinary
(#11542)
Dependencies
Added
Nothing has changed.
Changed
- github.com/coredns/caddy: v1.1.0 → v1.1.1
- github.com/coredns/corefile-migration: v1.0.21 → v1.0.24
Removed
- github.com/OneOfOne/xxhash: v1.2.2
- github.com/alecthomas/template: a0175ee
- github.com/armon/circbuf: bbbad09
- github.com/armon/go-radix: 7fddfc3
- github.com/bgentry/speakeasy: v0.1.0
- github.com/bketelsen/crypt: 5cbc8cc
- github.com/cespare/xxhash: v1.1.0
- github.com/coreos/bbolt: v1.3.2
- github.com/coreos/etcd: v3.3.13+incompatible
- github.com/coreos/pkg: 399ea9e
- github.com/dgrijalva/jwt-go: v3.2.0+incompatible
- github.com/dgryski/go-sip13: e10d5fe
- github.com/ghodss/yaml: v1.0.0
- github.com/go-kit/kit: v0.8.0
- github.com/go-stack/stack: v1.8.0
- github.com/hashicorp/consul/sdk: v0.1.1
- github.com/hashicorp/errwrap: v1.0.0
- github.com/hashicorp/go-msgpack: v0.5.3
- github.com/hashicorp/go-multierror: v1.0.0
- github.com/hashicorp/go-sockaddr: v1.0.0
- github.com/hashicorp/go-syslog: v1.0.0
- github.com/hashicorp/go-uuid: v1.0.1
- github.com/hashicorp/go.net: v0.0.1
- github.com/hashicorp/logutils: v1.0.0
- github.com/hashicorp/mdns: v1.0.0
- github.com/hashicorp/memberlist: v0.1.3
- github.com/konsorten/go-windows-terminal-sequences: v1.0.1
- github.com/kr/logfmt: b84e30a
- github.com/miekg/dns: v1.0.14
- github.com/mitchellh/cli: v1.0.0
- github.com/mitchellh/go-testing-interface: v1.0.0
- github.com/mitchellh/gox: v0.4.0
- github.com/mitchellh/iochan: v1.0.0
- github.com/oklog/ulid: v1.3.1
- github.com/pascaldekloe/goe: 57f6aae
- github.com/pelletier/go-toml: v1.2.0
- github.com/posener/complete: v1.1.1
- github.com/prometheus/tsdb: v0.7.1
- github.com/ryanuber/columnize: 9b3edd6
- github.com/sean-/seed: e2103e2
- github.com/shurcooL/sanitized_anchor_name: v1.0.0
- github.com/spaolacci/murmur3: f09979e
- github.com/spf13/jwalterweatherman: v1.0.0
- gopkg.in/alecthomas/kingpin.v2: v2.2.6
- gopkg.in/resty.v1: v1.12.0
Thanks to all our contributors! 😊
v1.9.0-rc.1
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.31.x
- Workload Cluster: v1.26.x -> v1.31.x
Highlights
- Bumped to controller-runtime v0.19, k8s.io/* v0.31, controller-gen v0.16
- Improvements to status fields: (#11105)
- Proposal: Improving status in CAPI resources
- Just a few highlights:
- Overhaul of our contract documentation: Provider contracts
- Implemented v1beta2 conditions for core Cluster API objects
- Huge improvements to
Deleting
conditions of Cluster, KCP, MD, MS and Machines - Added
Available
conditions to Cluster, KCP and MD - Added
ControlPlaneInitialized
,ControlPlaneAvailable
,WorkersAvailable
,RemoteConnectionProbe
, conditions to Cluster - Added
UpToDate
conditions to KCP and MD Machines - Added
ScalingUp
,ScalingDown
,Remediating
,MachinesReady
,MachinesUpToDate
conditions to Cluster, KCP, MD and MS - Significantly improved
Available
,EtcdClusterHealthy
andControlPlaneComponentsHealthy
conditions on KCP - Added
Paused
conditions - Improved counter fields for Cluster, KCP, MD, MS
- Added utils and extended patch helper for v1beta2 conditions
- ClusterCache supersedes the now deprecated ClusterCacheTracker (#11272)
- ClusterClass: Support oneOf/anyOf/allOf/not in variable schemas (#10637)
- Improved logging in predicates (#10959 #11239 #11188)
- KubeadmControlPlane: Implement pre-terminate hook for clean Machine Deletion (#11137)
- KubeadmControlPlane: NamingStrategy for Machines (#11123)
- MachineSetPreflightChecks feature got promoted to beta (#11228)
- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174)
- Machine: Improvements to Node drain:
- Improve Node drain observability (#11074 #11121): documentation: Machine deletion process
- MachineDrainRules Configurable Machine drain behavior (#11240): Proposal: MachineDrainRules
- Stop waiting for detachment of volumes belonging to Pods ignored during drain (#11246 #11386)
- As usual, significantly improved e2e test framework & coverage (e.g. #11066 #11333 #10984 #11082 #11212 #11127 #11362)
- New providers in clusterctl: Canonical (#11337), Nutanix (#11135), Vultr (#11091)
Deprecation and Removals Warning
- API: Deprecated FailureMessage and FailureReason fields (#11317)
- The ClusterCacheTracker component has been deprecated (#11312 #11340), please use the new ClusterCache instead.
- For more context and examples for how to use it, see PR: Introduce new ClusterCache and the corresponding issue
- Please note:
- The DisabledFor option (previously ClientUncachedObjects) is not defaulted to &corev1.ConfigMap & &corev1.Secret anymore, thus it’s now necessary to explicitly set DisabledFor to avoid caching ConfigMaps and Secrets.
- SecretClient and UserAgent are now mandatory options, please take a look at the corresponding godoc.
- The
--clustercachetracker-concurrency
,--clustercachetracker-client-qps
and--clustercachetracker-client-burst
flags on all core CAPI controllers have been renamed to--clustercache-concurrency
,--clustercache-client-qps
and--clustercache-client-burst
- The deprecated
--metrics-bind-addr
flag has been removed (#11140) - Deprecated obsolete
errors
package (#10798) - Deprecated
ClusterCreateInfraReady
andClusterUnpausedAndInfrastructureReady
predicates (#11300)
Changes since v1.9.0-rc.0
📈 Overview
- 20 new commits merged
- 2 breaking changes
⚠️ - 3 bugs fixed 🐛
⚠️ Breaking Changes
- API: Deprecate replica counters planned for removal (#11517)
- MachineDeployment: Deprecate MD.Spec.ProgressDeadlineSeconds (#11514)
🐛 Bug Fixes
- CI: Kind: downgrade binary to v0.24.0 to fix building node images for <= v1.30 (#11485)
- Machine: Use correct APIVersion for KCP related exclude (#11492)
- MachineHealthCheck: MHC: fix flaky test (#11506)
🌱 Others
- clusterctl: Properly indent multiline lists in clusterctl describe (#11509)
- Conditions: Drop unused v1beta2 conditions and reasons (#11523)
- Conditions: KCP: make EtcdMemberHealthy less verbose on client creation failures (#11510)
- Conditions: Machine: sort list of hooks for stable condition messages (#11488)
- Conditions: Refine v1beta2 summary (#11499)
- Conditions: Refine v1beta2 UpToDate and Rollout conditions (#11507)
- Conditions: Small improvements to v1beta2 conditions godoc (#11528)
- Dependency: Update controller-runtime to v0.19.3 (#11527)
- e2e: Use latest kind image for K8s1.31 in E2E tests (#11511)
- KCP: Drop retry when computing KCP conditions (#11522)
- KCP: Drop unnecessary etcd call from KCP (#11493)
- KCP: Refine KCP's Available, ControlPlaneComponentsHealthy, EtcdClusterHealthy v1beta2 conditions (#11512)
- Machine: Refine v1beta2 NodeHealthy condition (#11497)
- MachineDeployment: Refine MachineDeployment v1beta2 available condition (#11505)
- Release: Update md link check for release-1.9 (#11481)
Dependencies
Added
Nothing has changed.
Changed
- sigs.k8s.io/controller-runtime: v0.19.2 → v0.19.3
Removed
Nothing has changed.
More details about the release
Changes since v1.8.0
📈 Overview
- 342 new commits merged
- 5 breaking changes
⚠️ - 33 feature additions ✨
- 39 bugs fixed 🐛
📝 Proposals
- Conditions: Small improvements to the v1beta2 status proposal (#11460)
⚠️ Breaking Changes
- API: Deprecate replica counters planned for removal (#11517)
- Machine: Ignore attached Volumes referred by pods ignored during drain (#11246)
- MachineDeployment: Deprecate MD.Spec.ProgressDeadlineSeconds (#11514)
- util: Fix object logging in predicates (#11239)
- util: Fix object logging in ResourceHasFilterLabel, ResourceNotPaused & ResourceNotPausedAndHasFilterLabel predicates (#11188)
✨ New Features
- API: Add v1beta2 structs to object status (#11234)
- API: Update machine with v1beta2 status (#11276)
- API: Update machineset with v1beta2 status test (#11278)
- ClusterCacheTracker: Add typed watcher to ClusterCache (#11331)
- ClusterCacheTracker: Introduce new ClusterCache (#11247)
- ClusterClass: Add support for oneOf/anyOf/allOf/not ClusterClass variable schema constructs (#10637)
- ClusterClass: Ensure templates are created in the Cluster namespace (#11366)
- clusterctl: Add support for v1beta2 conditions to clusterctl describe (#11277)
- clusterctl: Allow user to suppress API warnings (#11149)
- clusterctl: Suppress "finalizer name" API warnings in "move" command (#11173)
- Core: Add v1beta2 condition to Cluster controller (#11364)
- Dependency: Bump to controller-runtime v0.19 & controller-tools v0.16 (#10803)
- e2e: Bump Kubernetes to v1.31.0-rc.1 (#11021)
- e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10965)
- e2e: Bump Kubernetes version used for testing to v1.32.0-beta.0 (#11388)
- e2e: Detect panics in e2e tests (#11066)
- KCP: Add machine UpToDate condition to KCP (#11389)
- KCP: Add v1beta2 available condition to KCP (#11383)
- KCP: Add v1beta2 Etcd and ControlPlaneComponents conditions to KCP (#11302)
- KCP: Add v1beta2 OwnerRemediated condition to KCP (#11297)
- KCP/CAPD: Add more v1beta2 conditions to KCP (#11320)
- Logging: Suppress finalizer name API warnings in CAPI, CABPK, and KCP controller logs (#11242)
- Machine: Implement MachineDrainRules (#11353)
- Machine: Introduce Deletion status field and add timestamps for drain and volumeDetach instead of using the condition (#11166)
- Machine: Refactor node drain (#11074)
- MachineDeployment: Add v1beta2 condition to MD controller (#11338)
- MachineHealthCheck: Update MHC with v1Beta2 status (#11290)
- MachineSet: Add machine UpToDate condition to MachineSet (#11393)
- MachineSet: Promote MachineSetPreflightChecks to Beta (#11228)
- Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11030)
- Testing: Collect additional logs with CAPD log collector (#11083)
- util: Implement utils for v1beta2 conditions (#10997)
- util: Warning handler that discards messages that match a regular expression (#11179)
🐛 Bug Fixes
- API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10972)
- API: Fix panics in SetV1Beta2Conditions methods (#11369)
- API: Re-add /finalizers subresource RBAC (#11106)
- Bootstrap: Always declare try-or-die-command function in kubeadm-bootstrap-script.sh (#11089)
- CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#10983)
- CAPD: Ensure DockerMachinePool providerIDList is deterministic (#10998)
- CI: Hack: fix the shell used when running pr-verify (#11169)
- CI: Kind: downgrade binary to v0.24.0 to fix building node images for <= v1.30 (#11485)
- Cluster: Disable aggregation of not reported MachinePool conditions for Cluster (#11416)
- Cluster: Fix RuntimeClient nil check in Cluster controller (#11426)
- ClusterCacheTracker: Improve context handling in ClusterCache (#11445)
- ClusterCacheTracker: Try to fix TestClusterCacheHealthCheck test (#11343)
- Clus...
v1.9.0-rc.0
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.
👌 Kubernetes version support
- Management Cluster: v1.28.x -> v1.31.x
- Workload Cluster: v1.26.x -> v1.31.x
Highlights
- Bumped to controller-runtime v0.19, k8s.io/* v0.31, controller-gen v0.16
- Improvements to status fields: (#11105)
- Proposal: Improving status in CAPI resources
- Just a few highlights:
- Overhaul of our contract documentation: Provider contracts
- Implemented v1beta2 conditions for core Cluster API objects
- Huge improvements to
Deleting
conditions of Cluster, KCP, MD, MS and Machines - Added
Available
conditions to Cluster, KCP and MD - Added
ControlPlaneInitialized
,ControlPlaneAvailable
,WorkersAvailable
,RemoteConnectionProbe
, conditions to Cluster - Added
UpToDate
conditions to KCP and MD Machines - Added
ScalingUp
,ScalingDown
,Remediating
,MachinesReady
,MachinesUpToDate
conditions to Cluster, KCP, MD and MS - Significantly improved
Available
,EtcdClusterHealthy
andControlPlaneComponentsHealthy
conditions on KCP - Added
Paused
conditions - Improved counter fields for Cluster, KCP, MD, MS
- Added utils and extended patch helper for v1beta2 conditions
- ClusterCache supersedes the now deprecated ClusterCacheTracker (#11272)
- ClusterClass: Support oneOf/anyOf/allOf/not in variable schemas (#10637)
- Improved logging in predicates (#10959 #11239 #11188)
- KubeadmControlPlane: Implement pre-terminate hook for clean Machine Deletion (#11137)
- KubeadmControlPlane: NamingStrategy for Machines (#11123)
- MachineSetPreflightChecks feature got promoted to beta (#11228)
- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174)
- Machine: Improvements to Node drain:
- Improve Node drain observability (#11074 #11121): documentation: Machine deletion process
- MachineDrainRules Configurable Machine drain behavior (#11240): Proposal: MachineDrainRules
- Stop waiting for detachment of volumes belonging to Pods ignored during drain (#11246 #11386)
- As usual, significantly improved e2e test framework & coverage (e.g. #11066 #11333 #10984 #11082 #11212 #11127 #11362)
- New providers in clusterctl: Canonical (#11337), Nutanix (#11135), Vultr (#11091)
Deprecation and Removals Warning
- API: Deprecated FailureMessage and FailureReason fields (#11317)
- The ClusterCacheTracker component has been deprecated (#11312 #11340), please use the new ClusterCache instead.
- For more context and examples for how to use it, see PR: Introduce new ClusterCache and the corresponding issue
- Please note:
- The DisabledFor option (previously ClientUncachedObjects) is not defaulted to &corev1.ConfigMap & &corev1.Secret anymore, thus it’s now necessary to explicitly set DisabledFor to avoid caching ConfigMaps and Secrets.
- SecretClient and UserAgent are now mandatory options, please take a look at the corresponding godoc.
- The
--clustercachetracker-concurrency
,--clustercachetracker-client-qps
and--clustercachetracker-client-burst
flags on all core CAPI controllers have been renamed to--clustercache-concurrency
,--clustercache-client-qps
and--clustercache-client-burst
- The deprecated
--metrics-bind-addr
flag has been removed (#11140) - Deprecated obsolete
errors
package (#10798) - Deprecated
ClusterCreateInfraReady
andClusterUnpausedAndInfrastructureReady
predicates (#11300)
Changes since v1.9.0-beta.1
📈 Overview
- 23 new commits merged
- 1 feature addition ✨
- 1 bug fixed 🐛
📝 Proposals
- Conditions: Small improvements to the v1beta2 status proposal (#11460)
✨ New Features
- clusterctl: Add support for v1beta2 conditions to clusterctl describe (#11277)
🐛 Bug Fixes
- MachineSet: Align "random" deletion policy behavior regarding deletion annotations (#11431)
🌱 Others
- CABPK: Add v1beta2 conditions to CABPK (#11452)
- CAPD: Improve CAPD load balancer (#11430)
- clusterctl: Bump cert-manager to v1.16.2 (#11462)
- clusterctl: Do not fail when running clusterctl with a build without GitVersion information (#11468)
- Conditions: Add v1beta2 RollingOut condition (#11463)
- Conditions: Cluster: split MachinesReady and MachinesUpToDate into ControlPlane and Worker specific conditions (#11461)
- Conditions: Crs: implement ResourcesApplied v1beta2 condition (#11467)
- Conditions: KCP: handle members without name in MemberNames (#11446)
- Conditions: Mhc: Don't set OwnerRemediated on deleting machines (#11465)
- e2e: Bump kind to v0.25.0 (#11473)
- KCP: Add test coverage for etcd member list util (#11449)
- KCP: Cache Pods for KCP (#11453)
- KCP: Change Pod does not exist message to allow aggregation (#11447)
- KCP: Refine v1beta2 KCP available condition (#11451)
- KCP: Retry in case of etcd errors in KCP (#11450)
- Machine: Improve Drain for control plane machines (#11457)
- MachineSet: Add MD watch to the MS controller (#11448)
- util: Add new utility function to set LastTransitionTime only when status of condition changes (#11176)
Dependencies
Added
Nothing has changed.
Changed
- github.com/onsi/ginkgo/v2: v2.21.0 → v2.22.0
- github.com/onsi/gomega: v1.35.1 → v1.36.0
- k8s.io/api: v0.31.2 → v0.31.3
- k8s.io/apiextensions-apiserver: v0.31.2 → v0.31.3
- k8s.io/apimachinery: v0.31.2 → v0.31.3
- k8s.io/apiserver: v0.31.2 → v0.31.3
- k8s.io/client-go: v0.31.2 → v0.31.3
- k8s.io/cluster-bootstrap: v0.31.2 → v0.31.3
- k8s.io/code-generator: v0.31.2 → v0.31.3
- k8s.io/component-base: v0.31.2 → v0.31.3
- k8s.io/kms: v0.31.2 → v0.31.3
- sigs.k8s.io/controller-runtime: v0.19.1 → v0.19.2
Removed
Nothing has changed.
More details about the release
Changes since v1.8.0
📈 Overview
- 321 new commits merged
- 3 breaking changes
⚠️ - 33 feature additions ✨
- 36 bugs fixed 🐛
📝 Proposals
- Conditions: Small improvements to the v1beta2 status proposal (#11460)
⚠️ Breaking Changes
- Machine: Ignore attached Volumes referred by pods ignored during drain (#11246)
- util: Fix object logging in predicates (#11239)
- util: Fix object logging in ResourceHasFilterLabel, ResourceNotPaused & ResourceNotPausedAndHasFilterLabel predicates (#11188)
✨ New Features
- API: Add v1beta2 structs to object status (#11234)
- API: Update machine with v1beta2 status (#11276)
- API: Update machineset with v1beta2 status test (#11278)
- ClusterCacheTracker: Add typed watcher to ClusterCache (#11331)
- ClusterCacheTracker: Introduce new ClusterCache (#11247)
- ClusterClass: Add support for oneOf/anyOf/allOf/not ClusterClass variable schema constructs (#10637)
- ClusterClass: Ensure templates are created in the Cluster namespace (#11366)
- clusterctl: Add support for v1beta2 conditions to clusterctl describe (#11277)
- clusterctl: Allow user to suppress API warnings (#11149)
- clusterctl: Suppress "finalizer name" API warnings in "move" command (#11173)
- Core: Add v1beta2 condition to Cluster controller (#11364)
- Dependency: Bump to controller-runtime v0.19 & controller-tools v0.16 (#10803)
- e2e: Bump Kubernetes to v1.31.0-rc.1 (#11021)
- e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10965)
- e2e: Bump Kubernetes version used for testing to v1.32.0-beta.0 (#11388)
- e2e: Detect panics in e2e tests (#11066)
- KCP: Add machine UpToDate condition to KCP (#11389)
- KCP: Add v1beta2 available condition to KCP (#11383)
- KCP: Add v1beta2 Etcd and ControlPlaneComponents conditions to KCP (#11302)
- KCP: Add v1beta2 OwnerRemediated condition to KCP (#11297)
- Logging: Suppress finalizer name API warnings in CAPI, CABPK, and KCP controller logs (#11242)
- Machine: Implement MachineDrainRules (#11353)
- Machine: Introduce Deletion status field and add timestamps for drain and volumeDetach instead of using the condition (#11166)
- Machine: Refactor node drain (#11074)
- MachineDeployment: Add v1beta2 condition to MD controller (#11338)
- MachineHealthCheck: Update MHC with v1Beta2 status (#11290)
- MachineSet: Add machine UpToDate condition to MachineSet (#11393)
- MachineSet: Promote MachineSetPreflightChecks to Beta (#11228)
- KCP/CAPD: Add more v1beta2 conditions to KCP (#11320)
- Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11030)
- Testing: Collect additional logs with CAPD log collector (#11083)
- util: Implement utils for v1beta2 conditions (#10997)
- util: Warning handler that discards messages that match a regular expression (#11179)
🐛 Bug Fixes
- API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10972)
- API: Fix panics in SetV1Beta2Conditions methods (#11369)
- API: Re-add /finalizers subresource RBAC (#11106)
- Bootstrap: Always declare try-or-die-command function in kubeadm-bootstrap-script.sh (#11089)
- CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#10983)
- CAPD: Ensure DockerMachinePool provide...