Skip to content

Releases: kubernetes-sigs/cluster-api

v1.5.0-beta.0

27 Jun 18:19
v1.5.0-beta.0
2b0dd2e
Compare
Choose a tag to compare
v1.5.0-beta.0 Pre-release
Pre-release

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

Highlights

Some of the hightlights in this release are:

  • 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.

⚠️ 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.

More details about the release

⚠️ BETA RELEASE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.24.x -> v1.27.x
  • Workload Cluster: v1.22.x -> v1.27.x

Changes since v1.4.0

📈 Overview

  • 285 new commits merged
  • 4 breaking changes ⚠️
  • 11 feature additions ✨
  • 60 bugs fixed 🐛

⚠️ Breaking Changes

  • CAPD: Use k8s v1.27.0 in quickstart docs and CAPD (#8518)
  • clusterctl: Bump to CR v0.15.0 (#8007)
  • clusterctl: Follow XDG Directory standard for config/data/... files (#6913)
  • clusterctl: Stop serving v1alpha3 API types (#8549)

✨ New Features

  • CAPBK: Use caching read for bootstrap config owner (#8867)
  • ClusterClass: add support or concurrent MD upgrades in classy clusters (#8432)
  • Devtools: hack/observability: Add Parca, Bump observability tools, Add Grafana scale dashboard (#8754)
  • IPAM: Implements Getter interface for IPAddressClaim object (#8374)
  • KCP/Core/CAPD: Add flags for configuring rate limits (#8579)
  • MachineSet: MS preflight checks to improve cluster stability (#8595)
  • clusterctl: Add in memory provider (#8799)
  • clusterctl: Add support for add-on providers in clusterctl (#8472)
  • clusterctl: feat: accept resource mutators in Move operation (#7966)
  • e2e: ci: collect debug information about leftover processes (#8734)
  • util: Move mergeMap to util (#8377)

🐛 Bug Fixes

  • 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: CAPD: Implement watch filter (#8789)
  • CAPD: CAPD: change the haproxy entrypoint to prevent getting stopped immediately after start (#8685)
  • CAPD: Delegate CAPD port selection to the container runtime (#8642)
  • CAPD: test/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: verifier: use pull_request instead of pull_request_target (#8635)
  • ClusterCacheTracker: ClusterCacheTracker: Stop pod caching when checking workload cluster (#8850)
  • ClusterClass: Drop uid from error messages (#8333)
  • ClusterClass: Validate variables in defaulting webhook (#8332)
  • ClusterClass: avoid errors when MHC and upgrade occur together in classy clusters (#8464)
  • ClusterClass: topology controller should avoid unnecessary rollouts during upgrades (#8628)
  • ClusterClass: update TopologyReconciled condition on cluster deletion (#8422)
  • ClusterResourceSet: : Make sure the Kubernetes API Server service already created on remote cluster before applying ClusterResourceSets (#8048)
  • ClusterResourceSet: ClusterResourceSet: continue applying when apply for a single cluster failed (#8611)
  • Dependency: Update kindnetd and kindest/haproxy (#8469)
  • Devtools: Update clean-charts make target for new paths (#8904)
  • Devtools: tilt: set CR logger in tilt-prepare, fix allowed contexts (#8919)
  • IPAM: ipam: fix gateway being required for IPAddress (#8506)
  • KCP: Allow machine rollout if cert reconcile fails (#8711)
  • KCP: Ensure nil-pointer check in KCP syncMachines (#8481)
  • KCP: Prevent KCP to create many private keys for each reconcile (#8617)
  • KCP: enable updates from CloudInit (mostly ubuntu) based KCPs to Ignition (flatcar) based KCPs (#8339)
  • 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: MachinePool: always patch owned conditions, fix GetTypedPhase, doc fixes (#8627)
  • MachinePool: Update MachinePool bootstrap dataSecretName when bootstrap config changes (#8667)
  • 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: Use CreateAndWait in MP ScaleFromZero test (#8927)
  • Testing: internal/machine-controller fix flakes in phases test (#8576)
  • Testing: machine-controller: fix phase tests race condition in tests on lastUpdated field (#8484)
  • clusterctl: Add soft ownership from clusters to ClusterResourceSetBinding (#8318)
  • clusterctl: Ensure all GitHub releases are fetched when searching provider versions (#8240)
  • clusterctl: Return error on infra cluster and control plane discovery (#8604)
  • clusterctl: Use local kustomize version in create-local-repository.py (#8414)
  • clusterctl: clusterctl: return early if release for latest tag does not exist yet (#8253)
  • clusterctl: handle nil pointer in clusterctl describe (#8724)
  • 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: test/e2e check for machines being ready after provisioning on Runtime SDK test (#8625)
  • e2e: test/e2e: use topology cluster-template for clusterctl upgrade mgmt cluster (#8311)
  • e2e: test/framework fix docker pod log collector (#8634)

🌱 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: CAPD: only ignore necessary kubeadm preflight errors (#7911)
  • CAPIM: Add startup timeout to the in memory provider (#8831)
  • CAPIM: Add watch to in-memory server multiplexer (#8851)
  • CAPIM: CAPIM: Enable update for coreDNS and kube-proxy (#8899)
  • CAPIM: Fixups for watch in in-memory apiServer (#8898)
  • CAPIM: Improve etcd management in CAPIM (#8906)
  • CAPIM: add ClusterClass support for in-memory provider (#8807)
  • CAPIM: fix readme for in-memory provider (#8905)
  • CAPIM: test/e2e/in-memory: enable unit tests (#8886)
  • CAPIM: test/e2e/in-memory: improve performance by fixing locking issues (#8895)
  • CAPIM: test/e2e/in-memory: sync in-memory provider ClusterClass with test (#8892)
  • CAPIM: test/infra/inmemory: rename controller files (#8830)
  • 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: ClusterCacheTracker: improve error when workload cluster is not reachable (#8801)
  • ClusterCacheTracker: Deprecate DefaultIndex usage and remove where not needed (#8855)
  • ClusterCacheTracker: Use ClusterCacheTracker consistently (instead of NewClusterClient) (#8744)
  • ClusterCacheTracker: Use rest config from ClusterCacheTracker consistently (#8894)
  • ClusterClass: cluster/topology: use cached MD list in get current state (#8922)
  • ClusterClass: deprecate rolloutAfter in cluster topology (#8324)
  • ClusterClass: upgrading control plane should only be blocked if MD are upgrading (not just rolling out) (#8658)
  • Core: Cache unstructured in Cluster, MD and MS controller (#8916)
  • Core: Remove unnecessary requeues (#8743)
  • Dependency: Bump EndBug/add-and-commit from 9.1.1 to 9.1.2 (#8584)
  • Dependency: Bump EndBug/add-and-commit from 9.1.2 to 9.1.3 (#8621)
  • Dependency: Bump actions/checkout from 3.3.0 to 3.4.0 (#8321)
  • Dependency: Bump actions/checkout from 3.4.0 to 3.5.0 (#8389)
  • Dependency: Bump actions/checkout from 3.5.0 to 3.5.2 (#8540)
  • Dependency: Bump actions/checkout from 3.5.2 to 3.5.3 (#8837)
  • Dependency: Bump actions/setup-go from 3.5.0 to 4.0.1 (#8664)
  • Dependency: Bump docker/distribution to v2.8.2 (#8645)
  • Dependency: Bump gcb-docker-gcloud from v20230424-910a2a439d to v20230522-312425ae46 (#8770)
  • Dependency: Bump gcb-docker-gcloud image (#8570)
  • Dependency: Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 (#8461)
  • Dependency: Bump github.com/onsi/ginkgo/v2 from 2.10.0 to 2.11.0 (#8891)
  • Dependency: Bump github.com/onsi...
Read more

v1.4.4

27 Jun 17:32
v1.4.4
00dbf7b
Compare
Choose a tag to compare

👌 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.3

📈 Overview

  • 12 new commits merged
  • 6 bugs fixed 🐛

🐛 Bug Fixes

  • CAPD: Add kind mapper (#8903)
  • CAPD: test/capd: fix kind mapper entry for v1.25.11 (#8915)
  • CI: Always build Kind images for upgrade tests (#8871)
  • CI: Ensure ALWAYS_BUILD_KIND_IMAGES is defaulted correctly in ci script (#8876)
  • e2e: Use known kindest/node image versions by sha for e2e upgrade tests (#8868)
  • CAPBK: ignition: start kubeadm after network.target (#8803)

🌱 Others

  • Dependency: Update KIND to v0.20.0 (#8911)
  • Dependency: Update cert-manager to v1.12.2 (#8888)
  • KCP: fix noisy error log triggered by missing patch helper (#8866)
  • CI: Add dependency label to github actions update (#8847)

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

Thanks to all our contributors! 😊

v1.3.9

27 Jun 17:32
v1.3.9
8e96ee3
Compare
Choose a tag to compare

👌 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.8

📈 Overview

  • 5 new commits merged
  • 3 bugs fixed 🐛

🐛 Bug Fixes

  • CI: Always build Kind images for upgrade tests (#8870)
  • CI: Ensure ALWAYS_BUILD_KIND_IMAGES is defaulted correctly in ci script (#8874)
  • CAPBK: ignition: start kubeadm after network.target (#8804)

🌱 Others

  • Dependency: Update cert-manager to v1.12.2 (#8887)
  • CI: Add dependency label to github actions update (#8846)

Thanks to all our contributors! 😊

v1.4.3

06 Jun 17:06
v1.4.3
14b88ca
Compare
Choose a tag to compare

👌 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

06 Jun 17:06
v1.3.8
7bbee2d
Compare
Choose a tag to compare

👌 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

02 May 17:30
v1.4.2
7b92ce4
Compare
Choose a tag to compare

👌 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

02 May 17:29
v1.3.7
89923bf
Compare
Choose a tag to compare

👌 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

04 Apr 18:34
v1.4.1
39d87e9
Compare
Choose a tag to compare

👌 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

28 Mar 17:20
v1.4.0
2c07717
Compare
Choose a tag to compare

👌 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...
Read more

v1.3.6

28 Mar 17:54
v1.3.6
5e87d61
Compare
Choose a tag to compare

👌 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! 😊