Releases: kubernetes-sigs/cluster-api
v1.4.3
👌 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.2
📈 Overview
- 32 new commits merged
- 9 bugs fixed 🐛
🐛 Bug Fixes
- clusterctl: Return error on infra cluster and control plane discovery (#8609)
- e2e: Adjust machinepool helper e2e timeout (#8756)
- e2e: test/e2e check for machines being ready after provisioning on Runtime SDK test (#8646)
- e2e: test/framework fix docker pod log collector (#8643)
- KCP: Allow machine rollout if cert reconcile fails (#8737)
- KCP: Prevent KCP to create many private keys for each reconcile (#8619)
- CAPD: change the haproxy entrypoint to prevent getting stopped immediately after start (#8742)
- CAPD: Delegate CAPD port selection to the container runtime (#8655)
- CAPD: fix fail-swap-on=false flag not being part of kind images anymore (#8777)
🌱 Others
- API: Deprecate v1alpha3 and v1alpha4 in CRDs (#8700)
- Dependency: Bump docker/distribution to v2.8.2 (#8648)
- Dependency: Update cert-manager to v1.11.2 (#8639)
- Dependency: Update cert-manager to v1.12.0 (#8705)
- Dependency: Update cert-manager to v1.12.1 (#8752)
- Dependency: Update kpromo to v3.6.0 (#8682)
- Dependency: Update kubebuilder envtest (1.26.0 -> 1.27.1) (#8601)
- Devtools: Pin delve to version supporting go 1.19 (#8727)
- e2e: Disable fail-fast by default for e2e tests (#8659)
- e2e: Pin cgroup driver used in v0.3, v0.4 and v1.0 templates (#8693)
- e2e: Improve gomega fail handling in clusterClass rollout (#8771)
- e2e: e2e: log leftover processes to eventually detect zombies (#8671)
- Machine: use providerID string as-is (#8594)
📖 Additionally, there have been 10 contributions to our documentation and book. (#8730, #8720, #8674, #8633, #8608, #8607, #8539, #8713, #8677, #8652)
Thanks to all our contributors! 😊
v1.3.8
👌 Kubernetes version support
- Management Cluster: v1.20.x -> v1.26.x [1]
- Workload Cluster: v1.18.x -> v1.26.x
[1] When using Cluster API with the experimental CLUSTER_TOPOLOGY feature, the Kubernetes version of the management cluster must be >= 1.22.0.
More information about version support can be found here
Changes since v1.3.7
📈 Overview
- 20 new commits merged
- 8 bugs fixed 🐛
🐛 Bug Fixes
- clusterctl: Return error on infra cluster and control plane discovery (#8610)
- e2e: Adjust machinepool helper e2e timeout (#8755)
- e2e: test/e2e check for machines being ready after provisioning on Runtime SDK test (#8647)
- e2e: test/framework fix docker pod log collector (#8644)
- KCP: Allow machine rollout if cert reconcile fails (#8738)
- KCP: Prevent KCP to create many private keys for each reconcile (#8626)
- CAPD: change the haproxy entrypoint to prevent getting stopped immediately after start (#8741)
- CAPD: Delegate CAPD port selection to the container runtime (#8654)
🌱 Others
- Dependency: Bump docker/distribution to v2.8.2 (#8650)
- Dependency: Update cert-manager to v1.11.2 (#8640)
- Dependency: Update cert-manager to v1.12.0 (#8704)
- Dependency: Update cert-manager to v1.12.1 (#8751)
- Dependency: Update kpromo to v3.6.0 (#8683)
- Devtools: Pin delve to version supporting go 1.19 (#8726)
- e2e: Disable fail-fast by default for e2e tests (#8660)
- e2e: Pin cgroup driver used in v0.3 and v0.4 templates (#8692)
- e2e: Revert "Pin cgroup driver used in v0.3, v0.4 and templates" (#8697)
- e2e: log leftover processes to eventually detect zombies (#8672)
📖 Additionally, there have been 2 contributions to our documentation and book. (#8653, #8714)
Thanks to all our contributors! 😊
v1.4.2
👌 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.1
📈 Overview
- 25 new commits merged
- 0 breaking changes
⚠️ - 2 feature additions ✨
- 9 bugs fixed 🐛
✨ New Features
- CAPD: Use k8s v1.27.0 in quickstart docs and CAPD (#8538)
- ClusterClass: add support or concurrent MD upgrades in classy clusters (#8528)
🐛 Bug Fixes
- ClusterClass: avoid errors when MHC and upgrade occur together in classy clusters (#8568)
- Dependency: Update kindnetd and kindest/haproxy (#8470)
- e2e: Catch failure when fetching component URLs (#8489)
- IPAM: fix gateway being required for IPAddress (#8574)
- KCP: Ensure nil-pointer check in KCP syncMachines (#8488)
- MachinePool: Add node watcher to MachinePool controller (#8474)
- Testing: internal/machine-controller fix flakes in phases test (#8590)
- Testing: machine-controller: fix phase tests race condition in tests on lastUpdated field (#8491)
🌱 Others
- Dependency: Update controller-tools to v1.11.4 (#8555)
- Dependency: Update cert manager to v1.11.1 (#8532)
- Dependency: Update kind to v1.18.0 (#8434)
- Dependency: Update docker to v20.10.24 (#8476)
- e2e: assert E2E error responses when waiting for MD nodes (#8516)
- e2e: use topology flavor for workload clusters in clusterctl upgrade test (#8550)
- IPAM: Make IPAddressClaim.Status.AddressRef optional (#8530)
📖 Additionally, there have been 8 contributions to our documentation and book. (#8582, #8562, #8537, #8512, #8513, #8482, #8556, #8589)
Thanks to all our contributors! 😊
v1.3.7
👌 Kubernetes version support
- Management Cluster: v1.20.x -> v1.26.x [1]
- Workload Cluster: v1.18.x -> v1.26.x
[1] When using Cluster API with the experimental CLUSTER_TOPOLOGY feature, the Kubernetes version of the management cluster must be >= 1.22.0.
More information about version support can be found here
Changes since v1.3.6
📈 Overview
- 14 new commits merged
- 0 breaking changes
⚠️ - 0 feature additions ✨
- 3 bugs fixed 🐛
🐛 Bug Fixes
- clusterctl: Use local kustomize version in create-local-repository.py (#8436)
- Dependency: Update kindnetd and kindest/haproxy (#8471)
🌱 Others
- CI: Switch cloudbuild.yaml to e2 machine type (#8449)
- Dependency: Update controller tools to v0.11.4 (#8553)
- Dependency: Update cert manager to v1.11.1 (#8533)
- Dependency: Update docker to v20.10.24 (#8490)
- Dependency: Update kind to v0.18.0 (#8435)
- e2e: use topology flavor for workload clusters in clusterctl upgrade test (#8551)
- IPAM: Make IPAddressClaim.Status.AddressRef optional (#8531)
📖 Additionally, there have been 5 contributions to our documentation and book. (#8583, #8561, #8483, #8452, #8588)
Thanks to all our contributors! 😊
v1.4.1
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.26.x
- Workload Cluster: v1.21.x -> v1.26.x
More information about version support can be found here
Changes since v1.4.0
📈 Overview
- 9 new commits merged
- 0 breaking changes
⚠️ - 0 feature additions ✨
- 3 bugs fixed 🐛
🐛 Bug Fixes
- clusterctl: Use local kustomize version in create-local-repository.py (#8437)
- Machine: fix node label propagation (#8444)
- MachinePool: Fix MachinePool node taint patching (#8468)
🌱 Others
- Build: Add runtime extension components to release (#8440)
- Bump github.com/onsi/gomega from 1.27.4 to 1.27.5 (#8402)
- CI: Switch cloudbuild.yaml to e2 machine type (#8448)
- Docs: Allow backport for experimental features (#8441)
- Docs: Fix mesosphere link in proposal (#8453)
📖 Additionally, there have been 1 contributions to our documentation and book. (#8409)
Thanks to all our contributors! 😊
v1.4.0
👌 Kubernetes version support
- Management Cluster: v1.23.x -> v1.26.x
- Workload Cluster: v1.21.x -> v1.26.x
More information about version support can be found here
Highlights
This release was focusd on adding some new awaited features, stability and continuolsy improving our release processes. This was possible by the hard work of more than 360 PRs from the awesome contributors of the community.
Some of the hightlights in this release are:
- KubeadmControlPlane has been improved allowing to automatically remedite failures when provisioning the control plane. This behaviour can be fine tuned by configuring the RemediationStrategy on KCP.
- Cluster API now continuously sync certain labels from Machines to Nodes, allowing finer control on workload placement as well as assigning custom roles to nodes.
- Cluster API now continuously propagate labels, annotations down the hierachy of objects - from ClusterClass to KubeadmControlPlane/MachineDeployments and ultimately to Machines - without triggering unecessary rollouts. The same improvement applies also to other fields impacting only Kubernetes objects or controller behaviour (e.g NodeDrainTimeout).
- Cluster API now supports Variable Discovery in ClusterClass and Managed Topologies. As a consequence external patches (also known as topology mutation hooks) are now self contained, fully typed and more easily unit testable.
Cluster API v1.3 compared to v1.4
See the Cluster-API book for an overview over relevant changes between Cluster API v1.3 and v1.4 for maintainers of providers and consumers of our Go API.
Deprecation warning
The api versions v1alpha3
and v1alpha4
are deprecated and will be removed in the follwing releases. v1alpha3
will be removed in v1.5 and v1alpha4
in v1.6.
Full list of changes since v1.3
📈 Overview
- 361 new commits merged
- 19 breaking changes
⚠️ - 40 feature additions ✨
- 56 bugs fixed 🐛
📝 Proposals
- Amend KCP proposal with remediation while provisioning the CP (#7855)
- Update autoscaling from zero proposal (#8036)
- Nit on KCP proposal (#8018)
- Add variable discovery to topology mutation proposal (#7932)
⚠️ Breaking Changes
- API: Drop ClusterTopologyManagedFieldsAnnotation field from v1beta1 (#7845)
- API: Removing CloneTemplate and CloneTemplateInput (#7839)
- API: Removing deprecated NewServer function (#7844)
- API: Removing deprecated healthcheck condition (#7836)
- API: Stop supporting CRDs with invalid names (#8041)
- Bump controller-runtime 0.13.1 to 0.14.1 (#7906)
- CAPD: Use Kubernetes 1.26 in Quick Start docs and CAPD. (#7799)
- clusterctl: Removing deprecated (--disable-no-echo) flag and renaming docs (#7837)
- clusterctl: Removing deprecated --list-images flag on init command (#7838)
- clusterctl: Remove clusterctl restore command and Restore function from Client interface (#7945)
- clusterctl: Refactor clusterctl alpha rollout (#7988)
- KCP: block upgrade to versions with old registry, improve registry handling (#7856)
- Machine: Add filter to associate variables with specific patches (#8128)
- Machine: Use consistent naming for API constants (#7618)
- Machine: apply
node.cluster.x-k8s.io/uninitialized
during machine creation (#7993) - Machine: in-place propagation from MD to MS (#8110)
- Machine: in-place propagation from MS to InfraMachine and BootstrapConfig (#8060)
- Machine: in-place propagation from MS to Machines (#8111)
- Machine: in-place propagation support for KCP (#8057)
✨ New Features
- clusterctl: Add KCP feature to clusterctl alpha rollout (#6858)
- API: Add Node managed labels support (#7173)
- CAPBK: Add NodeRegistrationOptions.ImagePullPolicy Support (#7772)
- ClusterClass: Add discoverVariables runtime hook to ClusterClass reconcile loop (#8006)
- Docs: Add more reviewers and maintainers (#7996)
- clusterctl: Add output flag, change printYaml function signature (#7828)
- clusterctl: Add support for CoxEdge provider (#7770)
- KCP: Add support for KCP remediation during cluster provisioning (#7963)
- clusterctl: Add support for raw template URL in clusterctl generate yaml (#7371)
- Build: Adds a make target to generate all the release manifests (#7629)
- Build: Adds a verify script that run trivy scanner on container images (#7604)
- ClusterClass patches: Allow matching all MachineDeploymentClasses (#6930)
- Cluster: Emit Kubernetes Events when Cluster Phase, ControlPlaneReady, or InfrastructureReady change (#7786)
- E2E: Get Ginkgo version in Makefile from go.mod (#7503)
- ClusterClass: Handle variable definition conflicts for external variables (#8107)
- ClusterResourceSet: Implement Reconcile mode for ClusterResourceSet (#7497)
- clusterctl: Improve clusterctl upgrade syntax. Don't require namespace (#7376)
- ClusterResourceSet: Introduce ClusterName field to ClusterResourceSetBinding (#7680)
- lint: Introduce additional linters & bump golangci-lint to 1.50.1 (#7581)
- MachineDeployment: MachineDeployment rolloutAfter support (#8216)
- MachinePools: MachinePool annotation for externally managed autoscaler (#7107)
- CAPD: Make control plane port configurable in CAPD (#7548)
- Developer Experience: Make it possible to run envtest-based integration tests from vscode (#8088)
- ClusterClass: Managed Cluster should set labels and annotations on ControlPlane and MDs (#7917)
- Util: Move lowestNonZeroRetryAfterSeconds to util (#7542)
- Tilt: Removed the writing of os.environment by passing the 'env' parameter in cmd_button (#7574)
- SSA: Implement request caching (#8207)
- SSA: improve request caching (#8243)
- KCP: Update coredns corefile migration to v1.0.19 (#8074)
- Docs: Update support policy (#7549)
- KCP: Make kcp.skipPhases field mutable (#7646)
- RuntimeSDK: add Settings support to RuntimeExtensions (#7562)
- control-plane: add explicit securitycontexts to controllers (#7831)
- clusterctl: add kubekey k3s boostrap and control plane provider (#7528)
- RuntimeSDK: add response metrics for RuntimeSDK hook client (#7956)
- clusterctl: add command groups (#7769)
- Docs: fix command-line-tools links in book (#8162)
- E2E: Ensure OwnerRefs are consistently reconciled (#7606)
- Tilt: add podman support (#7810)
- API: Implements Getter interface for IPAddressClaim object (#8379)
🐛 Bug Fixes
- ClusterResourceSet: : Make sure the Kubernetes API Server service already created on remote cluster before applying ClusterResourceSets (#8286)
- Testing: Add CleanupAndWait call for flaky ClusterClass test (#7589)
- API: Add deterministic prefix and suffix to label hash (#7763)
- Machine: Add finalizer reconcile for Topology MachineSets and MachineDeployments (#7536)
- KCP: Add name hashing for long MS and KCP names (#7711)
- clusterctl: Add soft ownership from clusters to ClusterResourceSetBinding (#8323)
- Machine: Added nodeVolumeDetachTimeout to CP machine (#8066)
- clusterctl: Allow using the --from flag to get a template from a github release (#7453)
- ClusterCacheTracker: fix panic in error creation (#8062)
- ClusterClass: remove empty hook entries from annotation (#7930)
- ClusterClass: run dry-run on original and modified object (#8139)
- Logging: Drop uid from error messages (#8337)
- clusterclt: Ensure all GitHub releases are fetched when searching provider versions (#8329)
- API: Ensure ownerReference apiVersions are always up to date (#8338)
- Machine: Fix Machine adoption for KCP/MachineSet-owned Machines (#7591)
- ClusterResourceSet: Fix adopting ClusterResourceSet resource by CRS when already applied (#7590)
- CAPBK: Fix adoption KubeadmControlPlane owned secrets (#7592)
- bootstrap: Fix bug in kubeadmconfig adoption (#7623)
- Testing: Fix flake in machine phases test (#8372)
- Testing: Fix flakiness in MD controller test (#7668)
- Testing: Fix flaky TestServerSideApplyWithDefaulting test (#8166)
- Testing: Fix flaky wait in CRS test (#8340)
- Build: Fix git config in release-binary builds (#8199)
- bootstrap: Fix kubeadmconfig bootstrapsecret ownerRef reconciliation (#7587)
- Build: Fix release-binary for static linking (#8219)
- clusterctl: Fix secret selection logic for ownerRef test (#7973)
- Fix spelling of requeuing across files (#8024)
- bootstrap: Fix to enable bootstrap secret rotation if the secret itself missing (#7717)
- Testing: Fix unit test coverage in KubeadmConfig (#7678)
- Build: Fix version calculation in make lint (#8003)
- KCP: Allow unsetting fields if their child fields are mutable (#8037)
- KCP: fix rollout after upgrade (#8125)
- Machine: MD controller: fix nil pointer when OnDelete policy is used (#8184)
- clusterctl: Migration github repository cluster-api-provider-outscale from organization outscale-dev to outscale (#7998)
- Testing: Remove exact path match from walkTemplate test (#8019)
- Testing: Remove inaccurate comment on KCP test (#7662)
- ClusterCacheTracker: Requeue health check during the creation of a new cluster accessor (#8122)
- CAPD: Revert: CAPD: only ignore necessary kubeadm preflight errors (#7878)
- Docs: Update comment describing controlPlaneInitialized (#8005)
- clusterctl: Use tenancy as filter in ownerReference test (#7976)
- ClusterClass: Validate MachineDeploymentTopology.Name to be valid label value (#7759)
- ClusterClass: Validate variables in defaulting webhook (#8345)
- Machine: bug fix to set node interruptible label (#8298)
- CAPBK: bugfix function aggregateFromMachinesToKCP (#8132)
- clusterctl: bugfix write-to flag should only run filepath.Clean when the out...
v1.3.6
👌 Kubernetes version support
- Management Cluster: v1.20.x -> v1.26.x [1]
- Workload Cluster: v1.18.x -> v1.26.x
[1] When using Cluster API with the experimental CLUSTER_TOPOLOGY feature, the Kubernetes version of the management cluster must be >= 1.22.0.
More information about version support can be found here
Changes since v1.3.5
📈 Overview
- 18 new commits merged
- 2 feature additions ✨
- 8 bugs fixed 🐛
✨ New Features
- API: Implements Getter interface for IPAddressClaim object (#8380)
- test: Make it possible to run envtest-based integration tests from vscode (#8212)
🐛 Bug Fixes
- Build: Fix git config in release-binary builds (#8200)
- Build: Replace fixed build uid with command (#8225)
- clusterctl: Ensure all GitHub releases are fetched when searching provider versions (#8330)
- Drop uid from error messages (#8335)
- KCP: bugfix function aggregateFromMachinesToKCP (#8228)
- KCP: enable updates from CloudInit (mostly ubuntu) based KCPs to Ignition (flatcar) based KCPs (#8350)
- Machine: bug fix to set node interruptible label (#8299)
- Tests/E2E: use topology cluster-template for clusterctl upgrade mgmt cluster (#8315)
🌱 Others
- Bump kpromo to v3.5.1 (#8304)
📖 Additionally, there have been 7 contributions to our documentation and book. (#8354, #8295, #8291, #8248, #8221, #8294, #8221)
Thanks to all our contributors! 😊
v1.2.12
👌 Kubernetes version support
- Management Cluster: v1.20.x -> v1.26.x [1]
- Workload Cluster: v1.18.x -> v1.26.x
[1] When using Cluster API with the experimental CLUSTER_TOPOLOGY feature, the Kubernetes version of the management cluster must be >= 1.22.0.
More information about version support can be found here
Changes since v1.2.11
📈 Overview
- 10 new commits merged
- 1 feature additions ✨
- 5 bugs fixed 🐛
✨ New Features
- API: Implements Getter interface for IPAddressClaim object (#8381)
🐛 Bug Fixes
- clusterctl: Ensure all GitHub releases are fetched when searching provider versions (#8360)
- KCP: bugfix function aggregateFromMachinesToKCP (#8227)
- KCP: Enable updates from CloudInit (mostly ubuntu) based KCPs to Ignition (flatcar) based KCPs (#8356)
- Machine: Drop uid from error messages (#8336)
- Machine: bug fix to set node interruptible label (#8300)
🌱 Others
- Bump golang.org/x/net to v0.7.0 (#8278)
- Bump kpromo to v3.5.1 (#8305)
- CAPD: set privileged PSA policy (#8313)
📖 Additionally, there have been 2 contributions to our documentation and book. (#8386, #8222)
Thanks to all our contributors! 😊
v1.4.0-rc.1
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.
Highlights
- clusterctl: Add soft ownership from clusters to ClusterResourceSetBinding
- machine: Bug fix to set node interruptible label
Cluster API v1.3 compared to v1.4
See the Cluster-API book for an overview over relevant changes between Cluster API v1.3 and v1.4 for maintainers of providers and consumers of our Go API.
Deprecation warning
The api versions v1alpha3
and v1alpha4
are deprecated and will be removed in the follwing releases. v1alpha3
will be removed in 1.5 and v1alpha4
in 1.6.
Full list of changes since v1.4.0-rc.0
📈 Fun stats
- 7 new commits merged
- 3 bugs fixed 🐛
🐛 Bug Fixes
- Add soft ownership from clusters to ClusterResourceSetBinding (#8323)
- test/e2e: use topology cluster-template for clusterctl upgrade mgmt cluster (#8314)
- bug fix to set node interruptible label (#8298)
🌱 Others
📖 Additionally, there have been 2 contributions to our documentation and book. (#8296, #8290)
Release
https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.4.0-rc.1
Thanks to all our contributors! 😊
v1.4.0-rc.0
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.
Highlights
- Machine: Apply node.cluster.x-k8s.io/uninitialized during machine creation
Cluster API v1.3 compared to v1.4
See the Cluster-API book for an overview over relevant changes between Cluster API v1.3 and v1.4 for maintainers of providers and consumers of our Go API.
Full list of changes since v1.4.0-beta.2
📈 Fun stats
- 25 new commits merged
- 1 breaking changes
⚠️ - 4 feature additions ✨
- 1 bugs fixed 🐛
⚠️ Breaking Changes
- Machine: Apply
node.cluster.x-k8s.io/uninitialized
during machine creation (#7993)
✨ New Features
- Introduce ClusterName field to ClusterResourceSetBinding (#7680)
- Emit Kubernetes Events when Cluster Phase, ControlPlaneReady, or InfrastructureReady change (#7786)
- SSA: improve request caching (#8243)
- MachineDeployment rolloutAfter support (#8216)
🐛 Bug Fixes
- Make sure the Kubernetes API Server service already created on remote cluster before applying ClusterResourceSets (#8286)
🌱 Others
- Update handler name validation rules (#8283)
- ci: set fail-fast false for all GH actions using matrix (#8275)
- Bump github.com/onsi/gomega from 1.27.2 to 1.27.4 (#8272)
- Bump github.com/fatih/color from 1.14.1 to 1.15.0 (#8274)
- Bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1 (#8273)
- Bump actions/cache from 3.2.6 to 3.3.1 (#8271)
- test/e2e: Add ClusterClass rollout test, extend MD rollout test (#8171)
- ClusterClass: don't propagate MD upgrade annotations (#8261)
- Use Lazy Restmapper (#8091)
- Add release notes pr statistics (#8187)
- Use GitHub forms for issue templates (#7819)
- fix
TestKubeadmControlPlaneReconciler_initializeControlPlane
flake (#8259) - all: setup controller in a consistent way (#8226)
- Make load balancer first-party package in CAPD (#8246)
- test/framework: don't fix kubeconfig for remote CAPD clusters (#8241)
- Add weekly test-release action (#8203)
- Rename md parameters for consistency (#8244)
📖 Additionally, there have been 2 contributions to our documentation and book. (#8234, #8239)
Release
https://github.com/kubernetes-sigs/cluster-api/releases/tag/v1.4.0-rc.0
Thanks to all our contributors! 😊