Releases: kubernetes-sigs/cluster-api
v1.11.0-beta.0
🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
More details about the release
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...
v1.10.4
👌 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
- github.com/go-viper/mapstructure/v2: v2.2.1 → v2.3.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.10
👌 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! 😊
v1.11.0-alpha.2
🚨 This is an ALPHA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
Changes since v1.11.0-alpha.1
📈 Overview
- 32 new commits merged
- 9 breaking changes
⚠️ - 2 feature additions ✨
- 4 bugs fixed 🐛
⚠️ Breaking Changes
- API: Drop unnecessary fields from contract-versioned object references (#12356)
- 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: Promote v1beta2 condition in CAPD (#12362)
- ClusterClass: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (again) (#12404)
- KCP: KCP tolerates diff not leading to changes on machines (#12402)
- MachineHealthCheck: Drop unnecessary fields from remediationTemplate references (#12368)
- MachineSet: Make Template in MachineSet & Spec in MachineTemplateSpec required (#12420)
- MachineSet/MachineDeployment: Use MachineSetDeletePolicy enum in MD & MS API (#12419)
✨ New Features
- clusterctl: Add Scaleway infrastructure provider to clusterctl (#12357)
- KCP/CABPK: Reintroduce KCP/CABPK ClusterConfiguration controlPlaneEndpoint (#12423)
🐛 Bug Fixes
- API: Ensure all pointer status fields are dereferenced correctly (#12412)
- CABPK: Fix rendering of ntp.enabled & users.inactive *bool values in cloud init (#12394)
- CI: Fixing failed to install kind for e2e tests (#12361)
- MachineDeployment: Bug fix to set machinedeployment AvailableReplicas (#12410)
🌱 Others
- API: Set minimum=1 on ObservedGeneration and KubeadmConfig APIEndpoint bindPort (#12417)
- CAPD: Ensure CAPD v1beta1 API package only imports core v1beta1 (#12405)
- CI: Bump KAL to 20250626 + enable uniquemarkers linter (#12427)
- Cluster: Ensure Cluster.status.failureDomains are alphabetically sorted (#12416)
- Cluster: Improve error message if rebase fails because target ClusterClass is not reconciled (#12415)
- clusterctl: Bump cert-manager to v1.18.1 (#12378)
- Dependency: Update github.com/go-viper/mapstructure/v2 to v2.3.0 (#12421)
- KCP/CABPK: KCP: Set MinItems=1 on ExternalEtcd.Endpoints (#12411)
- Testing/CI: Fix e2e test capi-e2e-release-1.8 (#12379)
- Testing: Test changes planned to comply optionalrequired linter (#12414)
Dependencies
Added
- go.yaml.in/yaml/v2: v2.4.2
- go.yaml.in/yaml/v3: v3.0.3
Changed
- github.com/go-viper/mapstructure/v2: v2.2.1 → v2.3.0
- k8s.io/api: v0.33.1 → v0.33.2
- k8s.io/apiextensions-apiserver: v0.33.1 → v0.33.2
- k8s.io/apimachinery: v0.33.1 → v0.33.2
- k8s.io/apiserver: v0.33.1 → v0.33.2
- k8s.io/client-go: v0.33.1 → v0.33.2
- k8s.io/cluster-bootstrap: v0.33.1 → v0.33.2
- k8s.io/code-generator: v0.33.1 → v0.33.2
- k8s.io/component-base: v0.33.1 → v0.33.2
- k8s.io/kms: v0.33.1 → v0.33.2
- sigs.k8s.io/yaml: v1.4.0 → v1.5.0
Removed
Nothing has changed.
More details about the release
Changes since v1.10.0
📈 Overview
- 219 new commits merged
- 54 breaking changes
⚠️ - 14 feature additions ✨
- 29 bugs fixed 🐛
⚠️ Breaking Changes
- API: Add CAPD v1beta2 types (#12226)
- API: Add v1beta2 types (#12037)
- API: Change .status.replicas fields to pointer + omitempty (#12250)
- 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: Promote v1beta2 condition in CAPD (#12362)
- 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: 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)
- IPAM: Refactor reference types for IPAM (#12365)
- KCP: KCP tolerates diff not leading to changes on machines (#12402)
- 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/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: 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: Add v1beta2 API for ExtensionConfig (#12197)
✨ New Features
- API: Block imports to internal packages in our API + restructure import restrictions (#12302)
- API: Deprecate v1alpha1 & v1beta1 API packages (#12254)
- 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)
- KCP/CABPK: Reintroduce KCP/CABPK ClusterConfiguration controlPlaneEndpoint (#12423)
- Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014)
- 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 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 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...
v1.11.0-alpha.1
🚨 This is an ALPHA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
More details about the release
Changes since v1.10.0
📈 Overview
- 186 new commits merged
- 45 breaking changes
⚠️ - 12 feature additions ✨
- 25 bugs fixed 🐛
⚠️ Breaking Changes
- API: Add CAPD v1beta2 types (#12226)
- API: Add v1beta2 types (#12037)
- API: Change .status.replicas fields to pointer + omitempty (#12250)
- API/Conditions: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
- API: Migrate API to use *Seconds instead of metav1.Duration fields (#12327)
- API: Move APIs to ./api (#12262)
- API: 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)
- 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 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: 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)
- IPAM: Refactor reference types for IPAM (#12365)
- Machine: Drop unnecessary fields from Machine status.nodeRef (#12352)
- MachineDeployment: Drop revisionHistory in MachineDeployment (#12274)
- MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232)
- MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245)
- 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: 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)
- Runtime SDK: Add v1beta2 API for ExtensionConfig (#12197)
✨ New Features
- API: Block imports to internal packages in our API + restructure import restrictions (#12302)
- API: Deprecate v1alpha1 & v1beta1 API packages (#12254)
- 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)
- Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014)
- 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
- Bootstrap: Make joinConfiguration.discovery.bootstrapToken.token optional (#12107)
- Bootstrap: Relax minLength for bootstrap.dataSecretName to 0 (#12164)
- CABPK: Increase ignition additionalConfig maxSize from 10 to 32 KB (#12222)
- CABPK: Make KubeadmConfig FileSystem.Label optional (#12019)
- 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)
- 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: Fix nil pointer in conversion (#12292)
- KCP: Fix rollout when init configuration in KCP is empty (#12344)
- Machine: fallback to InfraMachine providerID if Machine providerID is not set (#11985)
- 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)
- util/CRD migration: Fix cases where update validation fails (#11991)
- util: Fix typo for WithOwnedV1beta1Conditions to WithOwnedV1Beta1Conditions (#12218)
🌱 Others
- API: Drop hardcoded v1beta1 references (#12027)
- API: Move internal/apis to internal/api (#12296)
- API: Remove unused List conversion funcs (#12054)
- CAPIM: Ignore net.ErrClosed error during listener close & server shutdown (#12212)
- CI: Add govulncheck to ensure vulnerability (#12108)
- CI: Bump E2E to Kubernetes v1.33.0-rc.1 (#12099)
- CI: Bump golangci-lint v2 (#12088)
- CI: Bump KAL to 20250605073038, cleanup excludes, fix IPAM prefix field, add MaxItems to Machine.status.addresses (#12326)
- CI: Enable duplicatemarkers linter (#12228)
- CI: Enable statusoptional linter (#12229)
- CI: Remove govulncheck from the verify target (#12348)
- CI: Switch plugin to kube-api-linter (#12089)
- CI: Update version matrix for github workflows for release-1.10 (#11992)
- CI: Use release artifacts for CAPI v1.10 (#12147)
- ClusterClass: Improve webhook output to include the names of the clusters blocking a deletion (#12060)
- clusterctl: Add filename to clusterctl error about bad YAML (#12189)
- clusterctl: Add support for compatible contracts to clusterctl (#12018)
- clusterctl: Bump cert-manager to v1.17.1 (#12044)
- clusterctl: Bump cert-manager to v1.17.2 (#12210)
- clusterctl: Bump cert-manager to v1.18.0 (#12342)
- clusterctl: Change k0smotron repo location (#12225)
- clusterctl: Enforce skip upgrade policy in clusterctl (#12017)
- Community meeting: Add JoelSpeed to approvers (#12204)
- Conditions: Cleanup v1beta1 updateStatus functions (#12190)
- Conditions: Drop usage of v1beta1 conditions (#12109)
- Control-plane: Avoid large number of connection error traces in kubeadm controlplane controller (#12106)
- Dependency: Bump Go 1.24 (#12128)
- Dependency: Bump go to v1.23.8 (#12052)
- Dependency: Bump sigs.k8s.io/kind to v0.28.0 (#12243)
- Dependency: Bump sigs.k8s.io/kind to v0.29.0 (#12257)
- Dependency: Bump to Go v1.24.4, github.com/cloudflare/circl v1.6.1 (#12351)
- Devtools: Add KubeVirt support to Tilt dev workflow (#11697)
- Devtools: use v1beta2 for condition metrics and add metrics for dockercluster devcluster dockermachine devmachine extensionconfig ipaddressclaim and crs (#12006)
- e2e: Add an option to override custom node image name for kind cluster (#12186)
- e2e: Add retry for SSA requests against Kubernetes < v1.29 in clusterctl upgrade tests (#12067)
- e2e: Bump clusterctl_upgrade_test.go main and 1.10 tests to k8s v1.33.0 (#12193)
- e2e: Bump Kubernetes version used for testing to v1.33.0-rc.0 (#12073)
- e2e: Only run DescribeCluster if v1beta2 Cluster CRD is there (#12279)
- KCP: Allow unsetting etcd.local, etcd.external and dns (#12065)
- KCP: Bump corefile-migration library to v1.0.26 (#12058)
- KCP: Fix typo in forward etcd leadership error message (#12056)
- Misc: Remove jackfrancis from reviewers (#12134)
- KCP/CABPK: Remove unused updateClusterStatus (#12295)
- Release: Prepare main for v1.11 development (#12000)
- Release: Use github.base_ref in markdown-link-check ...
v1.10.3
👌 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.2
📈 Overview
- 4 new commits merged
- 3 bugs fixed 🐛
🐛 Bug Fixes
- API: Increase ignition additionalConfig maxSize from 10 to 32 KB (#12259)
- ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12345)
- clusterctl: Accept upper case version (#12321)
🌱 Others
- Dependency: Bump to Go v1.23.10, github.com/cloudflare/circl v1.6.1 (#12354)
Dependencies
Added
Nothing has changed.
Changed
- github.com/cloudflare/circl: v1.3.7 → v1.6.1
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.9
👌 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.8
📈 Overview
- 3 new commits merged
- 2 bugs fixed 🐛
🐛 Bug Fixes
- ClusterClass: Fix continuous reconciles because of apiVersion differences in Cluster topology controller (#12346)
- clusterctl: Accept upper case version (#12322)
🌱 Others
- Dependency: Bump to Go v1.23.10, github.com/cloudflare/circl v1.6.1 (#12355)
Dependencies
Added
Nothing has changed.
Changed
- github.com/cloudflare/circl: v1.3.7 → v1.6.1
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.11.0-alpha.0
🚨 This is a ALPHA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.
Changes since v1.10.0
📈 Overview
- 149 new commits merged
- 35 breaking changes
⚠️ - 9 feature additions ✨
- 19 bugs fixed 🐛
⚠️ Breaking Changes
- API: Add v1beta2 types (#12037)
- API: Change .status.replicas fields to pointer + omitempty (#12250)
- API: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091)
- API: Move APIs to ./api (#12262)
- API: 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)
- Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269)
- ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216)
- ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202)
- 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: Remove clusterctl alpha topology plan (#12283)
- 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)
- MachineDeployment: Drop revisionHistory in MachineDeployment (#12274)
- MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232)
- MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245)
- 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/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: Remove KubeadmConfig UseExperimentalRetryJoin (#12234)
- 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)
- Runtime SDK: Add v1beta2 API for ExtensionConfig (#12197)
✨ New Features
- API: Deprecate v1alpha1 & v1beta1 API packages (#12254)
- 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)
- Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014)
- 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
- Bootstrap: Make joinConfiguration.discovery.bootstrapToken.token optional (#12107)
- Bootstrap: Relax minLength for bootstrap.dataSecretName to 0 (#12164)
- CABPK: Increase ignition additionalConfig maxSize from 10 to 32 KB (#12222)
- CABPK: Make KubeadmConfig FileSystem.Label optional (#12019)
- CAPD: Fix worker machine count in CAPD template (#12028)
- CAPIM: Fix CAPD in-memory templates (#12013)
- CAPIM: fix error check (#12230)
- 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)
- 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: Fix nil pointer in conversion (#12292)
- Machine: fallback to InfraMachine providerID if Machine providerID is not set (#11985)
- 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)
- util: Fix cases where update validation fails (#11991)
- util: Fix typo for WithOwnedV1beta1Conditions to WithOwnedV1Beta1Conditions (#12218)
🌱 Others
- API: Drop hardcoded v1beta1 references (#12027)
- API: Remove unused List conversion funcs (#12054)
- CAPIM: Ignore net.ErrClosed error during listener close & server shutdown (#12212)
- CI: Add govulncheck to ensure vulnerability (#12108)
- CI: Bump E2E to Kubernetes v1.33.0-rc.1 (#12099)
- CI: Bump golangci-lint v2 (#12088)
- CI: Enable duplicatemarkers linter (#12228)
- CI: Switch plugin to kube-api-linter (#12089)
- CI: Update version matrix for github workflows for release-1.10 (#11992)
- CI: Use release artifacts for CAPI v1.10 (#12147)
- ClusterClass: Improve webhook output to include the names of the clusters blocking a deletion (#12060)
- clusterctl: Add filename to clusterctl error about bad YAML (#12189)
- clusterctl: Add support for compatible contracts to clusterctl (#12018)
- clusterctl: Bump cert-manager to v1.17.1 (#12044)
- clusterctl: Bump cert-manager to v1.17.2 (#12210)
- clusterctl: Change k0smotron repo location (#12225)
- clusterctl: Enforce skip upgrade policy in clusterctl (#12017)
- Community meeting: Add JoelSpeed to approvers (#12204)
- Conditions: Cleanup v1beta1 updateStatus functions (#12190)
- Conditions: Drop usage of v1beta1 conditions (#12109)
- Dependency: Bump Go 1.24 (#12128)
- Dependency: Bump go to v1.23.8 (#12052)
- Dependency: Bump sigs.k8s.io/kind to v0.28.0 (#12243)
- Dependency: Bump sigs.k8s.io/kind to v0.29.0 (#12257)
- Devtools: Add KubeVirt support to Tilt dev workflow (#11697)
- Devtools: use v1beta2 for condition metrics and add metrics for dockercluster devcluster dockermachine devmachine extensionconfig ipaddressclaim and crs (#12006)
- e2e: Add an option to override custom node image name for kind cluster (#12186)
- e2e: Add retry for SSA requests against Kubernetes < v1.29 in clusterctl upgrade tests (#12067)
- e2e: Bump clusterctl_upgrade_test.go main and 1.10 tests to k8s v1.33.0 (#12193)
- e2e: Bump Kubernetes version used for testing to v1.33.0-rc.0 (#12073)
- e2e: Only run DescribeCluster if v1beta2 Cluster CRD is there (#12279)
- KCP: Allow unsetting etcd.local, etcd.external and dns (#12065)
- KCP: Bump corefile-migration library to v1.0.26 (#12058)
- KCP: Fix typo in forward etcd leadership error message (#12056)
- Misc: Remove jackfrancis from reviewers (#12134)
- Release: Prepare main for v1.11 development (#12000)
- Release: Use github.base_ref in markdown-link-check (#12034)
- Runtime SDK: Block dependencies to internal packages for the RX implementation (#12297)
- Runtime SDK: Stop registering API types in the runtime extension scheme (#12042)
- Testing: Watch logs from init containers (#12208)
- Testing: Release Notes Generator - Test cases for main.go and ref.go (#11882)
- util: Move contract version & GetCompatibleVersions to contract package (#12032)
- util: Recover v1.10 util packages for conditions, patch and paused to util/deprecated/v1beta1 for provider migrations (#12224)
📖 Additionally, there have been 25 contributions to our documentation and book. (#11029, #11998, #12004, #12057, #12074, #12093, #12117, #12120, #12122, #12125, #12126, #12131, #12139, #12140, #12145, #12150, #12163, #12165, #12188, #12201, #12205, #12236, #12246, #12266, #12284)
Dependencies
Added
- github.com/klauspost/compress: v1.18.0
- github.com/kylelemons/godebug: v1.1.0
- github.com/prashantv/gostub: v1.1.0
- go.opentelemetry.io/auto/sdk: v1.1.0
- go.uber.org/automaxprocs: v1.6.0
- gopkg.in/go-jose/go-jose.v2: v2.6.3
- sigs.k8s.io/randfill: v1.0.0
Changed
- cel.dev/expr: v0.18.0 → v0.19.1
- github.com/coreos/go-oidc: v2.2.1+incompatible → v2.3.0+incompatible
- github.com/golang-jwt/jwt/v4: v4.5.0 → v4.5.2
- github.com/google/cel-go: v0.22.0 → v0.23.2
- github.com/google/gnostic-models: v0.6.8 → v0.6.9
- github.com/google/pprof: 40e02aa → 27863c8
- github.com/gorilla/websocket: v1.5.3 → e064f32
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.20.0 → v2.24.0
- github.com/onsi/ginkgo/v2: ...
v1.10.2
👌 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.1
📈 Overview
- 10 new commits merged
- 2 feature additions ✨
- 3 bugs fixed 🐛
✨ New Features
- Dependency: Complete bump to Kubernetes v1.33 (#12211)
- Dependency: Update KUBEBUILDER_ENVTEST_KUBERNETES_VERSION (#12167)
🐛 Bug Fixes
- Bootstrap: Relax minLength for bootstrap.dataSecretName to 0 (#12180)
- ClusterClass: Fix pattern on Cluster classNamespace field (#12252)
- Machine: fallback to InfraMachine providerID if Machine providerID is not set (#12209)
🌱 Others
- Dependency: Bump cert-manager to v1.17.2 (#12217)
- Dependency/Security: Bump modules to fix CVEs (#12176)
- e2e: Add 1.33 kind image to mapper.go file (#12192)
- e2e: Add an option to override custom node image name for kind cluster (#12239)
📖 Additionally, there has been 1 contribution to our documentation and book. (#12141)
Dependencies
Added
Nothing has changed.
Changed
- golang.org/x/net: v0.37.0 → v0.38.0
Removed
Nothing has changed.
Thanks to all our contributors! 😊
v1.9.8
👌 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.7
📈 Overview
- 4 new commits merged
- 1 bug fixed 🐛
🐛 Bug Fixes
- Bootstrap: Recreate bootstrap token if it was cleaned up (#12227)
🌱 Others
- Dependency: Bump go for make/build to 1.23 to fix CVEs (#12175)
- MachineDeployment: Add NamingStrategy to MachineDeployment (#12181)
- Security/CI: Add CVEs to Trivy ignore file (#12184)
Dependencies
Added
Nothing has changed.
Changed
Nothing has changed.
Removed
Nothing has changed.
Thanks to all our contributors! 😊