Skip to content

Releases: kubernetes-sigs/cluster-api

v1.2.3

10 Oct 14:21
v1.2.3
bb37716

Choose a tag to compare

Changes since v1.2.2

ClusterClass

The Cluster topology controller is now using the exact apiVersions of the references in the ClusterClass
instead of the latest apiVersion of the current contract. This was done to improve Cluster API upgrades
with ClusterClass. For more details see ClusterClass: Upgrading Cluster API

The validation of patch selectors in ClusterClass has been improved. Previously it was enough if the entire
selector matches at least one template. Now every element of the selector has to match a template. E.g. if
controlPlane and machineDeploymentClass are specified both have to match a template now.

KCP

It is now possible to create control plane nodes without taints. This can be done by specifying taints: []
in initConfiguration.nodeRegistration / joinConfiguration.nodeRegistration of a KubeadmControlPlane.

KCP now ensures that the CoreDNS deployment always tolerates the taints of the control plane nodes. This is especially
important when updating to Kubernetes v1.24 which has the new node-role.kubernetes.io/control-plane taint.

✨ New Features

  • ClusterClass: use exact versions from ClusterClass, stop api bump in CC (#7306)

🐛 Bug Fixes

  • KCP: adjust CoreDNS tolerations according to Kubernetes version (#7370)
  • Fix marshaling of taints, so an empty slice is preserved (#7366)
  • Don't retry health check when Unauthorized is returned (#7359)
  • Remove unique patch ID from TopologyReconcile conditions (#7357)
  • Bump kindnet to v20221004-44d545d1 to fix routes on self-hosted upgrades (#7307, #7338)
  • Update ClusterResourceSetBinding owner references (#7312)

🌱 Others

  • clusterctl: support envsubst in clusterctl config (#7364)
  • Bump to Go 1.18.7 (#7350)
  • Log full object name and creation error for topology template reconcile (#7352)
  • Add PreWaitForCluster hook and CNIPath to e2e clusterctl upgrade test (#7316)
  • ClusterClass: make patch selector validation more robust (#7286)
  • Update references following Flatcar GitHub org rename (#7217)

📖 Additionally, there have been 11 contributions to our documentation and book. (#7326, #7325, #7294, #7289, #7287, #7281, #7265, #7253, #7255, #7252, #7250)

Thanks to all our contributors! 😊

v1.2.2

14 Sep 11:53
v1.2.2
3c46234

Choose a tag to compare

Changes since v1.2.1

👌 Kubernetes version support

Cluster API now also supports Kubernetes v1.25 🎉

  • Management Cluster: v1.20.x -> v1.25.x [1]
  • Workload Cluster: v1.18.x -> v1.25.x

[1] When using CAPI with the CLUSTER_TOPOLOGY experimental feature on, the Kubernetes version for the management cluster must be >= 1.22.0.

✨ New Features

  • Use Kubernetes 1.25 in Quick Start docs and CAPD. (#7174)

🐛 Bug Fixes

  • Update book to properly set label in tilt file (#7204)
  • util/record: fix usage of case.Title in util/record (#7160)
  • Strip control plane creation error of unique name (#7124)
  • Fix kube-proxy upgrade with docker.io image (#7093)
  • Fix messages of MachineHealthCheckSucceedCondition (#7091)
  • fix hadolint finding (#7083)
  • Add template flavor for topology-changes test (#7082)
  • Fix Architecture metadata in Dockerfiles for distroless base image references (#7077)
  • Using cacheCtx on WaitForCacheSync error loading (#7073)
  • Fix nodeDrainTimeout for ControlPlane on Topology managed clusters (#7072)
  • Fix omitted target in CAPD staging Makefile target (#7069)

🌱 Others

  • Bump cert-manager to v1.9.1 (#7187)
  • Update versions doc adding Kubernetes 1.25 (#7195)
  • test/e2e: Extend ClusterClass changes test to cover InfrastructureMachineTemplate rotation (#7141)

📖 Additionally, there have been 10 contributions to our documentation and book. (#7210, #7197, #7186, #7148, #7145, #7142, #7086, #7084, #7071, #7049, #7050)

Thanks to all our contributors! 😊

v1.1.6

14 Sep 11:53
v1.1.6
be01874

Choose a tag to compare

Changes since v1.1.5

✨ New Features

  • Make KCP's patches option mutable (#7180)
  • ClusterCacheTracker: access controller cluster directly (#6981)

🐛 Bug Fixes

  • Fix potential nilpointer error in machine remediation (#7016)
  • ClusterClass: reconcile InfrastructureCluster controlPlaneEndpoint fields (#6895)

🌱 Others

  • Split MD link checker into periodic and PR focused (#6869)
  • Update verify action to ignore cherry-picks (#6871)
  • Restrict permissions of GitHub actions (#6826)
  • Remove homebrew action (#6825)

📖 Additionally, there have been 1 contributions to our documentation and book. (#6877)

Thanks to all our contributors! 😊

v1.2.1

15 Aug 17:40
v1.2.1
8b4214d

Choose a tag to compare

Changes since v1.2.0

🐛 Bug Fixes

  • Fix APIVersion in OwnerReferences to ClusterResourceSets (#7024)
  • Fix potential nilpointer error in machine remediation (#7013)
  • Add OwnerRef to clusterResourceSetBinding on each reconcile (#7012)
  • KubeadmControlPlane: patch ImageRepository in ClusterConfiguration if it is not set for v1.25 (#6957)
  • Update make release process to correctly tag CAPD (#6974)
  • Fix machinepool instance id bug (#6977)
  • Remove message from Runtime SDK FailureResponses (#6955)
  • Self-hosted tests should check for rollouts (#7037)
  • ClusterCacheTracker: access controller cluster directly (#6982)

🌱 Others

  • Add logging guidelines (#7014)
  • Add ControlPlaneWaiters to input for e2e specs (#6978)
  • Clusterctl support for VMware Cloud Director as Infrastructure Provider (#6961)
  • Add Virtink as infrastructure provider (#7020)

📖 Additionally, there have been 7 contributions to our documentation and book. (#7048, #7009, #6970, #6962, #6956, #6948, #6944)

Thanks to all our contributors! 😊

v1.2.0

18 Jul 15:11
v1.2.0
aebeed8

Choose a tag to compare

Cluster API v1.2 - Release notes

This release is all about extensibility and adding more capabilities to ClusterClass and managed topologies.

By using the new Runtime SDK and Lifecycle Hooks it is now possible to build systems on top of Cluster API by hooking into a workload cluster’s lifecycle.

By using the Topology Mutation Hook (also built on top of Runtime SDK) it is now possible to write ClusterClass patches using the programming language of your choice, thus allowing to support more sophisticated Cluster variants with a single ClusterClass.

Also, starting from this release, ClusterClass and Managed Topology is using Server Side Apply, thus providing better support - fully aligned with the Kubernetes ecosystem - for use cases where different controllers co-author the same object while provisioning Clusters.

And as usual, many many other brilliant improvements and bug fixes from this amazing community!

Thanks to all our contributors! 😊

Changes since v1.1.5

👌 Kubernetes version support

  • Management Cluster: v1.20.x -> v1.24.x [1]
  • Workload Cluster: v1.18.x -> v1.24.x

[1] When using CAPI with the CLUSTER_TOPOLOGY experimental feature on, the Kubernetes Version for the management cluster must be >= 1.22.0.

⚠️ Breaking Changes

  • Bump min management cluster version to 1.20.2 (#6597)
  • Make ClusterToInfrastructureMapFunc check if the cluster is externally managed (#6070)

📝 Proposals

  • ClusterClass: Add MD variables to the ClusterClass proposal (#5976)
  • Runtime SDK: Add Runtime SDK proposal (#6181)
  • Runtime SDK: Add Runtime Hooks for Add-on management proposal (#6418)
  • Runtime SDK: Add Topology Mutation Hook proposal (#6349)
  • MachinePool: Add proposal for MachinePool Machines (#6088)
  • IPAM: Add IPAM integration proposal (#6000)
  • Metrics: Add Cluster API State Metrics proposal (#6404)

And #6810, #6743, #6568, #6822, #6234, #5994

✨ New Features

  • CABPK: Add support for kubeadm skipPhases field (#5993)
  • CABPK: Add support for passwd from secret (#6386)
  • CABPK: Refresh BootstrapToken until Nodes join (#6395)
  • CABPK: Expose kubeadm bootstrap controller bootstrap token ttl config (#6584)
  • ClusterClass: Apply PodSecurityStandard in Secure Cluster Class (#6390)
  • clusterctl: Migrate CRDs during clusterctl upgrade (#6793)
  • clusterctl: Upgrade apply: wait for providers to be ready (#6685)
  • clusterctl: Prebuilt container for clusterctl in image based pipelines (#6405)
  • clusterctl: Add options to show templates and cluster resource sets (#5762)
  • clusterctl: Allow Namespace objects in topology plan input (#6257)
  • Developer Experience: introduce runtime-openapi-gen to generate openapi spec on release (#6462)
  • E2E: Allow provider specific infra machine template for upgrade tests (#6075)
  • IPAM: Add IPAddress and IPAddressClaim CRs to Experimental API (#6887)
  • KCP: Make KCP's patches option mutable (#6586)
  • KCP: Make SetNodeProviderID no more blocking although Control Plane is externally managed (#6640)
  • Logging: Add JSON log format and deprecate klog flags (#6072)
  • Machine: Add nodeDeletionTimeout property to Machine (#5608)
  • Runtime SDK: Implement BeforeClusterDelete hook (#6802)
  • Runtime SDK: Implement AfterControlPlaneInitialized, AfterControlPlaneUpgrade and AfterClusterUpgrade hooks (#6629)
  • Runtime SDK: Topology Mutation Hook: Implement external patching (#6623)
  • Runtime SDK: BeforeClusterCreate, BeforeClusterUpgrade implementation (#6608)
  • Runtime SDK: Add caBundle injection to Extension controller (#6632)
  • Runtime SDK: Add Test Extension and initial e2e test (#6625)
  • Runtime SDK: Topology Mutation: use API types for inline patching (#6289)
  • Runtime SDK: Implement Call and CallAll in RuntimeClient (#6499)
  • Runtime SDK: Topology Mutation: Add types for Topology Mutation Hook (#6514)
  • Runtime SDK: Add client and Discovery (#6455)
  • Runtime SDK: Add registry (#6449)
  • Runtime SDK: Add extension config controller skeleton (#6411)
  • Runtime SDK: Implement Catalog for Runtime SDK (#6393)
  • Runtime SDK: Add API types for Runtime SDK ExtensionConfig (#6383)
  • SSA: Add Server Side Apply helper to the topology controller (#6495)
  • SSA: Improve dry run for topology changes to dry run server side apply (#6861)
  • SSA: Add PatchAndWait helper function for server-side apply (#6572)
  • Testing: Introduce typed CRDs for testing purposes to replace the untyped ones (#6573)
  • Tilt: Add prometheus to observability deployment (#6117)

And #6777, #6487,, #6326, #6457, #6475, #6494, #6367, #6348, #6292, #6335, #6140, #6124, #6082, #5999

🐛 Bug Fixes

  • API: Fix panics in conversions (#6144)
  • Book: Fix cert manager repo and add troubleshooting guide (#6050)
  • CAPD: Update docker distribution to fix go sum error (#6548)
  • CAPD: Add containerd socket to worker nodes (#6473)
  • CAPD: Update docker distribution dependency version (#6199)
  • CAPD: Use Kubernetes 1.24 in quickstart and CAPD, bump to kind v0.14 (#6513)
  • CAPD : Exclude externally managed infrastructures in ClusterToInfrastructureMapFunc
  • CABPK: Add Ignition base64 and file ownership support, reject gzipped content and fix unit tests (#6472)
  • Cluster: Fix reconcilation predicates (#6425)
  • ClusterClass: Delete unused ControlPlane InfrastructureMachineTemplates on rotation (#6399)
  • ClusterClass: Reconcile InfrastructureCluster controlPlaneEndpoint (#6673)
  • ClusterClass: Remove generated names from error messages to reduce reconciliation (#5971)
  • ClusterClass: Set apiVersion to avoid diff in patchHelper (#6295)
  • clusterctl: Retry github i/o operations (#6430)
  • clusterctl: Retry delete during clusterctl upgrade (#6266)
  • clusterctl: Make listObjByGVK resilient (#6262)
  • clusterctl: Skip templating step if describe flag is used (#6347)
  • clusterctl: Fix the version assumption in topology plan command (#6270)
  • ClusterResourceSet: Handle error in case ownerRef is not set on crs binding (#5969)
  • ClusterResourceSet: Apply objects in sorted order (#6502)
  • Developer Experience: Work around lack of kubebuilder-tools for darwin/arm64 (#6092)
  • Developer Experience: Cloudbuild fixes: (#6585, #6627, #6631)
  • Developer Experience: Add workaround to run generate-go-openapi in GOPATH (#6607)
  • E2E Framework: fix node drain output (#6174)
  • E2E: fix cgroup branching in cluster upgrade test (#6557)
  • E2E: use KUBERNETES_VERSION in kubeadm script (#6847)
  • E2E: Update CoreDNS tags and upgrade checks in e2e tests (#6339)
  • E2E: update clusterctl version in e2e to latest patch (#6057)
  • E2E: test/e2e add tag to e2e tests which use ClusterClass (#6605)
  • E2E: Retry Apply workloadClusterTemplate to fix flake (#6791)
  • etcd: Bump go package to v3.5.3 (#6414)
  • etcd: Close etcd leaky connection if client is not initialized properly (#6540)
  • KCP: Don't rollout machines when format is defaulted (#6096)
  • KCP: Allow KCP to Update when CoreDNS version doesn't change (#5986)
  • KCP: Ensure controlplane coredns update deploys the ClusterRole if CoreDNS was already updated (#6759)
  • KCP, CAPD: prevent blocking of KCP and DockerMachine controllers (#6183)
  • KCP, CAPBK: Fix version comparison for pre release versions (#6649)
  • Logging: Fixed formatting in runtime client (#6922)
  • Machine: Fix panic in node drain (#6200)
  • Machine: Improve to get error stack trace for machine reconcile (#6746)
  • MachinePool: Ensure MachinePool Version is a valid Kubernetes version (#6311)
  • MachinePool: Use APIReader to fix flaky MachinePool test (#6637)
  • MachinePool: Use WaitForMachinePools to configure machine pool test waits (#6446))
  • MachinePool: Permit empty/not set providerIDList (#6233)
  • MachinePool: No nodeRefs when empty providerIDList is ok (#6312)
  • MachineSet: Consistent ordering for deletion priority (#6300)
  • MHC: Use .spec.clusterName instead of .metadata.clusterName for external remediation request (#6306)
  • MHC: Stop adding parent object owner reference for MachineHealthChecks in managed topologies (#6660)
  • MHC: Stop adding parent object owner reference in managed topologies (#6660)
  • RuntimeSDK: Include ExtensionConfig CRD in generated core manifest (#6456)
  • SSA: Create cluster-shim with regular client, use ignorePaths on create (#6915)
  • SSA: Ignore diff of other managers (#6888)
  • SSA: Carry over metadata.uid at ServerSidePatchHelper (#6784)
  • SSA: Adjust structuredmerge patch helper options to set correct allow list for Cluster objects to prevent co-ownership (#6776)
  • SSA: Fix structuredmerge filterintent to cleanup nested empty maps (#6796)
  • SSA: Use the Kubernetes decoder in the patch engine (#6668)
  • Testing: Fix flaky Test_objectMover (#6046)
  • Testing: inline builders in test for MHC reconcilation (#5987)
  • Tilt: Deploy observability tools in correct namespace (#6078)
  • Tilt: Support using kind cluster from tilt settings automatically (#6244)
  • Tilt: Support for newer tilt versions (#6630)
  • Tilt: Fix infinite reload issue (#6187)
  • Utils: Add option to compare without prereleases (#6252)
  • Utils: Add nil pointer check in UnstructuredUnmarshalField (#6334)
  • Utils: Fix nil pointers in conditions patch utils (#6813)

And #5977, #6638, #6028, #6231, #6707, #6351, #6682, #6731

🌱 Others

  • Add killianmuldoon to bootstrap & docs reviewers (#6250)
  • Add sbueringer to Cluster API maintainers (#6109)
  • Add ykakarap to clusterctl reviewers (#6275)
  • Build: Restrict permissions of GitHub actions (#6824)
  • Build: Consolidate test/infrastructure/docker/Makefile to Makefile (#6443)
  • Build: hack/release-notes: trim [release-*] in PR titles (#6574)
  • Build: Install hack/tools with temporary go module (#5741)
  • Build: Silence error in go_install.sh when trying to remove nonexisting files (#6532)
  • Build: Split core conversion Makefile targets (#6498)
  • Build: Update promote-images to filter by image and sort by tag (#6452)
  • Bui...
Read more

v1.2.0-rc.0

11 Jul 11:25
v1.2.0-rc.0
ffd4f72

Choose a tag to compare

v1.2.0-rc.0 Pre-release
Pre-release

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.

v1.2.0-beta.2

04 Jul 14:49
v1.2.0-beta.2
3997fb0

Choose a tag to compare

v1.2.0-beta.2 Pre-release
Pre-release

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.

v1.1.5

04 Jul 14:49
v1.1.5
d488bdb

Choose a tag to compare

Changes since v1.1.4

✨ New Features

  • clusterctl: migrate CRDs during clusterctl upgrade (#6792)
  • Adding support for CAPC (#6612)
  • Kubevirt provider (#6610)

🐛 Bug Fixes

  • Ensure controlplane coredns update deploys the ClusterRole if CoreDNS was already updated (#6760)
  • fix: no nodeRefs when empty providerIDList is ok (#6609)

🌱 Others

  • Update CoreDNS migration library to v1.0.17 (#6726)
  • Refresh BootstrapToken until Nodes join (#6654)
  • Update docker distribution (#6622)
  • hack/release-notes: trim [release-*] in PR titles (#6606)
  • bump kubebuilder-release-tools GitHub action to v0.2.0 (#6575)

📖 Additionally, there have been 2 contributions to our documentation and book. (#6712, #6611)

Thanks to all our contributors! 😊

v1.2.0-beta.1

27 Jun 12:51
v1.2.0-beta.1
9d70124

Choose a tag to compare

v1.2.0-beta.1 Pre-release
Pre-release

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.

v1.2.0-beta.0

20 Jun 13:31
v1.2.0-beta.0
d55b832

Choose a tag to compare

v1.2.0-beta.0 Pre-release
Pre-release

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.