Skip to content

Releases: kubernetes-sigs/cluster-api

v1.11.0

19 Aug 16:37
2590bbf
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.30.x -> v1.33.x
  • Workload Cluster: v1.28.x -> v1.33.x

More information about version support can be found here

Highlights

  • Bumped to Go 1.24, controller-runtime v0.21, k8s.io/* v0.33, controller-gen v0.18 (also moved to sigs.k8s.io/randfill) (#12191)
  • v1beta2 API version has been introduced and considering the awesome amount of improvements it marks an important
    step in the journey towards graduating our API to v1.
    • Accordingly there is now a new v1beta2 version of our contract for providers.
    • Improve status:
      • The transition to the new K8s aligned conditions using metav1.Conditions types and the new condition semantic
        has been completed.
      • Replica counters are now consistent with new conditions and across all resources; new replica counters have been added at cluster level.
      • Semantic of contract fields in status have been improved and are now consistent across all resources.
      • The confusing FailureReason and FailureMessage fields have been dropped.
    • Support CC across namespaces: API changes planned for this feature have been implemented.
    • Improve object references:
      • Unnecessary fields have been dropped from object reference.
      • Object references are now GitOps friendly (API version is not overwritten anymore by controllers).
    • KubeadmConfig and KubeadmControlPlane APIs have been aligned with kubeadm v1beta4 API.
      • Additionally, fields inferred from top level objects have been removed, thus getting rid of a common source of confusion/issues.
  • Compliance with K8s API guidelines:
    • Thanks to the adoption of the KAL linter compliance with K8s API guidelines has been greatly improved.
    • All Duration fields are now represented as *int32 fields with units being part of the field name.
    • All bool fields have been changed to *bool to preserve user intent.
    • Extensive work has been done to ensure required and optional is explicitly set in the API, and that
      both serialization and validation works accordingly:
      • Stop rendering empty structs (review of all occurrences of omitempty and introduction of omitzero)
      • Do not allow "" when it is not semantically different from value not set (either you have to provide a non-empty string value or not set the field at all).
      • Do not allow 0 when it is not semantically different from value not set (either you have to provide a non-0 int value or not set the field at all).
      • Do not allow {} when it is not semantically different from value not set (either you have to set at least one property in the object or not set the field at all).
      • Do not allow [] when it is not semantically different from value not set (either you have to set at least one item in the list or not set the field at all).
      • Ensure validation for all enum types.
    • Missing list markers have been added for SSA.
    • Drop unnecessary pointers:
      • After fixing required and optional according to K8s API guidelines, extensive work has been done to
        drop unnecessary pointers thus improving the usability of the API's Go structs.
    • Avoid embedding structs: Coupling between API types has been reduced by reducing the usage of embedded structs.
    • Extensive work has been done to improve consistency across all resources, e.g.:
      • Fields for Machine deletion are under a new deletion struct in all resources.
      • Settings about rollout have been logically grouped in all resources.
      • Settings about health checks and remediation have been logically grouped in all resources.
    • Missing validations have been added where required.
    • Tech debt has been reduced by dropping deprecated fields.
  • ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12341)
  • KCP/CABPK: Add CertificateValidityPeriod and CACertificateValidityPeriod to KubeadmConfig (#12335)
  • KCP: Fix timeout handling in GetAPIServerCertificateExpiry and DialContext (#12554)
  • Machine: fallback to InfraMachine providerID during deletion if Machine providerID is not set (#11985)
  • Runtime SDK:
    • Optimize size of Runtime Hook requests (#12462)
    • Add mTLS support to Runtime Extension server and client (#12517)
  • Improved e2e test coverage, e.g.:
    • additional checks that resourceVersion stays stable after tests and that conditions are healthy (#12546 #12111)
    • test coverage for scaling from/to 0 with CAPD & cluster-autoscaler (#12572)
  • New providers in clusterctl: Scaleway (#12357), cdk8s (#12332)

See Cluster API v1.10 compared to v1.11 for more details

Notes for workload cluster upgrade to Kubernetes v1.34 with KCP

  • Context: Kubernetes/kubeadm <=> etcd compatibility:
    • kubeadm v1.33 only supports etcd v3.5 for Kubernetes v1.33
    • kubeadm v1.34 only supports etcd v3.6 for Kubernetes v1.34
  • The upgrade to etcd v3.6 requires etcd >= v3.5.20 (https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/)
  • Accordingly, when upgrading from Kubernetes v1.33 to v1.34:
    • ensure etcd >= v3.5.20 is used with Kubernetes v1.33 before the upgrade
    • upgrade to Kubernetes v1.34 and etcd v3.6 at the same time

Deprecation and Removals Warning

  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Remove deprecated ClusterVariable.definitionFrom field (#12202)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • clusterctl: Remove deprecated clusterctl alpha topology plan command (#12283)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • MachineDeployment: Removed deprecated revisionHistory (#12274)
  • MachineDeployment: Remove deprecated spec.progressDeadlineSeconds (#12232)
  • KCP/CABPK: Remove deprecated KubeadmConfig useExperimentalRetryJoin (#12234)
  • API: Deprecate v1alpha1 & v1beta1 API packages (#12254)

Changes since v1.10.0

📈 Overview

  • 360 new commits merged
  • 88 breaking changes ⚠️
  • 29 feature additions ✨
  • 50 bugs fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Add additional MinProperties & MinItems validation across multiple APIs (#12538)
  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add omitempty to required string without zero value (#12548)
  • API: Add omitzero on struct without zero value (#12550)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change all *metav1.Time fields to metav1.Time (#12518)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Fix required fields linter findings (#12558)
  • API: Improve Cluster CRD Go type (#12489)
  • API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
  • API: Move APIs to ./api (#12262)
  • API/Partially revert: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290)
  • API: Promote v1beta2 conditions (#12066)
  • API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12231)
  • API: Remove IPFamily from public APIs (move to CAPD/kind util) (#12215)
  • API: Remove pointers from ClusterClass and Cluster healthCheck fields (#12525)
  • API: Remove pointers from remaining pointer struct fields (#12545)
  • API: Rename namingStrategy => naming, machineNamingStrategy => machineNaming (#12524)
  • API: Restructure strategy fields (#12506)
  • CABPK: Align KubeadmConfig to kubeadm v1beta4 types (#12282)
  • CAPD: Align CAPD conversion to conversion of other providers (#12481)
  • CAPD/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in CAPD v1beta2 packages (#12393)
  • CAPD: Implement v1beta2 contract in CAPD (#12409)
  • CAPD: Keep using v1beta1 condition in CAPD Docker backend (#12450)
  • CAPD: Promote v1beta2 condition in CAPD (#12362)
  • CAPD: Stop using v1beta1 status in CAPD controllers (#12438)
  • CAPD: Update example manifests (#12480)
  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Drop unnecessary fields from ClusterClass template references (#12358)
  • ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216)
  • ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202)
  • ClusterClass: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (again) (#12404)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • ClusterClass: Rename deprecated ClusterClass Metadata fields to DeprecatedV1Beta1Metadata (#12273)
  • ClusterClass: Rename runtime extension fields in ClusterClass ExternalPatchDefinition (#12281)
  • ClusterClass: Restructure class...
Read more

v1.10.5

19 Aug 16:36
df6c089
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.28.x -> v1.33.x
  • Workload Cluster: v1.26.x -> v1.33.x

More information about version support can be found here

Changes since v1.10.4

📈 Overview

  • 6 new commits merged
  • 2 feature additions ✨
  • 1 bug fixed 🐛

✨ New Features

  • KCP: Bump corefile-migration to v1.0.27 (#12637)
  • Runtime SDK: Add mTLS support to runtime extension server and client (#12519)

🐛 Bug Fixes

  • MachineDeployment: Fix second rolling update for MD rolloutAfter (#12555)

🌱 Others

  • Dependency: Bump Go to v1.23.11 (#12530)
  • Dependency: Bump Go to v1.23.12 (#12612)
  • Testing: Skipping test that is failing because of infra issues (#12566)

Dependencies

Added

Nothing has changed.

Changed

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.9.11

19 Aug 16:36
01ece42
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.28.x -> v1.32.x
  • Workload Cluster: v1.26.x -> v1.32.x

More information about version support can be found here

Changes since v1.9.10

📈 Overview

  • 7 new commits merged
  • 1 feature addition ✨
  • 1 bug fixed 🐛

✨ New Features

  • KCP: Bump corefile-migration to v1.0.27 (#12638)

🐛 Bug Fixes

  • MachineDeployment: Fix second rolling update for MD rolloutAfter (#12556)

🌱 Others

  • Dependency: Bump github.com/docker/docker to v28.0.2+incompatible to fix CVE (#12645)
  • Dependency: Bump Go to v1.23.11 (#12531)
  • Dependency: Bump Go to v1.23.12 (#12620)
  • Dependency/Security: Add CVE-2025-22868 to Trivy ignore file (#12508)
  • Testing: Skipping test that is failing because of infra issues (#12567)

Dependencies

Added

Nothing has changed.

Changed

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.11.0-rc.1

12 Aug 18:12
0a2d8df
Compare
Choose a tag to compare
v1.11.0-rc.1 Pre-release
Pre-release

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

Highlights

  • Bumped to Go 1.24, controller-runtime v0.21, k8s.io/* v0.33, controller-gen v0.18 (also moved to sigs.k8s.io/randfill) (#12191)
  • v1beta2 API version has been introduced and considering the awesome amount of improvements it marks an important
    step in the journey towards graduating our API to v1.
    • Accordingly there is now a new v1beta2 version of our contract for providers.
    • Improve status:
      • The transition to the new K8s aligned conditions using metav1.Conditions types and the new condition semantic
        has been completed.
      • Replica counters are now consistent with new conditions and across all resources; new replica counters have been added at cluster level.
      • Semantic of contract fields in status have been improved and are now consistent across all resources.
      • The confusing FailureReason and FailureMessage fields have been dropped.
    • Support CC across namespaces: API changes planned for this feature have been implemented.
    • Improve object references:
      • Unnecessary fields have been dropped from object reference.
      • Object references are now GitOps friendly (API version is not overwritten anymore by controllers).
    • KubeadmConfig and KubeadmControlPlane APIs have been aligned with kubeadm v1beta4 API.
      • Additionally, fields inferred from top level objects have been removed, thus getting rid of a common source of confusion/issues.
  • Compliance with K8s API guidelines:
    • Thanks to the adoption of the KAL linter compliance with K8s API guidelines has been greatly improved.
    • All Duration fields are now represented as *int32 fields with units being part of the field name.
    • All bool fields have been changed to *bool to preserve user intent.
    • Extensive work has been done to ensure required and optional is explicitly set in the API, and that
      both serialization and validation works accordingly:
      • Stop rendering empty structs (review of all occurrences of omitempty and introduction of omitzero)
      • Do not allow "" when it is not semantically different from value not set (either you have to provide a non-empty string value or not set the field at all).
      • Do not allow 0 when it is not semantically different from value not set (either you have to provide a non-0 int value or not set the field at all).
      • Do not allow {} when it is not semantically different from value not set (either you have to set at least one property in the object or not set the field at all).
      • Do not allow [] when it is not semantically different from value not set (either you have to set at least one item in the list or not set the field at all).
      • Ensure validation for all enum types.
    • Missing list markers have been added for SSA.
    • Drop unnecessary pointers:
      • After fixing required and optional according to K8s API guidelines, extensive work has been done to
        drop unnecessary pointers thus improving the usability of the API's Go structs.
    • Avoid embedding structs: Coupling between API types has been reduced by reducing the usage of embedded structs.
    • Extensive work has been done to improve consistency across all resources, e.g.:
      • Fields for Machine deletion are under a new deletion struct in all resources.
      • Settings about rollout have been logically grouped in all resources.
      • Settings about health checks and remediation have been logically grouped in all resources.
    • Missing validations have been added where required.
    • Tech debt has been reduced by dropping deprecated fields.
  • ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12341)
  • KCP/CABPK: Add CertificateValidityPeriod and CACertificateValidityPeriod to KubeadmConfig (#12335)
  • KCP: Fix timeout handling in GetAPIServerCertificateExpiry and DialContext (#12554)
  • Machine: fallback to InfraMachine providerID during deletion if Machine providerID is not set (#11985)
  • Runtime SDK:
    • Optimize size of Runtime Hook requests (#12462)
    • Add mTLS support to Runtime Extension server and client (#12517)
  • Improved e2e test coverage, e.g.:
    • additional checks that resourceVersion stays stable after tests and that conditions are healthy (#12546 #12111)
    • test coverage for scaling from/to 0 with CAPD & cluster-autoscaler (#12572)
  • New providers in clusterctl: Scaleway (#12357), cdk8s (#12332)

See Cluster API v1.10 compared to v1.11 for more details

Notes for workload cluster upgrade to Kubernetes v1.34 with KCP

  • Context: Kubernetes/kubeadm <=> etcd compatibility:
    • kubeadm v1.33 only supports etcd v3.5 for Kubernetes v1.33
    • kubeadm v1.34 only supports etcd v3.6 for Kubernetes v1.34
  • The upgrade to etcd v3.6 requires etcd >= v3.5.20 (https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/)
  • Accordingly, when upgrading from Kubernetes v1.33 to v1.34:
    • ensure etcd >= v3.5.20 is used with Kubernetes v1.33 before the upgrade
    • upgrade to Kubernetes v1.34 and etcd v3.6 at the same time

Deprecation and Removals Warning

  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Remove deprecated ClusterVariable.definitionFrom field (#12202)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • clusterctl: Remove deprecated clusterctl alpha topology plan command (#12283)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • MachineDeployment: Removed deprecated revisionHistory (#12274)
  • MachineDeployment: Remove deprecated spec.progressDeadlineSeconds (#12232)
  • KCP/CABPK: Remove deprecated KubeadmConfig useExperimentalRetryJoin (#12234)
  • API: Deprecate v1alpha1 & v1beta1 API packages (#12254)

⚠️ RELEASE CANDIDATE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.30.x -> v1.33.x
  • Workload Cluster: v1.28.x -> v1.33.x

More information about version support can be found here

Changes since v1.11.0-rc.0

📈 Overview

  • 21 new commits merged
  • 3 feature additions ✨
  • 9 bugs fixed 🐛

✨ New Features

  • CAPD: Add scale from/to 0 support for CAPD (#12591)
  • e2e: Bump Kubernetes version used for testing to v1.34.0-rc.1 (#12625)
  • KCP/CABPK/CI: Bump KAL to pick up latest requiredfields linter, add Min/MaxLength to BootstrapToken (#12604)

🐛 Bug Fixes

  • CAPD: Run CAPD conversion tests in CI (#12588)
  • e2e: Fix autoscaler e2e test flake (#12627)
  • KCP: Fix ControlPlaneComponentHealthCheckSeconds validation in KubeadmConfigSpec.Validate (#12624)
  • KCP: Fix conversion issue in KubeadmControlPlaneTemplate with rolloutStrategy.type (#12622)
  • ClusterClass/MachinePool: Fix MP error in desired state calculation during Cluster creation (#12621)
  • Runtime SDK: Export ExtensionConfig webhook (#12599)
  • Testing: Fix flaky TestFuzzyConversion (Cluster) test (#12630)
  • Testing: Fix flaky TestReconcileMachinePhases unit test (#12632)
  • Testing: Fix flaky TestReconcileState unit test (#12633)

🌱 Others

  • Dependency: Bump Go to v1.24.6 (#12615)
  • e2e: Add quickstart e2e test with v1beta1 with ClusterClass and RuntimeSDK (#12590)
  • e2e: Improve check for Cluster Available condition in e2e tests (#12596)
  • Logging: Reduce noisy logs (#12626)
  • KCP/CABPK: Stop using unsafe for EnvVar conversion (#12631)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

More details about the release

Changes since v1.10.0

📈 Overview

  • 359 new commits merged
  • 88 breaking changes ⚠️
  • 28 feature additions ✨
  • 50 bugs fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Add additional MinProperties & MinItems validation across multiple APIs (#12538)
  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add omitempty to required string without zero value (#12548)
  • API: Add omitzero on struct without zero value (#12550)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change all *metav1.Time fields to metav1.Time (#12518)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Fix required fields linter findings (#12558)
  • API: Improve Cluster CRD Go type (#12489)
  • API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
  • API: Move APIs to ./api (#12262)
  • API/Partially revert: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290)
  • API: Promote v1beta2 conditions (#12066)
  • API: Remove DefaulterRemoveUnknownOrOmitabl...
Read more

v1.11.0-rc.0

05 Aug 18:03
1aab5f5
Compare
Choose a tag to compare
v1.11.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.

Highlights

  • Bumped to Go 1.24, controller-runtime v0.21, k8s.io/* v0.33, controller-gen v0.18 (also moved to sigs.k8s.io/randfill) (#12191)
  • v1beta2 API version has been introduced and considering the awesome amount of improvements it marks an important
    step in the journey towards graduating our API to v1.
    • Accordingly there is now a new v1beta2 version of our contract for providers.
    • Improve status:
      • The transition to the new K8s aligned conditions using metav1.Conditions types and the new condition semantic
        has been completed.
      • Replica counters are now consistent with new conditions and across all resources; new replica counters have been added at cluster level.
      • Semantic of contract fields in status have been improved and are now consistent across all resources.
      • The confusing FailureReason and FailureMessage fields have been dropped.
    • Support CC across namespaces: API changes planned for this feature have been implemented.
    • Improve object references:
      • Unnecessary fields have been dropped from object reference.
      • Object references are now GitOps friendly (API version is not overwritten anymore by controllers).
    • KubeadmConfig and KubeadmControlPlane APIs have been aligned with kubeadm v1beta4 API.
      • Additionally, fields inferred from top level objects have been removed, thus getting rid of a common source of confusion/issues.
  • Compliance with K8s API guidelines:
    • Thanks to the adoption of the KAL linter compliance with K8s API guidelines has been greatly improved.
    • All Duration fields are now represented as *int32 fields with units being part of the field name.
    • All bool fields have been changed to *bool to preserve user intent.
    • Extensive work has been done to ensure required and optional is explicitly set in the API, and that
      both serialization and validation works accordingly:
      • Stop rendering empty structs (review of all occurrences of omitempty and introduction of omitzero)
      • Do not allow "" when it is not semantically different from value not set (either you have to provide a non-empty string value or not set the field at all).
      • Do not allow 0 when it is not semantically different from value not set (either you have to provide a non-0 int value or not set the field at all).
      • Do not allow {} when it is not semantically different from value not set (either you have to set at least one property in the object or not set the field at all).
      • Do not allow [] when it is not semantically different from value not set (either you have to set at least one item in the list or not set the field at all).
      • Ensure validation for all enum types.
    • Missing list markers have been added for SSA.
    • Drop unnecessary pointers:
      • After fixing required and optional according to K8s API guidelines, extensive work has been done to
        drop unnecessary pointers thus improving the usability of the API's Go structs.
    • Avoid embedding structs: Coupling between API types has been reduced by reducing the usage of embedded structs.
    • Extensive work has been done to improve consistency across all resources, e.g.:
      • Fields for Machine deletion are under a new deletion struct in all resources.
      • Settings about rollout have been logically grouped in all resources.
      • Settings about health checks and remediation have been logically grouped in all resources.
    • Missing validations have been added where required.
    • Tech debt has been reduced by dropping deprecated fields.
  • ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12341)
  • KCP/CABPK: Add CertificateValidityPeriod and CACertificateValidityPeriod to KubeadmConfig (#12335)
  • KCP: Fix timeout handling in GetAPIServerCertificateExpiry and DialContext (#12554)
  • Machine: fallback to InfraMachine providerID during deletion if Machine providerID is not set (#11985)
  • Runtime SDK:
    • Optimize size of Runtime Hook requests (#12462)
    • Add mTLS support to Runtime Extension server and client (#12517)
  • Improved e2e test coverage, e.g.:
    • additional checks that resourceVersion stays stable after tests and that conditions are healthy (#12546 #12111)
    • test coverage for scaling from/to 0 with CAPD & cluster-autoscaler (#12572)
  • New providers in clusterctl: Scaleway (#12357), cdk8s (#12332)

See Cluster API v1.10 compared to v1.11 for more details

Notes for workload cluster upgrade to Kubernetes v1.34 with KCP

  • Context: Kubernetes/kubeadm <=> etcd compatibility:
    • kubeadm v1.33 only supports etcd v3.5 for Kubernetes v1.33
    • kubeadm v1.34 only supports etcd v3.6 for Kubernetes v1.34
  • The upgrade to etcd v3.6 requires etcd >= v3.5.20 (https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/)
  • Accordingly, when upgrading from Kubernetes v1.33 to v1.34:
    • ensure etcd >= v3.5.20 is used with Kubernetes v1.33 before the upgrade
    • upgrade to Kubernetes v1.34 and etcd v3.6 at the same time

Deprecation and Removals Warning

  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Remove deprecated ClusterVariable.definitionFrom field (#12202)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • clusterctl: Remove deprecated clusterctl alpha topology plan command (#12283)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • MachineDeployment: Removed deprecated revisionHistory (#12274)
  • MachineDeployment: Remove deprecated spec.progressDeadlineSeconds (#12232)
  • KCP/CABPK: Remove deprecated KubeadmConfig useExperimentalRetryJoin (#12234)
  • API: Deprecate v1alpha1 & v1beta1 API packages (#12254)

⚠️ RELEASE CANDIDATE NOTES ⚠️

👌 Kubernetes version support

  • Management Cluster: v1.30.x -> v1.33.x
  • Workload Cluster: v1.28.x -> v1.33.x

More information about version support can be found here

Changes since v1.11.0-beta.2

📈 Overview

  • 26 new commits merged
  • 7 breaking changes ⚠️
  • 2 feature additions ✨
  • 3 bugs fixed 🐛

⚠️ Breaking Changes

  • API: Add omitempty to required string without zero value (#12548)
  • API: Add omitzero on struct without zero value (#12550)
  • API: Fix required fields linter findings (#12558)
  • API: Remove pointers from remaining pointer struct fields (#12545)
  • CAPD: Update example manifests (#12480)
  • KCP/CABPK: Change BootstrapToken.Token from *BootstrapTokenString to BootstrapTokenString (#12565)
  • KCP/CABPK: Change User.PasswdFrom from *PasswdSource to PasswdSource + add omitzero, extend SSA patch helper to handle arrays (#12560)

✨ New Features

  • CI: Add conflicting markers linter (#12569)
  • MachinePool/Feat: set new replica fields for machine pools (#12528)

🐛 Bug Fixes

  • e2e: Fix Available/Ready checks on E2E test (#12549)
  • KCP: Fix timeout handling in GetAPIServerCertificateExpiry and DialContext (#12554)
  • Testing: Fix Test_ValidateCluster unit tests for mink8s (#12564)

🌱 Others

  • CI/Chore: Update golangci-lint to v2.3.0 (#12573)
  • ClusterClass: Improve validation of worker topology names in Cluster resource (#12561)
  • Dependency: Fix CVE-2025-54388 (#12574)
  • e2e: Add resource version check to clusterctl upgrade tests (#12546)
  • e2e: Fix ResourceVersion flake for MachinePools (#12552)
  • e2e: Set extraArgs in test extension (#12557)
  • e2e: Skipping test that is failing because of infra issues (#12496)
  • Testing/CI/e2e: Add checker to validate conditions for v1beta2 (#12111)

Dependencies

Added

Nothing has changed.

Changed

  • google.golang.org/grpc: v1.71.1 → v1.71.3

Removed

Nothing has changed.

More details about the release

Changes since v1.10.0

📈 Overview

  • 337 new commits merged
  • 88 breaking changes ⚠️
  • 25 feature additions ✨
  • 41 bugs fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Add additional MinProperties & MinItems validation across multiple APIs (#12538)
  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add omitempty to required string without zero value (#12548)
  • API: Add omitzero on struct without zero value (#12550)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change all *metav1.Time fields to metav1.Time (#12518)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Fix required fields linter findings (#12558)
  • API: Improve Cluster CRD Go type (#12489)
  • API: Migrate API to use *Seconds instea...
Read more

v1.11.0-beta.2

29 Jul 18:01
ead3737
Compare
Choose a tag to compare
v1.11.0-beta.2 Pre-release
Pre-release

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

⚠️ BETA RELEASE NOTES ⚠️

Changes since v1.11.0-beta.1

📈 Overview

  • 23 new commits merged
  • 7 breaking changes ⚠️
  • 5 feature additions ✨
  • 4 bugs fixed 🐛

⚠️ Breaking Changes

  • API: Add additional MinProperties & MinItems validation across multiple APIs (#12538)
  • API: Change all *metav1.Time fields to metav1.Time (#12518)
  • API: Remove pointers from ClusterClass and Cluster healthCheck fields (#12525)
  • API: Rename namingStrategy => naming, machineNamingStrategy => machineNaming (#12524)
  • API: Restructure strategy fields (#12506)
  • CAPD: Align CAPD conversion to conversion of other providers (#12481)
  • KCP/CABPK: Change envVars fields from []EnvVar to *[]EnvVar (#12539)

✨ New Features

  • CI: Bump KAL & add the notimestamps linter (#12520)
  • e2e: Bump Kubernetes version used for testing to v1.34.0-beta.0 (#12516)
  • KCP/CABPK: Add CertificateValidityPeriod and CACertificateValidityPeriod to KubeadmConfig (#12335)
  • KCP/CABPK: Stop requiring init or cluster configuration for first CP machine (#12540)
  • Runtime SDK: Add mTLS support to runtime extension server and client (#12517)

🐛 Bug Fixes

  • Conditions: Fix condition handling during controller start (#12536)
  • e2e: Fix e2e tests by fixing the etcd tag (#12523)
  • MachineSet: Fix v1beta1 MachinesReady condition on MachineSet (#12535)
  • Testing: Fix flakes in TestAPIAndWebhookChanges unit test (#12526)

🌱 Others

  • API: Set print columns for v1beta2 types (#12534)
  • Devtools: Fix Tiltfile (#12541)
  • e2e: Print the entire object diff if resource versions are not stable in e2e tests (#12527)
  • Runtime SDK: Fix lifecycle hooks conversions (#12507)

Dependencies

Added

  • github.com/envoyproxy/go-control-plane/envoy: v1.32.4
  • github.com/envoyproxy/go-control-plane/ratelimit: v0.1.0

Changed

  • github.com/cncf/xds/go: b4127c9 → cff3c89
  • github.com/envoyproxy/go-control-plane: v0.13.1 → v0.13.4
  • github.com/envoyproxy/protoc-gen-validate: v1.1.0 → v1.2.1
  • github.com/golang/glog: v1.2.2 → v1.2.4
  • github.com/onsi/gomega: v1.37.0 → v1.38.0
  • go.etcd.io/etcd/api/v3: v3.5.21 → v3.5.22
  • go.etcd.io/etcd/client/pkg/v3: v3.5.21 → v3.5.22
  • go.etcd.io/etcd/client/v3: v3.5.21 → v3.5.22
  • go.opentelemetry.io/contrib/detectors/gcp: v1.30.0 → v1.34.0
  • go.opentelemetry.io/otel/metric: v1.33.0 → v1.34.0
  • go.opentelemetry.io/otel/sdk/metric: v1.30.0 → v1.34.0
  • go.opentelemetry.io/otel/sdk: v1.33.0 → v1.34.0
  • go.opentelemetry.io/otel/trace: v1.33.0 → v1.34.0
  • go.opentelemetry.io/otel: v1.33.0 → v1.34.0
  • google.golang.org/genproto/googleapis/api: e6fa225 → 5f5ef82
  • google.golang.org/genproto/googleapis/rpc: 3abc09e → 1a7da9e
  • google.golang.org/grpc: v1.68.2 → v1.71.1
  • google.golang.org/protobuf: v1.36.5 → v1.36.6
  • sigs.k8s.io/yaml: v1.5.0 → v1.6.0

Removed

Nothing has changed.

More details about the release

Changes since v1.10.0

📈 Overview

  • 309 new commits merged
  • 81 breaking changes ⚠️
  • 23 feature additions ✨
  • 38 bugs fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Add additional MinProperties & MinItems validation across multiple APIs (#12538)
  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change all *metav1.Time fields to metav1.Time (#12518)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API: Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Improve Cluster CRD Go type (#12489)
  • API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
  • API: Move APIs to ./api (#12262)
  • API: Partially revert: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290)
  • API: Promote v1beta2 conditions (#12066)
  • API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12231)
  • API: Remove IPFamily from public APIs (move to CAPD/kind util) (#12215)
  • API: Remove pointers from ClusterClass and Cluster healthCheck fields (#12525)
  • API: Rename namingStrategy => naming, machineNamingStrategy => machineNaming (#12524)
  • API: Restructure strategy fields (#12506)
  • CABPK: Align KubeadmConfig to kubeadm v1beta4 types (#12282)
  • CAPD: Align CAPD conversion to conversion of other providers (#12481)
  • CAPD: Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in CAPD v1beta2 packages (#12393)
  • CAPD: Implement v1beta2 contract in CAPD (#12409)
  • CAPD: Keep using v1beta1 condition in CAPD Docker backend (#12450)
  • CAPD: Promote v1beta2 condition in CAPD (#12362)
  • CAPD: Stop using v1beta1 status in CAPD controllers (#12438)
  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Drop unnecessary fields from ClusterClass template references (#12358)
  • ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216)
  • ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202)
  • ClusterClass: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (again) (#12404)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • ClusterClass: Rename deprecated ClusterClass Metadata fields to DeprecatedV1Beta1Metadata (#12273)
  • ClusterClass: Rename runtime extension fields in ClusterClass ExternalPatchDefinition (#12281)
  • ClusterClass: Restructure classRef field in Cluster.spec.topology (#12235)
  • clusterctl: Clusterctl describe defaults to v1beta2 (#12369)
  • clusterctl: Remove clusterctl alpha topology plan (#12283)
  • ClusterResourceSet: Change ClusterResourceSetBinding Bindings field from []*ResourceSetBinding to []ResourceSetBinding (#12476)
  • ClusterResourceSet: Make clusterName field in ClusterResourceSetBinding required (#12276)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • Conditions: Swap condition packages (#12086)
  • Dependency: Bump to controller-runtime v0.21 / controller-tools v0.18 / k8s.io/* v0.33 / move to randfill (#12191)
  • e2e: Migrate E2E tests to v1beta2 (#12451)
  • e2e: Test/e2e: default to strict field validation & fix unknown field in ClusterClass YAML (#12501)
  • IPAM: Refactor reference types for IPAM (#12365)
  • KCP: KCP tolerates diff not leading to changes on machines (#12402)
  • KCP: Rename LastRemediationStatus.Timestamp to Time in KCP (#12452)
  • Machine: Drop unnecessary fields from Machine status.nodeRef (#12352)
  • MachineDeployment: Drop revisionHistory in MachineDeployment (#12274)
  • MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232)
  • MachineHealthCheck: Drop unnecessary fields from remediationTemplate references (#12368)
  • MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245)
  • MachineSet: Make Template in MachineSet & Spec in MachineTemplateSpec required (#12420)
  • API/CAPD: Update ControlPlaneEndpoint InfraCluster contract, align CAPD to infra contracts (#12465)
  • API/Cluster: Add initialization to Cluster status (#12098)
  • API/Control-plane/Bootstrap/KCP/CABPK/Cluster: Implement v1beta2 contract in cluster controller, KCP, CABPK (#12094)
  • API/KCP/CABPK/CI: Enable nomaps linter, Remove unused kubeadm ClusterStatus struct, Migrate Cluster.status.failureDomains to array (#12083)
  • API/Machine: Add initialization to Machine Status (#12101)
  • API/Machine: Move Machine deletion timeout fields into deletion group, move KCP machineTemplate spec fields to machineTemplate.spec (#12499)
  • API/MachinePool: Add initialization to MachinePool Status (#12102)
  • ClusterClass/MachineHealthCheck/Cluster: Restructure MHC fields in MHC, Cluster and ClusterClass CRDs (#12504)
  • clusterctl/Documentation: Remove reference and configurations for Packet (Equinix Metal) (#12143)
  • KCP/CABPK: Change envVars fields from []EnvVar to *[]EnvVar (#12539)
  • KCP/CABPK: Inline ControlPlaneComponent struct in APIServer / ControllerManager / Scheduler in CABPK (#12446)
  • KCP/CABPK: Remove KubeadmConfig UseExperimentalRetryJoin (#12234)
  • KCP/CABPK: Remove more defaulting from KubeadmConfig/KubeadmConfigTemplate/KCP/KCPTemplate (#12495)
  • KCP/CABPK: Remove redundant fields from CABPK / KCP ClusterConfiguration (#12319)
  • KCP/CABPK: Remove TypeMeta from KubeadmConfigSpec (#12350)
  • KCP/MachineSet/CABPK/CAPD/e2e/Cluster: Cleanup version handling of unsupported Kubernetes release...
Read more

v1.11.0-beta.1

22 Jul 16:27
fb0e2da
Compare
Choose a tag to compare
v1.11.0-beta.1 Pre-release
Pre-release

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

Changes since v1.11.0-beta.0

📈 Overview

  • 15 new commits merged
  • 5 breaking changes ⚠️
  • 1 feature addition ✨
  • 1 bug fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Improve Cluster CRD Go type (#12489)
  • e2e: Test/e2e: default to strict field validation & fix unknown field in ClusterClass YAML (#12501)
  • API/Machine: Move Machine deletion timeout fields into deletion group, move KCP machineTemplate spec fields to machineTemplate.spec (#12499)
  • ClusterClass/MachineHealthCheck/Cluster: Restructure MHC fields in MHC, Cluster and ClusterClass CRDs (#12504)
  • KCP/CABPK: Remove more defaulting from KubeadmConfig/KubeadmConfigTemplate/KCP/KCPTemplate (#12495)

✨ New Features

  • clusterctl: Adding Addon Provider for cdk8s (CAAPC) to cluster-api (#12332)

🐛 Bug Fixes

  • e2e: Bump cluster-autoscaler to v1.33, adjust RBAC, pin apiVersion to v1beta1 (#12502)

🌱 Others

  • CI: Bump KAL and remove enum exclude (#12500)
  • clusterctl: Cleanup clusterctl tests assets (#12510)
  • Dependency: Bump Go to v1.24.5 (#12509)
  • Release: Postpone v1.11 code freeze by one week (#12498)

Dependencies

Added

Nothing has changed.

Changed

  • github.com/spf13/pflag: v1.0.6 → v1.0.7
  • k8s.io/api: v0.33.2 → v0.33.3
  • k8s.io/apiextensions-apiserver: v0.33.2 → v0.33.3
  • k8s.io/apimachinery: v0.33.2 → v0.33.3
  • k8s.io/apiserver: v0.33.2 → v0.33.3
  • k8s.io/client-go: v0.33.2 → v0.33.3
  • k8s.io/cluster-bootstrap: v0.33.2 → v0.33.3
  • k8s.io/code-generator: v0.33.2 → v0.33.3
  • k8s.io/component-base: v0.33.2 → v0.33.3
  • k8s.io/kms: v0.33.2 → v0.33.3

Removed

Nothing has changed.

More details about the release

Changes since v1.10.0

📈 Overview

  • 285 new commits merged
  • 74 breaking changes ⚠️
  • 18 feature additions ✨
  • 34 bugs fixed 🐛

📝 Proposals

  • Core: Update autoscaling from zero enhancement proposal with support for platform-aware autoscale from zero (#11962)

⚠️ Breaking Changes

  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API: Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Improve Cluster CRD Go type (#12489)
  • API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
  • API: Move APIs to ./api (#12262)
  • API: Partially revert: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290)
  • API: Promote v1beta2 conditions (#12066)
  • API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12231)
  • API: Remove IPFamily from public APIs (move to CAPD/kind util) (#12215)
  • CABPK: Align KubeadmConfig to kubeadm v1beta4 types (#12282)
  • CAPD: Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in CAPD v1beta2 packages (#12393)
  • CAPD: Implement v1beta2 contract in CAPD (#12409)
  • CAPD: Keep using v1beta1 condition in CAPD Docker backend (#12450)
  • CAPD: Promote v1beta2 condition in CAPD (#12362)
  • CAPD: Stop using v1beta1 status in CAPD controllers (#12438)
  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Drop unnecessary fields from ClusterClass template references (#12358)
  • ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216)
  • ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202)
  • ClusterClass: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (again) (#12404)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • ClusterClass: Rename deprecated ClusterClass Metadata fields to DeprecatedV1Beta1Metadata (#12273)
  • ClusterClass: Rename runtime extension fields in ClusterClass ExternalPatchDefinition (#12281)
  • ClusterClass: Restructure classRef field in Cluster.spec.topology (#12235)
  • clusterctl: Clusterctl describe defaults to v1beta2 (#12369)
  • clusterctl: Remove clusterctl alpha topology plan (#12283)
  • ClusterResourceSet: Change ClusterResourceSetBinding Bindings field from []*ResourceSetBinding to []ResourceSetBinding (#12476)
  • ClusterResourceSet: Make clusterName field in ClusterResourceSetBinding required (#12276)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • Conditions: Swap condition packages (#12086)
  • Dependency: Bump to controller-runtime v0.21 / controller-tools v0.18 / k8s.io/* v0.33 / move to randfill (#12191)
  • e2e: Migrate E2E tests to v1beta2 (#12451)
  • e2e: Test/e2e: default to strict field validation & fix unknown field in ClusterClass YAML (#12501)
  • IPAM: Refactor reference types for IPAM (#12365)
  • KCP: KCP tolerates diff not leading to changes on machines (#12402)
  • KCP: Rename LastRemediationStatus.Timestamp to Time in KCP (#12452)
  • Machine: Drop unnecessary fields from Machine status.nodeRef (#12352)
  • MachineDeployment: Drop revisionHistory in MachineDeployment (#12274)
  • MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232)
  • MachineHealthCheck: Drop unnecessary fields from remediationTemplate references (#12368)
  • MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245)
  • MachineSet: Make Template in MachineSet & Spec in MachineTemplateSpec required (#12420)
  • API/CAPD: Update ControlPlaneEndpoint InfraCluster contract, align CAPD to infra contracts (#12465)
  • API/Cluster: Add initialization to Cluster status (#12098)
  • API/Control-plane/Bootstrap/KCP/CABPK/Cluster: Implement v1beta2 contract in cluster controller, KCP, CABPK (#12094)
  • API/KCP/CABPK/CI: Enable nomaps linter, Remove unused kubeadm ClusterStatus struct, Migrate Cluster.status.failureDomains to array (#12083)
  • API/Machine: Add initialization to Machine Status (#12101)
  • API/Machine: Move Machine deletion timeout fields into deletion group, move KCP machineTemplate spec fields to machineTemplate.spec (#12499)
  • API/MachinePool: Add initialization to MachinePool Status (#12102)
  • ClusterClass/MachineHealthCheck/Cluster: Restructure MHC fields in MHC, Cluster and ClusterClass CRDs (#12504)
  • clusterctl/Documentation: Remove reference and configurations for Packet (Equinix Metal) (#12143)
  • KCP/CABPK: Inline ControlPlaneComponent struct in APIServer / ControllerManager / Scheduler in CABPK (#12446)
  • KCP/CABPK: Remove KubeadmConfig UseExperimentalRetryJoin (#12234)
  • KCP/CABPK: Remove more defaulting from KubeadmConfig/KubeadmConfigTemplate/KCP/KCPTemplate (#12495)
  • KCP/CABPK: Remove redundant fields from CABPK / KCP ClusterConfiguration (#12319)
  • KCP/CABPK: Remove TypeMeta from KubeadmConfigSpec (#12350)
  • KCP/MachineSet/CABPK/CAPD/e2e/Cluster: Cleanup version handling of unsupported Kubernetes releases (#12303)
  • Machine/Cluster: Stop using FailureReason and FailureMessage in controllers (#12148)
  • Machine/MachinePool/MachineSet/MachineDeployment: Add MinReadySeconds to Machine and remove it from MachineDeployment, MachineSet, MachinePool. (#12153)
  • Machine/MachineSet/MachineDeployment/Cluster: Stop using deprecated replica counters in controllers (#12149)
  • MachineSet/MachineDeployment: Use MachineSetDeletePolicy enum in MD & MS API (#12419)
  • Runtime SDK/MachineDeployment: Make DeletePolicy & FailurePolicy enum fields non-pointers (#12453)
  • Runtime SDK: Add v1beta2 API for ExtensionConfig (#12197)
  • Runtime SDK: Change ExtensionConfig handler timeoutSeconds from *int32 to int32 & add Minimum=1 (#12475)

✨ New Features

  • API: Block imports to internal packages in our API + restructure import restrictions (#12302)
  • API: Deprecate v1alpha1 & v1beta1 API packages (#12254)
  • API: Remove pointer, add omitzero & MinProperties for initialization fields/structs (#12482)
  • clusterctl: Add Scaleway infrastructure provider to clusterctl (#12357)
  • clusterctl: Adding Addon Provider for cdk8s (CAAPC) to cluster-api (#12332)
  • clusterctl: Clearer diagnostics when provider metadata is missing or repo URL is stale (#12238)
  • clusterctl: Validate provider metadata (#12242)
  • Dependency: Bump controller-tools v0.17.3, conversion-gen v0.33.0 (#12129)
  • Dependency: Complete bump to Kubernetes v1.33 (#12206)
  • Dependency: Update KUBEBUILDER_ENVTEST_KUBERNETES_VERSION (#12130)
  • e2e: From 1.10 use GetStableReleaseOfMinor instead of GetLatestReleaseOfMinor (#12118)
  • Machine: Implement v1beta2 contract in Machine controller (#12038)
  • API/CI: Enable ssatags KAL linter (#12470)
  • KCP/CABPK: Reintroduce KCP/CABPK ClusterConfiguration controlPlaneEndpoint (#12423)
  • Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014)
  • Runtime SDK/ClusterClass: Optimize size of runtime hook requests (#12462)
  • Runtime SDK: Extend cluster builtin to include classNamesp...
Read more

v1.11.0-beta.0

15 Jul 17:14
7241308
Compare
Choose a tag to compare
v1.11.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.

More details about the release

⚠️ BETA RELEASE NOTES ⚠️

Changes since v1.10.0

📈 Overview

  • 267 new commits merged
  • 69 breaking changes ⚠️
  • 17 feature additions ✨
  • 33 bugs fixed 🐛

⚠️ Breaking Changes

  • API: Add CAPD v1beta2 types (#12226)
  • API: Add Minimum=0 marker to all MinReadySeconds fields (#12474)
  • API: Add v1beta2 types (#12037)
  • API: Align Spec fields to optionalfields API conventions (#12431)
  • API: Align Status fields to optionalfields API conventions (#12435)
  • API: Change .status.replicas fields to pointer + omitempty (#12250)
  • API: Change bool to *bool for all API types (#12436)
  • API: Change type of *string fields with invalid zero value to string (#12429)
  • API: Change type of int32 fields with valid zero value to *int32 (#12424)
  • API/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
  • API: Drop unnecessary fields from contract-versioned object references (#12356)
  • API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
  • API: Move APIs to ./api (#12262)
  • API/Partially revert: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290)
  • API: Promote v1beta2 conditions (#12066)
  • API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12231)
  • API: Remove IPFamily from public APIs (move to CAPD/kind util) (#12215)
  • CABPK: Align KubeadmConfig to kubeadm v1beta4 types (#12282)
  • CAPD/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in CAPD v1beta2 packages (#12393)
  • CAPD: Implement v1beta2 contract in CAPD (#12409)
  • CAPD: Keep using v1beta1 condition in CAPD Docker backend (#12450)
  • CAPD: Promote v1beta2 condition in CAPD (#12362)
  • CAPD: Stop using v1beta1 status in CAPD controllers (#12438)
  • Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
  • ClusterClass: Drop unnecessary fields from ClusterClass template references (#12358)
  • ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216)
  • ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202)
  • ClusterClass: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (again) (#12404)
  • ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268)
  • ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270)
  • ClusterClass: Rename deprecated ClusterClass Metadata fields to DeprecatedV1Beta1Metadata (#12273)
  • ClusterClass: Rename runtime extension fields in ClusterClass ExternalPatchDefinition (#12281)
  • ClusterClass: Restructure classRef field in Cluster.spec.topology (#12235)
  • clusterctl: Clusterctl describe defaults to v1beta2 (#12369)
  • clusterctl: Remove clusterctl alpha topology plan (#12283)
  • ClusterResourceSet: Change ClusterResourceSetBinding Bindings field from []*ResourceSetBinding to []ResourceSetBinding (#12476)
  • ClusterResourceSet: Make clusterName field in ClusterResourceSetBinding required (#12276)
  • ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267)
  • Conditions: Swap condition packages (#12086)
  • Dependency: Bump to controller-runtime v0.21 / controller-tools v0.18 / k8s.io/* v0.33 / move to randfill (#12191)
  • e2e: Migrate E2E tests to v1beta2 (#12451)
  • IPAM: Refactor reference types for IPAM (#12365)
  • KCP: KCP tolerates diff not leading to changes on machines (#12402)
  • KCP: Rename LastRemediationStatus.Timestamp to Time in KCP (#12452)
  • Machine: Drop unnecessary fields from Machine status.nodeRef (#12352)
  • MachineDeployment: Drop revisionHistory in MachineDeployment (#12274)
  • MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232)
  • MachineHealthCheck: Drop unnecessary fields from remediationTemplate references (#12368)
  • MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245)
  • MachineSet: Make Template in MachineSet & Spec in MachineTemplateSpec required (#12420)
  • API/CAPD: Update ControlPlaneEndpoint InfraCluster contract, align CAPD to infra contracts (#12465)
  • API/Cluster: Add initialization to Cluster status (#12098)
  • API/Control-plane/Bootstrap/KCP/CABPK/Cluster: Implement v1beta2 contract in cluster controller, KCP, CABPK (#12094)
  • API/KCP/CABPK/CI: Enable nomaps linter, Remove unused kubeadm ClusterStatus struct, Migrate Cluster.status.failureDomains to array (#12083)
  • API/Machine: Add initialization to Machine Status (#12101)
  • API/MachinePool: Add initialization to MachinePool Status (#12102)
  • clusterctl/Documentation: Remove reference and configurations for Packet (Equinix Metal) (#12143)
  • KCP/CABPK: Inline ControlPlaneComponent struct in APIServer / ControllerManager / Scheduler in CABPK (#12446)
  • KCP/CABPK: Remove KubeadmConfig UseExperimentalRetryJoin (#12234)
  • KCP/CABPK: Remove redundant fields from CABPK / KCP ClusterConfiguration (#12319)
  • KCP/CABPK: Remove TypeMeta from KubeadmConfigSpec (#12350)
  • KCP/MachineSet/CABPK/CAPD/e2e/Cluster: Cleanup version handling of unsupported Kubernetes releases (#12303)
  • Machine/Cluster: Stop using FailureReason and FailureMessage in controllers (#12148)
  • Machine/MachinePool/MachineSet/MachineDeployment: Add MinReadySeconds to Machine and remove it from MachineDeployment, MachineSet, MachinePool. (#12153)
  • Machine/MachineSet/MachineDeployment/Cluster: Stop using deprecated replica counters in controllers (#12149)
  • MachineSet/MachineDeployment: Use MachineSetDeletePolicy enum in MD & MS API (#12419)
  • Runtime SDK/MachineDeployment: Make DeletePolicy & FailurePolicy enum fields non-pointers (#12453)
  • Runtime SDK: Add v1beta2 API for ExtensionConfig (#12197)
  • Runtime SDK: Change ExtensionConfig handler timeoutSeconds from *int32 to int32 & add Minimum=1 (#12475)

✨ New Features

  • API: Block imports to internal packages in our API + restructure import restrictions (#12302)
  • API: Deprecate v1alpha1 & v1beta1 API packages (#12254)
  • API: Remove pointer, add omitzero & MinProperties for initialization fields/structs (#12482)
  • clusterctl: Add Scaleway infrastructure provider to clusterctl (#12357)
  • clusterctl: Clearer diagnostics when provider metadata is missing or repo URL is stale (#12238)
  • clusterctl: Validate provider metadata (#12242)
  • Dependency: Bump controller-tools v0.17.3, conversion-gen v0.33.0 (#12129)
  • Dependency: Complete bump to Kubernetes v1.33 (#12206)
  • Dependency: Update KUBEBUILDER_ENVTEST_KUBERNETES_VERSION (#12130)
  • e2e: From 1.10 use GetStableReleaseOfMinor instead of GetLatestReleaseOfMinor (#12118)
  • Machine: Implement v1beta2 contract in Machine controller (#12038)
  • API/CI: Enable ssatags KAL linter (#12470)
  • KCP/CABPK: Reintroduce KCP/CABPK ClusterConfiguration controlPlaneEndpoint (#12423)
  • Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014)
  • Runtime SDK/ClusterClass: Optimize size of runtime hook requests (#12462)
  • Runtime SDK: Extend cluster builtin to include classNamespace (#12050)
  • Testing: Bump Kubernetes in tests to v1.33.0 and claim support for v1.33 (#12104)

🐛 Bug Fixes

  • API: Ensure all pointer status fields are dereferenced correctly (#12412)
  • Bootstrap: Make joinConfiguration.discovery.bootstrapToken.token optional (#12107)
  • Bootstrap: Relax minLength for bootstrap.dataSecretName to 0 (#12164)
  • CABPK: Fix rendering of .Append = false in CABPK (#12437)
  • CABPK: Fix rendering of ntp.enabled & users.inactive *bool values in cloud init (#12394)
  • CABPK: Increase ignition additionalConfig maxSize from 10 to 32 KB (#12222)
  • CABPK: Make KubeadmConfig FileSystem.Label optional (#12019)
  • CAPD: Fix IPv6 CAPD e2e test (#12488)
  • CAPD: Fix worker machine count in CAPD template (#12028)
  • CAPIM: Fix CAPD in-memory templates (#12013)
  • CAPIM/Mux: fix error check (#12230)
  • CI: Fix conversion-verifier and fix findings (#12349)
  • CI: Fixing failed to install kind for e2e tests (#12361)
  • ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12341)
  • clusterctl: Accept upper case version (#12237)
  • clusterctl: Add missing API version to NS object (#12200)
  • clusterctl: Clusterctl upgrade hangs for a time on CRD migration when new version contains a number of new CRDs (#11984)
  • ClusterResourceSet: Fix potential panic if ClusterResourceSetStrategy is not defined or incorrect (#12096)
  • e2e: Stop overwriting ExtraPortMappings if WithDockerSockMount option is used (#12012)
  • IPAM: Enable conversion in CRDs (#12198)
  • IPAM: Revert condition func changes for IPAddressClaim v1beta1 (#12223)
  • KCP: Allow transition of KubeadmControlPlaneTemplate from defaulted rolloutStrategy to unset (#12467)
  • KCP: Fix nil pointer in conversion (#12292)
  • KCP: Fix rollout when init configuration in KCP is empty (#12344)
  • Machine/Machine deletion: fallback to InfraMachine providerID if Machine providerID is not set (#11985)
  • MachineDeployment: Bug fix to set machinedeployment AvailableReplicas (#12410)
  • MachineDeployment: Fix second rolling update for MD rolloutAfter (#12261)
  • API/ClusterClass: Fix MaxLength of worker topology Name fields (#12072)
  • Dependency/CI: Upgrade golangci-lint to v2.1.0 (#12170)
  • Testing/CI: Fix the condition to check whether cluster has v1beta2 conditions (#12100)
  • Testing: Fix race condition in InMemoryMachine controller tests (#12347)
  • util/CRD migration: Fix cases where update validation fails (#11991)
  • util: Fix typo for WithOwnedV1beta1Conditions to WithOwnedV1Beta1Conditions (#12218)

:seed...

Read more

v1.10.4

15 Jul 17:14
737edc8
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.28.x -> v1.33.x
  • Workload Cluster: v1.26.x -> v1.33.x

More information about version support can be found here

Changes since v1.10.3

📈 Overview

  • 10 new commits merged
  • 1 bug fixed 🐛

🐛 Bug Fixes

  • CI: Fixing failed to install kind for e2e tests (#12374)

🌱 Others

  • clusterctl: Add Scaleway infrastructure provider to clusterctl (#12387)
  • Dependency: Bump cert-manager to v1.18.0 (#12373)
  • Dependency: Bump cert-manager to v1.18.1 (#12381)
  • Dependency: Update github.com/go-viper/mapstructure/v2 to v2.3.0 (#12422)
  • e2e: Fix e2e test capi-e2e-release-1.8 (#12395)
  • KCP: Add --etcd-client-log-level flag to KCP (#12463)

📖 Additionally, there have been 3 contributions to our documentation and book. (#12383, #12456, #12457)

Dependencies

Added

Nothing has changed.

Changed

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.9.10

15 Jul 17:13
1ba34b0
Compare
Choose a tag to compare

👌 Kubernetes version support

  • Management Cluster: v1.28.x -> v1.32.x
  • Workload Cluster: v1.26.x -> v1.32.x

More information about version support can be found here

Changes since v1.9.9

📈 Overview

  • 4 new commits merged
  • 1 bug fixed 🐛

🐛 Bug Fixes

  • CI: Fixing failed to install kind for e2e tests (#12375)

🌱 Others

  • e2e: Fix e2e test capi-e2e-release-1.8 (#12396)
  • KCP: Add --etcd-client-log-level flag to KCP (#12468)

📖 Additionally, there has been 1 contribution to our documentation and book. (#12384)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊