From cf875c033154ad8f99bee75afdff36050ea0199c Mon Sep 17 00:00:00 2001 From: Matt Boersma Date: Tue, 18 Nov 2025 10:58:28 -0700 Subject: [PATCH] Update v1.12.0-beta.1 release notes --- CHANGELOG/v1.12.0-beta.1.md | 84 ------------------------------------- 1 file changed, 84 deletions(-) diff --git a/CHANGELOG/v1.12.0-beta.1.md b/CHANGELOG/v1.12.0-beta.1.md index ab07ee747ba1..b86ad2267049 100644 --- a/CHANGELOG/v1.12.0-beta.1.md +++ b/CHANGELOG/v1.12.0-beta.1.md @@ -87,90 +87,6 @@ _Nothing has changed._ More details about the release :warning: **BETA RELEASE NOTES** :warning: -## 👌 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](https://cluster-api.sigs.k8s.io/reference/versions.html) - -## 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](https://github.com/kubernetes-sigs/kube-api-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](https://main.cluster-api.sigs.k8s.io/developer/providers/migrations/v1.10-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.11.0 ## :chart_with_upwards_trend: Overview