Releases: kubernetes-sigs/cluster-api
v1.6.0-beta.1
🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
Highlights
- MachinePools are now supported in ClusterClass Clusters
- Metrics, profiling and other diagnostics are now served securely by default
- Types in
ipam.cluster.x-k8s.io
have graduated tov1beta1
Deprecation Warning
- The API version
v1alpha4
is no longer served in this release. - The API version
v1alpha3
has been completely removed in this release. - Flag
--metrics-bind-addr
is deprecated for all controllers
Changes since v1.6.0-beta.0
📈 Overview
- 14 new commits merged
📝 Proposals
- Community meeting: Add proposal for karpenter integration feature group (#9571)
🌱 Others
- API: Ensure we generate all webhook manifests.yaml (#9621)
- CI: Bump tj-actions/changed-files from 39.2.4 to 40.0.0 (#9641)
- Dependency: Bump github.com/go-logr/logr from 1.2.4 to 1.3.0 (#9644)
- Dependency: Bump github.com/onsi/gomega from 1.28.1 to 1.29.0 (#9643)
- Dependency: Bump go.etcd.io/etcd/api/v3 from 3.5.9 to 3.5.10 (#9642)
- Dependency: Bump go.etcd.io/etcd/client/v3 from 3.5.9 to 3.5.10 (#9646)
- Dependency: Bump golang.org/grpc to v1.59.0 (#9626)
- Dependency: Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#9645)
- Release: Capitalize area prefix in release notes by default (#9614)
📖 Additionally, there have been 3 contributions to our documentation and book. (#9565, #9590, #9613)
More details about the release
👌 Kubernetes version support
- Management Cluster: v1.25.x -> v1.28.x
- Workload Cluster: v1.23.x -> v1.28.x
More information about version support can be found here
Changes since v1.5.0
📈 Overview
- 326 new commits merged
- 6 breaking changes
⚠️ - 13 feature additions ✨
- 29 bugs fixed 🐛
📝 Proposals
- Community-meeting: Add proposal for karpenter integration feature group (#9571)
⚠️ Breaking Changes
- API: Remove v1alpha3 API Version (#8997)
- API: Stop serving v1alpha4 API Versions (#8996)
- clusterctl: Improve Context handling in clusterctl (#8939)
- Dependency: Bump to controller-runtime v0.16 (#8999)
- Metrics/Logging: Implement secure diagnostics (metrics, pprof, log level changes) (#9264)
✨ New Features
- API: Add validation to nested ObjectMeta fields (#8431)
- CAPD: Add config maps to CAPD RBAC (#9528)
- CAPD: Allow adding custom HA proxy config for CAPD load balancer (#8785)
- CAPD: Initialize configmap object before getting it (#9529)
- ClusterClass: Add topology-owned label to MachineHealthChecks. (#9191)
- ClusterClass: Introduce NamingStrategy and allow generating names using go templates (#9340)
- ClusterClass: Update API with ClusterClass MachinePool support (#8820)
- clusterctl: Block move with annotation (#8690)
- IPAM: Promote IPAM types to v1beta1 (#9525)
- MachinePool: Add MachinePool workers support in ClusterClass (#9016)
- MachineSet: Adjust preflight check to allow kubelet version skew of 3 for clusters running v1.28 and above (#9222)
- Testing/Documentation: V1.28: Prepare quickstart, capd and tests for the new release including kind bump (#9160)
- Release: Add automation to create release branch and tags (#9111)
🐛 Bug Fixes
- CAPBK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9167)
- CAPD: Delete container after failed start to work around port allocation issues (#9125)
- ClusterClass: Fix ClusterClass enqueue for ExtensionConfig (#9133)
- ClusterClass: Topology: fix namingstrategy webhook to not use uppercase characters for testing the template and align unit test to e2e test (#9425)
- Dependency: Bump golang.org/x/net to v0.13.0 (#9121)
- Dependency: Bump to docker v24.0.5-0.20230714235725-36e9e796c6fc (#9038)
- Devtools: Adding metrics container port in tilt-prepare only if it's missing (#9308)
- Devtools: Allow duplicate objects in Tiltfile (#9302)
- Devtools: Change tilt debug base image to golang (#9070)
- Devtools: Fix tilt-prepare leader-elect setting (#9315)
- Devtools: Pin Plantuml version (#9424)
- Devtools: Tilt: ensure .tiltbuild/bin directory is created early enough, add tilt troubleshooting guide (#9165)
- Documentation: Fix doctoc detection in verify-doctoc.sh (#9112)
- e2e: Drop MachinePools from Dualstack tests (#9477)
- e2e: Fix autoscaler image repo (#9353)
- e2e: Test: pin conformance image to a version which includes a fix for the dualstack tests (#9252)
- KCP: Allow to drop useExperimentalRetryJoin field from KubeadmControlPlane.kubeadmConfigSpec (#9170)
- KCP: Fix KCP Controller reconcile always return error when workload cluster is unreachable (#9342)
- KCP: Requeue KCP object if ControlPlaneComponentsHealthyCondition is not yet true (#9032)
- Machine: Retry Node delete when CCT is locked (#9570)
- MachineDeployment: MD controller: use regular random suffix for MachineSets, ensure max length 63 (#9298)
- MachineHealthCheck: Fix excessive trace logging in the machine health check controller (#9419)
- Release: Alphabetically sorting release tool output (#9055)
- Release: Deduplicating area in pr title in release notes (#9186)
- Release: Fix go install path for kpromo v4.0.4 (#9336)
- Release: Generate warning when release notes can not be generated (#9163)
- Release: Hack/release-notes: ensure relase notes tool can be used for external projects again (#9018)
- Release: Reverts pull request from cahillsf/improve-release-speed (#9465)
- util: Fix AddAnnotations for unstructured.Unstructured (#9164)
🌱 Others
- API: Add ClusterClass column to Cluster CRD (#9120)
- API: Add verify-import-restrictions to enforce import restrictions (#9407)
- API: Enforce import restrictions in all API packages (#9461)
- API: Ensure we generate all webhook manifests.yaml (#9621)
- API: Move API v1beta1 webhooks to a separate package (#9047)
- API: Move docker infrastructure experimental API v1beta1 webhooks to sepa… (#9460)
- API: Move docker infrastructure API v1beta1 webhooks to separate package (#9458)
- API: Move experimental addons API v1beta1 webhooks to separate package (#9438)
- API: Move experimental API v1beta1 webhooks to separate package (#9417)
- API: Move inmemory infrastructure API v1beta1 webhooks to separate package (#9459)
- API: Move Kubeadm API v1beta1 webhooks to separate package (#9410)
- API: Remove files and markers for Kubebuilder (#9344)
- API: Remove reliance on controller-runtime scheme builder (#9045)
- API: Remove reliance on controller-runtime scheme builder for experimental APIs (#9185)
- API: Remove reliance on controller-runtime scheme builder for remaining API groups (#9266)
- API: Remove the dependency on cluster-api/utils from addons API (#9482)
- API: Test and document controller ownerReferences (#9153)
- CAPBK: Remove Kubeadm upstream v1beta1 types (#9345)
- CAPD: Fix multi error handling in RunContainer (#9139)
- CI: Add colored-line-number output for golangci-lint action (#9147)
- CI: Add dependabot for test and hack/tools module (#9041)
- CI: Add exclude for Kustomize API to dependabot config (#9059)
- CI: Add licence-scan for pull requests (#9184)
- CI: Add loggercheck linter and fix findings (#9446)
- CI: Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#9144)
- CI: Bump actions/cache from 3.3.1 to 3.3.2 (#9395)
- CI: Bump actions/checkout from 4.1.0 to 4.1.1 (#9611)
- CI: Bump actions/setup-go from 4.0.1 to 4.1.0 (#9187)
- CI: Bump apidiff to v0.7.0 (#9472)
- CI: Bump golangci-lint to v1.54.1 (#9174)
- CI: Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#9261)
- CI: Bump tj-actions/changed-files from 39.2.4 to 40.0.0 (#9641)
- CI: Bump Trivy to v0.45.1 (#9445)
- CI: Fix .golangci.yml comments (#9499)
- CI: Ginkgolinter: forbid focus container (#9320)
- CI: Github: add edited and reopened as triggers for the GH workflow approval (#9259)
- CI: Github: add workflow to auto-approve golangci-lint if ok-to-test label is set (#9244)
- CI: Go.mod reformat to have only two require blocks (#9192)
- CI: Golangci-lint: replace deprecated local-prefixes setting for gci (#9339)
- CI: Make GO_ARCH explicit in verify_containter script (#9341)
- CI: Update actions for 1.5 and make names consistent (#9115)
- CI: Verify plantuml image generation in CI (#9363)
- ClusterCacheTracker: Add separate concurrency flag for cluster cache tracker (#9116)
- ClusterCacheTracker: Ensure Get/List calls are not getting stuck when apiserver is unreachable (#9028)
- ClusterCacheTracker: Fix accessor deletion on health check failure (#9025)
- ClusterClass: Add ownerRefs to BootstrapConfig/InfraMachinePool in classy Clusters (#9389)
- ClusterClass: Embed ssa.FilterObjectInput into HelperOption to remove duplication (#9512)
- ClusterClass: Fix some nits in Cluster topology engine tests (#9464)
- ClusterClass: Improve Cluster variable defaulting/validation errors (#9452)
- ClusterClass: Improve message for TopologyReconciledCondition (#9400)
- ClusterClass: Make ClusterClass generated object names consistent (#9254)
- ClusterClass: Minor fixes for CC+MP implementation (#9318)
- clusterctl: Check resource blocking clusterctl move during discovery (#9246)
- clusterctl: Use goproxy to chec...
v1.6.0-beta.0
🚨 This is a BETA release. Use it only for testing purposes. If you find any bugs, file an issue.
Highlights
- MachinePools are now supported in ClusterClass Clusters
- Metrics, profiling and other diagnostics are now served securely by default
- Types in
ipam.cluster.x-k8s.io
have graduated tov1beta1
Deprecation Warning
- The API version
v1alpha4
is no longer served in this release. - The API version
v1alpha3
has been completely removed in this release. - Flag
--metrics-bind-addr
is deprecated for all controllers
More details about the release
👌 Kubernetes version support
- Management Cluster: v1.25.x -> v1.28.x
- Workload Cluster: v1.23.x -> v1.28.x
More information about version support can be found here
Changes since v1.5.0
📈 Overview
- 310 new commits merged
- 6 breaking changes
⚠️ - 13 feature additions ✨
- 28 bugs fixed 🐛
⚠️ Breaking Changes
- API: Remove v1alpha3 API Version (#8997)
- API: Stop serving v1alpha4 API Versions (#8996)
- clusterctl: Improve Context handling in clusterctl (#8939)
- Dependency: Bump to controller-runtime v0.16 (#8999)
- Metrics/Logging: Implement secure diagnostics (metrics, pprof, log level changes) (#9264)
✨ New Features
- API: Add validation to nested ObjectMeta fields (#8431)
- CAPD: Add config maps to CAPD RBAC (#9528)
- CAPD: Allow adding custom HA proxy config for CAPD load balancer (#8785)
- CAPD: Initialize configmap object before getting it (#9529)
- ClusterClass: Add topology-owned label to MachineHealthChecks. (#9191)
- ClusterClass: Introduce NamingStrategy and allow generating names using go templates (#9340)
- ClusterClass: Update API with ClusterClass MachinePool support (#8820)
- clusterctl: Block move with annotation (#8690)
- IPAM: Promote IPAM types to v1beta1 (#9525)
- MachinePool: Add MachinePool workers support in ClusterClass (#9016)
- MachineSet: Adjust preflight check to allow kubelet version skew of 3 for clusters running v1.28 and above (#9222)
- Release: Add automation to create release branch and tags (#9111)
- Testing/documentation: V1.28: Prepare quickstart, capd and tests for the new release including kind bump (#9160)
🐛 Bug Fixes
- CAPBK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9167)
- CAPD: Delete container after failed start to work around port allocation issues (#9125)
- ClusterClass: Fix ClusterClass enqueue for ExtensionConfig (#9133)
- ClusterClass: Topology: fix namingstrategy webhook to not use uppercase characters for testing the template and align unit test to e2e test (#9425)
- Dependency: Bump golang.org/x/net to v0.13.0 (#9121)
- Dependency: Bump to docker v24.0.5-0.20230714235725-36e9e796c6fc (#9038)
- Devtools: Adding metrics container port in tilt-prepare only if it's missing (#9308)
- Devtools: Allow duplicate objects in Tiltfile (#9302)
- Devtools: Change tilt debug base image to golang (#9070)
- Devtools: Fix tilt-prepare leader-elect setting (#9315)
- Devtools: Pin Plantuml version (#9424)
- Devtools: Tilt: ensure .tiltbuild/bin directory is created early enough, add tilt troubleshooting guide (#9165)
- e2e: Drop MachinePools from Dualstack tests (#9477)
- e2e: Fix autoscaler image repo (#9353)
- e2e: Test: pin conformance image to a version which includes a fix for the dualstack tests (#9252)
- KCP: Allow to drop useExperimentalRetryJoin field from KubeadmControlPlane.kubeadmConfigSpec (#9170)
- KCP: Fix KCP Controller reconcile always return error when workload cluster is unreachable (#9342)
- KCP: Requeue KCP object if ControlPlaneComponentsHealthyCondition is not yet true (#9032)
- Machine: Retry Node delete when CCT is locked (#9570)
- MachineDeployment: MD controller: use regular random suffix for MachineSets, ensure max length 63 (#9298)
- MachineHealthCheck: Fix excessive trace logging in the machine health check controller (#9419)
- Release: Alphabetically sorting release tool output (#9055)
- Release: Deduplicating area in pr title in release notes (#9186)
- Release: Fix go install path for kpromo v4.0.4 (#9336)
- Release: Generate warning when release notes can not be generated (#9163)
- Release: Hack/release-notes: ensure relase notes tool can be used for external projects again (#9018)
- Release: Reverts pull request from cahillsf/improve-release-speed (#9465)
- util: Fix AddAnnotations for unstructured.Unstructured (#9164)
🌱 Others
- API: Add ClusterClass column to Cluster CRD (#9120)
- API: Add verify-import-restrictions to enforce import restrictions (#9407)
- API: Enforce import restrictions in all API packages (#9461)
- API: Move API v1beta1 webhooks to a separate package (#9047)
- API: Move docker infrastructure experimental API v1beta1 webhooks to sepa… (#9460)
- API: Move docker infrastructure API v1beta1 webhooks to separate package (#9458)
- API: Move experimental addons API v1beta1 webhooks to separate package (#9438)
- API: Move experimental API v1beta1 webhooks to separate package (#9417)
- API: Move inmemory infrastructure API v1beta1 webhooks to separate package (#9459)
- API: Move Kubeadm API v1beta1 webhooks to separate package (#9410)
- API: Remove files and markers for Kubebuilder (#9344)
- API: Remove reliance on controller-runtime scheme builder (#9045)
- API: Remove reliance on controller-runtime scheme builder for experimental APIs (#9185)
- API: Remove reliance on controller-runtime scheme builder for remaining API groups (#9266)
- API: Remove the dependency on cluster-api/utils from addons API (#9482)
- API: Test and document controller ownerReferences (#9153)
- CAPBK: Remove Kubeadm upstream v1beta1 types (#9345)
- CAPD: Fix multi error handling in RunContainer (#9139)
- CI: Add colored-line-number output for golangci-lint action (#9147)
- CI: Add dependabot for test and hack/tools module (#9041)
- CI: Add exclude for Kustomize API to dependabot config (#9059)
- CI: Add licence-scan for pull requests (#9184)
- CI: Add loggercheck linter and fix findings (#9446)
- CI: Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#9144)
- CI: Bump actions/cache from 3.3.1 to 3.3.2 (#9395)
- CI: Bump actions/checkout from 4.1.0 to 4.1.1 (#9611)
- CI: Bump actions/setup-go from 4.0.1 to 4.1.0 (#9187)
- CI: Bump apidiff to v0.7.0 (#9472)
- CI: Bump golangci-lint to v1.54.1 (#9174)
- CI: Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#9261)
- CI: Bump tj-actions/changed-files from 39.2.2 to 39.2.4 (#9610)
- CI: Bump Trivy to v0.45.1 (#9445)
- CI: Fix .golangci.yml comments (#9499)
- CI: Ginkgolinter: forbid focus container (#9320)
- CI: Github: add edited and reopened as triggers for the GH workflow approval (#9259)
- CI: Github: add workflow to auto-approve golangci-lint if ok-to-test label is set (#9244)
- CI: Go.mod reformat to have only two require blocks (#9192)
- CI: Golangci-lint: replace deprecated local-prefixes setting for gci (#9339)
- CI: Make GO_ARCH explicit in verify_containter script (#9341)
- CI: Update actions for 1.5 and make names consistent (#9115)
- CI: Verify plantuml image generation in CI (#9363)
- ClusterCacheTracker: Add separate concurrency flag for cluster cache tracker (#9116)
- ClusterCacheTracker: Ensure Get/List calls are not getting stuck when apiserver is unreachable (#9028)
- ClusterCacheTracker: Fix accessor deletion on health check failure (#9025)
- ClusterClass: Add ownerRefs to BootstrapConfig/InfraMachinePool in classy Clusters (#9389)
- ClusterClass: Embed ssa.FilterObjectInput into HelperOption to remove duplication (#9512)
- ClusterClass: Fix some nits in Cluster topology engine tests (#9464)
- ClusterClass: Improve Cluster variable defaulting/validation errors (#9452)
- ClusterClass: Improve message for TopologyReconciledCondition (#9400)
- ClusterClass: Make ClusterClass generated object names consistent (#9254)
- ClusterClass: Minor fixes for CC+MP implementation (#9318)
- clusterctl: Check resource blocking clusterctl move during discovery (#9246)
- clusterctl: Use goproxy to check version in clusterctl (#9237)
- clusterctl: Use http get to download files from GitHub in clusterctl (#9236)
- Dependency: Bump cert-manager to v1.13.1 (#9505)
- Dependency: Bump cloud.google.com/go/storage from 1.32.0 to 1.33.0 in /hack/tools (#9423)
- Dependency: Bump controller tools to v1.13.0 (#9221)
- Dependency: Bump controller-runtime to v0.16.3 (#9592)
- Dependency: Bump conversion-gen to v0.28 (#9267)
- Dependency: Bump corefile-migration library to v1.0.21 (#9307)
- Dependency: Bump docker to v24.0.5 (#9064)
- Dependency: Bump envtest binaries to 1.28 (#9268)
- Dependency: Bump github.com/blang/semver to v4 (#9189)
- Dependency: Bump github.com/docker/distribution (#9544)
- Dependency: Bump github.com/docker/docker from 24.0.5+incompatible to 24.0.6+incompatible in /test (#9377)
- Dependency: Bump github.com/emicklei/go-restful/v3 from 3.10.2 to 3.11.0 in /test (#9272)
- Dependency: Bump github.com/evanphx/json-patch/v5 from 5.6.0 to 5.7.0 (#9397)
- Dependency: Bump github.com/google/go-cmp from 0.5.9 to 0.6.0 (#9562)
- Dependency: Bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 (#9533)
- Dependency: Bump github.com/onsi/gomega ...
v1.5.3
👌 Kubernetes version support
- Management Cluster: v1.24.x -> v1.28.x
- Workload Cluster: v1.22.x -> v1.28.x
More information about version support can be found here
Changes since v1.5.2
📈 Overview
- 10 new commits merged
- 2 bugs fixed 🐛
🐛 Bug Fixes
🌱 Others
- Dependency: Bump cert-manager to v1.13.1 (#9507)
- Dependency: Bump Go to v1.20.10 (#9552)
- Dependency: Bump go.opentelemetry.io/* dependencies (#9599)
- Dependency: Bump golang.org/x/net to v0.17.0 (#9595)
- e2e: Add log level for kube components patch to ClusterClass (#9501)
- Release: Improve release staging build speed (#9555)
📖 Additionally, there have been 2 contributions to our documentation and book. (#9518, #9596)
Note: Due to an issue in our build the test-extension arm64 & s390x images contain the CAPD binary. The issue has been resolved and the v1.5.4 images will have the correct binary again.
Thanks to all our contributors! 😊
v1.4.8
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.27.x
- Workload Cluster: v1.21.x -> v1.27.x
More information about version support can be found here
Changes since v1.4.7
📈 Overview
- 7 new commits merged
- 2 bugs fixed 🐛
🐛 Bug Fixes
- Machine: Retry Node delete when CCT is locked (#9583)
- Machine: Revert ErrClusterLocked check in Machine controller (#9588)
🌱 Others
- Dependency: Bump cert-manager to v1.13.1 (#9508)
- Dependency: Bump Go to v1.20.10 (#9553)
- Dependency: Bump golang.org/x/net to v0.17.0 (#9594)
- Release: Improve release staging build speed (#9554)
📖 Additionally, there has been 1 contribution to our documentation and book. (#9597)
Thanks to all our contributors! 😊
v1.5.2
👌 Kubernetes version support
- Management Cluster: v1.24.x -> v1.28.x
- Workload Cluster: v1.22.x -> v1.28.x
More information about version support can be found here
Changes since v1.5.1
📈 Overview
- 19 new commits merged
- 1 feature addition ✨
- 4 bugs fixed 🐛
✨ New Features
- ClusterClass: Introduce NamingStrategy and allow generating names using go templates (#9428)
🐛 Bug Fixes
- e2e: Fix autoscaler image repo (#9357)
- KCP: Fix KCP Controller reconcile always return error when workload cluster is unreachable (#9449)
- MachineHealthCheck: Fix excessive trace logging in the machine health check controller (#9426)
- Testing: Don't use v1alpha3 in clusterctl upgrade test (#9412)
🌱 Others
- ClusterClass: Improve Cluster variable defaulting/validation errors (#9479)
- ClusterClass: Improve message for TopologyReconciledCondition (#9401)
- Dependency: Bump cert-manager to v1.13.0 (#9413)
- Dependency: Bump to Go 1.20.8 (#9383)
- e2e: Bump autoscaler to v1.28.0 (#9351)
- KCP: Remove redundant GetRESTConfig in KCP Management.GetWorkloadCluster (#9451)
- Runtime SDK: Improve ClusterClass watch for ExtensionConfigs (#9356)
📖 Additionally, there have been 6 contributions to our documentation and book. (#9365, #9430, #9435, #9466, #9470, #9491)
Thanks to all our contributors! 😊
v1.4.7
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.27.x
- Workload Cluster: v1.21.x -> v1.27.x
More information about version support can be found here
Changes since v1.4.6
📈 Overview
- 10 new commits merged
- 2 bugs fixed 🐛
🐛 Bug Fixes
- KCP: Fix KCP Controller reconcile always return error when workload cluster is unreachable (#9450)
- MachineHealthCheck: Fix excessive trace logging in the machine health check controller (#9427)
🌱 Others
- Dependency: Bump cert-manager to v1.13.0 (#9414)
- Dependency: Bump to Go 1.20.8 (#9432)
- KCP: Remove redundant GetRESTConfig in KCP Management.GetWorkloadCluster (#9453)
📖 Additionally, there have been 3 contributions to our documentation and book. (#9366, #9431, #9492)
Thanks to all our contributors! 😊
v1.5.1
👌 Kubernetes version support
- Management Cluster: v1.24.x -> v1.28.x
- Workload Cluster: v1.22.x -> v1.28.x
More information about version support can be found here
Changes since v1.5.0
📈 Overview
- 35 new commits merged
- 2 feature additions ✨
- 10 bugs fixed 🐛
✨ New Features
- MachineSet: Adjust preflight check to allow kubelet version skew of 3 for clusters running v1.28 and above (#9233)
- Testing/documentation: v1.28: Prepare quickstart, capd and tests for the new release including kind bump (#9225)
🐛 Bug Fixes
- CAPBK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9230)
- CAPD: Delete container after failed start to work around port allocation issues (#9130)
- ClusterClass: Add topology-owned label to MachineHealthChecks. (#9204)
- ClusterClass: Fix ClusterClass enqueue for ExtensionConfig (#9137)
- Devtools: Fix tilt-prepare leader-elect setting (#9316)
- e2e: Pin conformance image to a version which includes a fix for the dualstack tests (#9256)
- KCP: Allow unsetting useExperimentalRetryJoin field from KubeadmControlPlane (#9202)
- MachineDeployment: MD controller: use regular random suffix for MachineSets, ensure max length 63 (#9329)
- util: Fix AddAnnotations for unstructured.Unstructured (#9176)
🌱 Others
- CAPD: Fix multi error handling in RunContainer (#9243)
- CI: Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#9179)
- CI: Update base branch for link checker (#9207)
- clusterctl: Set controller-runtime logger for clusterctl (#9129)
- clusterctl: Update cert-manager to v1.12.3 (#9198)
- Dependency: Bump controller-runtime to v0.15.1 (#9127)
- Dependency: Bump corefile-migration library to v1.0.21 (#9309)
- Dependency: Bump envtest binaries to 1.28 (#9304)
- Dependency: Bump golang.org/x/net to v0.13.0 (#9122)
- Dependency: Bump to Go 1.20.7 (#9105)
- e2e: Add back flavor to Waiter interface (#9177)
- e2e: Add CRS re-reconcile to ownerReference test (#9301)
- e2e: Add test for ownerReference apiVersion update (#9297)
- e2e: Refactor e2e ownerRef test utils (#9314)
- e2e: Test and document controller ownerReferences (#9303)
- logging: Fix patch errors not being logged (#9234)
📖 Additionally, there have been 8 contributions to our documentation and book. (#9332, #9226, #9205, #9238, #9154, #9117, #9090, #9082)
Thanks to all our contributors! 😊
v1.4.6
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.27.x
- Workload Cluster: v1.21.x -> v1.27.x
More information about version support can be found here
Changes since v1.4.5
📈 Overview
- 20 new commits merged
- 9 bugs fixed 🐛
🐛 Bug Fixes
- CAPBK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9231)
- CAPD: Delete container after failed start to work around port allocation issues (#9131)
- ClusterClass: Add topology-owned label to MachineHealthChecks. (#9203)
- ClusterClass: Fix ClusterClass enqueue for ExtensionConfig (#9138)
- Devtools: Fix tilt-prepare leader-elect setting (#9317)
- KCP: Allow unsetting useExperimentalRetryJoin field from KubeadmControlPlane (#9201)
- MachineDeployment: MD controller: use regular random suffix for MachineSets, ensure max length 63 (#9330)
- util: Fix AddAnnotations for unstructured.Unstructured (#9178)
🌱 Others
- CAPD: Fix multi error handling in RunContainer (#9242)
- CI: Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#9180)
- CI: Update base branch for link checker (#9206)
- Dependency: Bump corefile-migration library to v1.0.21 (#9310)
- Dependency: Bump golang.org/x/net to v0.13.0 (#9123)
- Dependency: Bump to Go 1.19.12 (#9106)
- Dependency: Update cert-manager to v1.12.3 (#9199)
- logging: Fix patch errors not being logged (#9235)
📖 Additionally, there have been 4 contributions to our documentation and book. (#9333, #9245, #9155, #9118)
Thanks to all our contributors! 😊
v1.5.0
👌 Kubernetes version support
- Management Cluster: v1.24.x -> v1.27.x
- Workload Cluster: v1.22.x -> v1.27.x
More information about version support can be found here
Highlights
- MS preflight checks to improve cluster stability (behind feature gate).
- Support for concurrent MachineDeployment upgrades in classy clusters.
- Support for add-on providers in clusterctl.
- Performance improvements when using CAPI at scale, new dev-tools and a new in-memory infrastructure provider for scale testing.
- MachinePool Machines improve MachinePool observability.
- clusterctl plugins allow custom code to be called from clusterctl.
- More metrics have been enabled through a custom Kube State Metrics config, and example Grafana, Prometheus and other observability tool configurations have been added to the repo.
- Cluster controller now avoids double rollouts during Kubernetes upgrades of classy clusters.
Deprecation warning
The API version v1alpha3 is no longer served in this release. API version v1alpha4 is deprecated and will be removed in v1.6.
Cluster API v1.4 compared to v1.5
See the Cluster-API book for an overview over relevant changes between Cluster API v1.4 and v1.5 for maintainers of providers and consumers of our Go API.
Full list of changes since v1.4.0
📈 Overview
- 335 new commits merged
- 4 breaking changes
⚠️ - 19 feature additions ✨
- 67 bugs fixed 🐛
⚠️ Breaking Changes
- API: Stop serving v1alpha3 API types (#8549)
- clusterctl: Follow XDG Directory standard for config/data/... files (#6913)
- Dependency: Bump to CR v0.15.0 (#8007)
✨ New Features
- CAPBK: Use caching read for bootstrap config owner (#8867)
- CAPD: Use k8s v1.27.0 in quickstart docs and CAPD (#8518)
- CAPIM: Enable Kubernetes upgrades in CAPIM (#8938)
- CAPIM: Add in memory provider (#8799)
- ClusterClass: add support or concurrent MD upgrades in classy clusters (#8432)
- ClusterClass: Add webhook warning for missing ClusterClass (#8746)
- clusterctl: Add MachinePool Machine support in clusterctl discovery (#8836)
- clusterctl: Add support for add-on providers in clusterctl (#8472)
- clusterctl: Accept resource mutators in Move operation (#7966)
- clusterctl: Introduce possibility to create clusterctl plugins (#8957)
- Devtools: hack/observability bump kube-state-metrics chart to get version v2.9.2 (#8979)
- Devtools: hack/observability: Add Parca, Bump observability tools, Add Grafana scale dashboard (#8754)
- Devtools: hack/observability: improve dashboards (#8964)
- e2e: collect debug information about leftover processes (#8734)
- IPAM: Implements Getter interface for IPAddressClaim object (#8374)
- Machine: Enable configuring the kubernetes rest client timeout for draining nodes (#8917)
- MachinePool: Add MachinePool Machine implementation in core CAPI components (#8828)
- MachineSet: MS preflight checks to improve cluster stability (#8595)
- KCP/Core/CAPD: Add flags for configuring rate limits (#8579)
- util: Move mergeMap to util (#8377)
🐛 Bug Fixes
- API: only set finalizers if deletionTimestamp is not set (#8949)
- API: Ensure ownerReference apiVersions are always up to date (#8256)
- CAPBK: ignition: start kubeadm after network.target (#8772)
- CAPBK: set uninitialized taint only on worker nodes (#8358)
- CAPD: Add kind mapper (#8880)
- CAPD: change the haproxy entrypoint to prevent getting stopped immediately after start (#8685)
- CAPD: Implement watch filter (#8789)
- CAPD: Delegate CAPD port selection to the container runtime (#8642)
- CAPD: fix kind mapper entry for v1.25.11 (#8914)
- CAPD: test/e2e fix fail-swap-on=false flag not being part of kind images anymore (#8767)
- CAPIM: fix cluster deletion in the in-memory API server (#8818)
- CAPIM: fix inmemory provider docker build (#8822)
- CAPIM: test/e2e/in-memory: set providerID after VM is provisioned (#8879)
- CI: Always build Kind images for upgrade tests (#8859)
- CI: Ensure ALWAYS_BUILD_KIND_IMAGES is defaulted correctly in ci script (#8873)
- CI: use pull_request instead of pull_request_target (#8635)
- ClusterCacheTracker: Stop pod caching when checking workload cluster (#8850)
- ClusterClass: avoid errors when MHC and upgrade occur together in classy clusters (#8464)
- ClusterClass: Drop uid from error messages (#8333)
- ClusterClass: topology controller should avoid unnecessary rollouts during upgrades (#8628)
- ClusterClass: update TopologyReconciled condition on cluster deletion (#8422)
- ClusterClass: Validate variables in defaulting webhook (#8332)
- clusterctl: Add soft ownership from clusters to ClusterResourceSetBinding (#8318)
- clusterctl: return early if release for latest tag does not exist yet (#8253)
- clusterctl: Ensure all GitHub releases are fetched when searching provider versions (#8240)
- clusterctl: handle nil pointer in clusterctl describe (#8724)
- clusterctl: Return error on infra cluster and control plane discovery (#8604)
- clusterctl: Use local kustomize version in create-local-repository.py (#8414)
- ClusterResourceSet: Make sure the Kubernetes API Server service already created on remote cluster before applying ClusterResourceSets (#8048)
- ClusterResourceSet: continue applying when apply for a single cluster failed (#8611)
- Dependency: Bump to docker v24.0.5-0.20230714235725-36e9e796c6fc (#9042)
- Dependency: Update kindnetd and kindest/haproxy (#8469)
- Devtools: Change tilt debug base image to golang (#9072)
- Devtools: fix build_engine setting when using podman (#8972)
- Devtools: set CR logger in tilt-prepare, fix allowed contexts (#8919)
- Devtools: Update clean-charts make target for new paths (#8904)
- e2e: Adjust machinepool helper e2e timeout (#8739)
- e2e: Fix length check in MD helper (#8352)
- e2e: Ignore cert annotation in rollout test (#8761)
- e2e: Increase timeout for clusterclass rollout test (#8897)
- e2e: Increased assertClusterObjects timeout (#8758)
- e2e: Pin kindest/node images to known good versions in clusterctl upgrade tests (#8860)
- e2e: Remove non-functioning ginkgo.no-color flag (#8703)
- e2e: Revert "Add calico as e2e test CNI" (#8575)
- e2e: check for machines being ready after provisioning on Runtime SDK test (#8625)
- e2e: use topology cluster-template for clusterctl upgrade mgmt cluster (#8311)
- e2e: test/framework fix docker pod log collector (#8634)
- IPAM: fix gateway being required for IPAddress (#8506)
- KCP: Allow machine rollout if cert reconcile fails (#8711)
- KCP: enable updates from CloudInit (mostly ubuntu) based KCPs to Ignition (flatcar) based KCPs (#8339)
- KCP: Ensure nil-pointer check in KCP syncMachines (#8481)
- KCP: Prevent KCP to create many private keys for each reconcile (#8617)
- KCP: requeue KCP object if ControlPlaneComponentsHealthyCondition is not yet true (#9035)
- Machine: bug fix to set node interruptible label (#8297)
- Machine: fix node label propagation (#8427)
- MachinePool: Add node watcher to MachinePool controller (#8443)
- MachinePool: Fix MachinePool node taint patching (#8462)
- MachinePool: always patch owned conditions, fix GetTypedPhase, doc fixes (#8627)
- MachinePool: Update MachinePool bootstrap dataSecretName when bootstrap config changes (#8667)
- Release: Alphabetically sorting release tool output (#9060)
- Release: ensure relase notes tool can be used for external projects again (#9021)
- Testing: Catch failure when fetching component URLs (#8455)
- Testing: Fix flake in machine phases test (#8370)
- Testing: Fix flaky wait in CRS test (#8334)
- Testing: internal/machine-controller fix flakes in phases test (#8576)
- Testing: machine-controller: fix phase tests race condition in tests on lastUpdated field (#8484)
- Testing: Use CreateAndWait in MP ScaleFromZero test (#8927)
🌱 Others
- API: Deprecate v1alpha3 and v1alpha4 in CRDs (#8687)
- CAPBK: replace reflect deepequal in bootstrap kubeadm (#8266)
- CAPD: Automatically set kubelet args for capd (#8881)
- CAPD: only ignore necessary kubeadm preflight errors (#7911)
- CAPIM: add ClusterClass support for in-memory provider (#8807)
- CAPIM: Add startup timeout to the in memory provider (#8831)
- CAPIM: Add watch to in-memory server multiplexer (#8851)
- CAPIM: Enable update for coreDNS and kube-proxy (#8899)
- CAPIM: fix readme for in-memory provider (#8905)
- CAPIM: Fixups for watch in in-memory apiServer (#8898)
- CAPIM: Improve etcd management in CAPIM (#8906)
- CAPIM: Add apiserver & etcd metrics (#8962)
- CAPIM: Enable unit tests (#8886)
- CAPIM: Improve locking, return errors instead of panic (#8945)
- CAPIM: Improve performance by fixing locking issues (#8895)
- CAPIM: Sync in-memory provider ClusterClass with test (#8892)
- CAPIM: Rename controller files (#8830)
- CAPIM: Use consistent spelling for release artifacts (#8853)
- CI: Add area/dependency label for dependabot when bumping gomod (#8410)
- CI: Add dependency label to github actions update (#8845)
- CI: Switch cloudbuild.yaml to e2 machine type (#8428)
- CI: verifier: change back to pull_request_target to make it work again (#8637)
- ClusterCacheTracker: ensure Get/List calls are not getting stuck when apiserver is unreachable (#9030)
- Cluster...
v1.4.5
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.27.x
- Workload Cluster: v1.21.x -> v1.27.x
More information about version support can be found here
Changes since v1.4.4
📈 Overview
- 13 new commits merged
- 6 bugs fixed 🐛
🐛 Bug Fixes
- clusterctl: Return early if release for latest tag does not exist yet (#8965)
- Dependency: Bump to docker v24.0.5-0.20230714235725-36e9e796c6fc (#9043)
- e2e: Bump kindest/node image used in e2e tests (#8974)
- e2e: Increase timeout for clusterclass rollout test (#8937)
- KCP: Prevent nil pointer exception in kcp controller when in… (#8991)
- KCP: Requeue KCP object if ControlPlaneComponentsHealthyCondition is not yet true (#9036)
🌱 Others
- CAPD: Set Kubelet args internally in CAPD (#8929)
- ClusterCacheTracker: ClusterCacheTracker: ensure Get/List calls are not getting stuck when apiserver is unreachable (#9027)
- Dependency: Bump google.golang.org/grpc to v1.55.0 (#8970)
- Devtools: Build golangci-lint locally (#8935)
- e2e: Add SHA to default KIND image used in e2e tests (#8976)
- Dependency: Bump docker to v24.0.5 (#9066)
- Devtools: Change tilt debug base image to golang (#9074)
Thanks to all our contributors! 😊