|
| 1 | +🚨 This is a ALPHA RELEASE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new). |
| 2 | +<details> |
| 3 | +<summary>More details about the release</summary> |
| 4 | + |
| 5 | +:warning: **ALPHA RELEASE NOTES** :warning: |
| 6 | + |
| 7 | +## Changes since v1.10.0 |
| 8 | +## :chart_with_upwards_trend: Overview |
| 9 | +- 149 new commits merged |
| 10 | +- 35 breaking changes :warning: |
| 11 | +- 9 feature additions ✨ |
| 12 | +- 19 bugs fixed 🐛 |
| 13 | + |
| 14 | +## :warning: Breaking Changes |
| 15 | +- API: Add v1beta2 types (#12037) |
| 16 | +- API: Change .status.replicas fields to pointer + omitempty (#12250) |
| 17 | +- API: add V1Beta1 suffix and remove V1Beta2 suffix from condition types and reasons in v1beta2 packages (#12091) |
| 18 | +- API: Move APIs to ./api (#12262) |
| 19 | +- API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12290) |
| 20 | +- API: Promote v1beta2 conditions (#12066) |
| 21 | +- API: Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#12231) |
| 22 | +- API: Remove IPFamily from public APIs (move to CAPD/kind util) (#12215) |
| 23 | +- CABPK: Align KubeadmConfig to kubeadm v1beta4 types (#12282) |
| 24 | +- Cluster: Remove deprecated index ByClusterClassName, ClusterByClusterClassClassName and ClusterClassNameField (#12269) |
| 25 | +- ClusterClass: Move infrastructure namingStrategy field in ClusterClass (#12216) |
| 26 | +- ClusterClass: Remove ClusterVariable.DefinitionFrom field (#12202) |
| 27 | +- ClusterClass: Remove deprecated Cluster.spec.topology.rolloutAfter field (#12268) |
| 28 | +- ClusterClass: Remove deprecated ClusterCacheTracker and corresponding types (#12270) |
| 29 | +- ClusterClass: Rename deprecated ClusterClass Metadata fields to DeprecatedV1Beta1Metadata (#12273) |
| 30 | +- ClusterClass: Rename runtime extension fields in ClusterClass ExternalPatchDefinition (#12281) |
| 31 | +- ClusterClass: Restructure classRef field in Cluster.spec.topology (#12235) |
| 32 | +- clusterctl: Remove clusterctl alpha topology plan (#12283) |
| 33 | +- ClusterResourceSet: Make clusterName field in ClusterResourceSetBinding required (#12276) |
| 34 | +- ClusterResourceSet: Remove deprecated ClusterResourceSetBinding.DeleteBinding method (#12267) |
| 35 | +- Conditions: Swap condition packages (#12086) |
| 36 | +- Dependency: Bump to controller-runtime v0.21 / controller-tools v0.18 / k8s.io/* v0.33 / move to randfill (#12191) |
| 37 | +- MachineDeployment: Drop revisionHistory in MachineDeployment (#12274) |
| 38 | +- MachineDeployment: Remove MD spec.progressDeadlineSeconds (#12232) |
| 39 | +- MachineHealthCheck: Rename MHC unhealthyConditions to unhealthyNodeConditions (#12245) |
| 40 | +- API/Cluster: Add initialization to Cluster status (#12098) |
| 41 | +- API/Control-plane/Bootstrap/KCP/CABPK/Cluster: Implement v1beta2 contract in cluster controller, KCP, CABPK (#12094) |
| 42 | +- API/Machine: Add initialization to Machine Status (#12101) |
| 43 | +- API/MachinePool: Add initialization to MachinePool Status (#12102) |
| 44 | +- clusterctl/Documentation: Remove reference and configurations for Packet (Equinix Metal) (#12143) |
| 45 | +- KCP/CABPK: Remove KubeadmConfig UseExperimentalRetryJoin (#12234) |
| 46 | +- Machine/Cluster: Stop using FailureReason and FailureMessage in controllers (#12148) |
| 47 | +- Machine/MachinePool/MachineSet/MachineDeployment: Add MinReadySeconds to Machine and remove it from MachineDeployment, MachineSet, MachinePool. (#12153) |
| 48 | +- Machine/MachineSet/MachineDeployment/Cluster: Stop using deprecated replica counters in controllers (#12149) |
| 49 | +- Runtime SDK: Add v1beta2 API for ExtensionConfig (#12197) |
| 50 | + |
| 51 | +## :sparkles: New Features |
| 52 | +- API: Deprecate v1alpha1 & v1beta1 API packages (#12254) |
| 53 | +- Dependency: Bump controller-tools v0.17.3, conversion-gen v0.33.0 (#12129) |
| 54 | +- Dependency: Complete bump to Kubernetes v1.33 (#12206) |
| 55 | +- Dependency: Update KUBEBUILDER_ENVTEST_KUBERNETES_VERSION (#12130) |
| 56 | +- e2e: From 1.10 use GetStableReleaseOfMinor instead of GetLatestReleaseOfMinor (#12118) |
| 57 | +- Machine: Implement v1beta2 contract in Machine controller (#12038) |
| 58 | +- Runtime SDK/ClusterClass: Extend Cluster builtin to include metadata (#12014) |
| 59 | +- Runtime SDK: Extend cluster builtin to include classNamespace (#12050) |
| 60 | +- Testing: Bump Kubernetes in tests to v1.33.0 and claim support for v1.33 (#12104) |
| 61 | + |
| 62 | +## :bug: Bug Fixes |
| 63 | +- Bootstrap: Make joinConfiguration.discovery.bootstrapToken.token optional (#12107) |
| 64 | +- Bootstrap: Relax minLength for bootstrap.dataSecretName to 0 (#12164) |
| 65 | +- CABPK: Increase ignition additionalConfig maxSize from 10 to 32 KB (#12222) |
| 66 | +- CABPK: Make KubeadmConfig FileSystem.Label optional (#12019) |
| 67 | +- CAPD: Fix worker machine count in CAPD template (#12028) |
| 68 | +- CAPIM: Fix CAPD in-memory templates (#12013) |
| 69 | +- CAPIM: fix error check (#12230) |
| 70 | +- clusterctl: Add missing API version to NS object (#12200) |
| 71 | +- clusterctl: Clusterctl upgrade hangs for a time on CRD migration when new version contains a number of new CRDs (#11984) |
| 72 | +- e2e: Stop overwriting ExtraPortMappings if WithDockerSockMount option is used (#12012) |
| 73 | +- IPAM: Enable conversion in CRDs (#12198) |
| 74 | +- IPAM: Revert condition func changes for IPAddressClaim v1beta1 (#12223) |
| 75 | +- KCP: Fix nil pointer in conversion (#12292) |
| 76 | +- Machine: fallback to InfraMachine providerID if Machine providerID is not set (#11985) |
| 77 | +- API/ClusterClass: Fix MaxLength of worker topology Name fields (#12072) |
| 78 | +- Dependency/CI: Upgrade golangci-lint to v2.1.0 (#12170) |
| 79 | +- Testing/CI: Fix the condition to check whether cluster has v1beta2 conditions (#12100) |
| 80 | +- util: Fix cases where update validation fails (#11991) |
| 81 | +- util: Fix typo for WithOwnedV1beta1Conditions to WithOwnedV1Beta1Conditions (#12218) |
| 82 | + |
| 83 | +## :seedling: Others |
| 84 | +- API: Drop hardcoded v1beta1 references (#12027) |
| 85 | +- API: Remove unused List conversion funcs (#12054) |
| 86 | +- CAPIM: Ignore net.ErrClosed error during listener close & server shutdown (#12212) |
| 87 | +- CI: Add govulncheck to ensure vulnerability (#12108) |
| 88 | +- CI: Bump E2E to Kubernetes v1.33.0-rc.1 (#12099) |
| 89 | +- CI: Bump golangci-lint v2 (#12088) |
| 90 | +- CI: Enable duplicatemarkers linter (#12228) |
| 91 | +- CI: Switch plugin to kube-api-linter (#12089) |
| 92 | +- CI: Update version matrix for github workflows for release-1.10 (#11992) |
| 93 | +- CI: Use release artifacts for CAPI v1.10 (#12147) |
| 94 | +- ClusterClass: Improve webhook output to include the names of the clusters blocking a deletion (#12060) |
| 95 | +- clusterctl: Add filename to clusterctl error about bad YAML (#12189) |
| 96 | +- clusterctl: Add support for compatible contracts to clusterctl (#12018) |
| 97 | +- clusterctl: Bump cert-manager to v1.17.1 (#12044) |
| 98 | +- clusterctl: Bump cert-manager to v1.17.2 (#12210) |
| 99 | +- clusterctl: Change k0smotron repo location (#12225) |
| 100 | +- clusterctl: Enforce skip upgrade policy in clusterctl (#12017) |
| 101 | +- Community meeting: Add JoelSpeed to approvers (#12204) |
| 102 | +- Conditions: Cleanup v1beta1 updateStatus functions (#12190) |
| 103 | +- Conditions: Drop usage of v1beta1 conditions (#12109) |
| 104 | +- Dependency: Bump Go 1.24 (#12128) |
| 105 | +- Dependency: Bump go to v1.23.8 (#12052) |
| 106 | +- Dependency: Bump sigs.k8s.io/kind to v0.28.0 (#12243) |
| 107 | +- Dependency: Bump sigs.k8s.io/kind to v0.29.0 (#12257) |
| 108 | +- Devtools: Add KubeVirt support to Tilt dev workflow (#11697) |
| 109 | +- Devtools: use v1beta2 for condition metrics and add metrics for dockercluster devcluster dockermachine devmachine extensionconfig ipaddressclaim and crs (#12006) |
| 110 | +- e2e: Add an option to override custom node image name for kind cluster (#12186) |
| 111 | +- e2e: Add retry for SSA requests against Kubernetes < v1.29 in clusterctl upgrade tests (#12067) |
| 112 | +- e2e: Bump clusterctl_upgrade_test.go main and 1.10 tests to k8s v1.33.0 (#12193) |
| 113 | +- e2e: Bump Kubernetes version used for testing to v1.33.0-rc.0 (#12073) |
| 114 | +- e2e: Only run DescribeCluster if v1beta2 Cluster CRD is there (#12279) |
| 115 | +- KCP: Allow unsetting etcd.local, etcd.external and dns (#12065) |
| 116 | +- KCP: Bump corefile-migration library to v1.0.26 (#12058) |
| 117 | +- KCP: Fix typo in forward etcd leadership error message (#12056) |
| 118 | +- Misc: Remove jackfrancis from reviewers (#12134) |
| 119 | +- Release: Prepare main for v1.11 development (#12000) |
| 120 | +- Release: Use github.base_ref in markdown-link-check (#12034) |
| 121 | +- Runtime SDK: Block dependencies to internal packages for the RX implementation (#12297) |
| 122 | +- Runtime SDK: Stop registering API types in the runtime extension scheme (#12042) |
| 123 | +- Testing: Watch logs from init containers (#12208) |
| 124 | +- Testing: Release Notes Generator - Test cases for main.go and ref.go (#11882) |
| 125 | +- util: Move contract version & GetCompatibleVersions to contract package (#12032) |
| 126 | +- util: Recover v1.10 util packages for conditions, patch and paused to util/deprecated/v1beta1 for provider migrations (#12224) |
| 127 | + |
| 128 | +:book: 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) |
| 129 | + |
| 130 | +## Dependencies |
| 131 | + |
| 132 | +### Added |
| 133 | +- github.com/klauspost/compress: [v1.18.0](https://github.com/klauspost/compress/tree/v1.18.0) |
| 134 | +- github.com/kylelemons/godebug: [v1.1.0](https://github.com/kylelemons/godebug/tree/v1.1.0) |
| 135 | +- github.com/prashantv/gostub: [v1.1.0](https://github.com/prashantv/gostub/tree/v1.1.0) |
| 136 | +- go.opentelemetry.io/auto/sdk: v1.1.0 |
| 137 | +- go.uber.org/automaxprocs: v1.6.0 |
| 138 | +- gopkg.in/go-jose/go-jose.v2: v2.6.3 |
| 139 | +- sigs.k8s.io/randfill: v1.0.0 |
| 140 | + |
| 141 | +### Changed |
| 142 | +- cel.dev/expr: v0.18.0 → v0.19.1 |
| 143 | +- github.com/coreos/go-oidc: [v2.2.1+incompatible → v2.3.0+incompatible](https://github.com/coreos/go-oidc/compare/v2.2.1...v2.3.0) |
| 144 | +- github.com/golang-jwt/jwt/v4: [v4.5.0 → v4.5.2](https://github.com/golang-jwt/jwt/compare/v4.5.0...v4.5.2) |
| 145 | +- github.com/google/cel-go: [v0.22.0 → v0.23.2](https://github.com/google/cel-go/compare/v0.22.0...v0.23.2) |
| 146 | +- github.com/google/gnostic-models: [v0.6.8 → v0.6.9](https://github.com/google/gnostic-models/compare/v0.6.8...v0.6.9) |
| 147 | +- github.com/google/pprof: [40e02aa → 27863c8](https://github.com/google/pprof/compare/40e02aa...27863c8) |
| 148 | +- github.com/gorilla/websocket: [v1.5.3 → e064f32](https://github.com/gorilla/websocket/compare/v1.5.3...e064f32) |
| 149 | +- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.20.0 → v2.24.0](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.20.0...v2.24.0) |
| 150 | +- github.com/onsi/ginkgo/v2: [v2.23.3 → v2.23.4](https://github.com/onsi/ginkgo/compare/v2.23.3...v2.23.4) |
| 151 | +- github.com/onsi/gomega: [v1.36.3 → v1.37.0](https://github.com/onsi/gomega/compare/v1.36.3...v1.37.0) |
| 152 | +- github.com/pmezard/go-difflib: [5d4384e → v1.0.0](https://github.com/pmezard/go-difflib/compare/5d4384e...v1.0.0) |
| 153 | +- github.com/prometheus/client_golang: [v1.19.1 → v1.22.0](https://github.com/prometheus/client_golang/compare/v1.19.1...v1.22.0) |
| 154 | +- github.com/prometheus/common: [v0.55.0 → v0.62.0](https://github.com/prometheus/common/compare/v0.55.0...v0.62.0) |
| 155 | +- github.com/rogpeppe/go-internal: [v1.12.0 → v1.13.1](https://github.com/rogpeppe/go-internal/compare/v1.12.0...v1.13.1) |
| 156 | +- github.com/spf13/viper: [v1.20.0 → v1.20.1](https://github.com/spf13/viper/compare/v1.20.0...v1.20.1) |
| 157 | +- github.com/stretchr/objx: [v0.5.0 → v0.5.2](https://github.com/stretchr/objx/compare/v0.5.0...v0.5.2) |
| 158 | +- go.etcd.io/etcd/api/v3: v3.5.20 → v3.5.21 |
| 159 | +- go.etcd.io/etcd/client/pkg/v3: v3.5.20 → v3.5.21 |
| 160 | +- go.etcd.io/etcd/client/v2: v2.305.16 → v2.305.21 |
| 161 | +- go.etcd.io/etcd/client/v3: v3.5.20 → v3.5.21 |
| 162 | +- go.etcd.io/etcd/pkg/v3: v3.5.16 → v3.5.21 |
| 163 | +- go.etcd.io/etcd/raft/v3: v3.5.16 → v3.5.21 |
| 164 | +- go.etcd.io/etcd/server/v3: v3.5.16 → v3.5.21 |
| 165 | +- go.opentelemetry.io/contrib/detectors/gcp: v1.29.0 → v1.30.0 |
| 166 | +- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.54.0 → v0.58.0 |
| 167 | +- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.54.0 → v0.58.0 |
| 168 | +- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.27.0 → v1.33.0 |
| 169 | +- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.28.0 → v1.33.0 |
| 170 | +- go.opentelemetry.io/otel/metric: v1.29.0 → v1.33.0 |
| 171 | +- go.opentelemetry.io/otel/sdk/metric: v1.29.0 → v1.30.0 |
| 172 | +- go.opentelemetry.io/otel/sdk: v1.29.0 → v1.33.0 |
| 173 | +- go.opentelemetry.io/otel/trace: v1.29.0 → v1.33.0 |
| 174 | +- go.opentelemetry.io/otel: v1.29.0 → v1.33.0 |
| 175 | +- go.opentelemetry.io/proto/otlp: v1.3.1 → v1.4.0 |
| 176 | +- golang.org/x/crypto: v0.36.0 → v0.38.0 |
| 177 | +- golang.org/x/mod: v0.23.0 → v0.24.0 |
| 178 | +- golang.org/x/net: v0.37.0 → v0.40.0 |
| 179 | +- golang.org/x/oauth2: v0.28.0 → v0.30.0 |
| 180 | +- golang.org/x/sync: v0.12.0 → v0.14.0 |
| 181 | +- golang.org/x/sys: v0.31.0 → v0.33.0 |
| 182 | +- golang.org/x/term: v0.30.0 → v0.32.0 |
| 183 | +- golang.org/x/text: v0.23.0 → v0.25.0 |
| 184 | +- golang.org/x/time: v0.8.0 → v0.9.0 |
| 185 | +- golang.org/x/tools: v0.30.0 → v0.31.0 |
| 186 | +- google.golang.org/grpc: v1.67.3 → v1.68.2 |
| 187 | +- k8s.io/api: v0.32.3 → v0.33.1 |
| 188 | +- k8s.io/apiextensions-apiserver: v0.32.3 → v0.33.1 |
| 189 | +- k8s.io/apimachinery: v0.32.3 → v0.33.1 |
| 190 | +- k8s.io/apiserver: v0.32.3 → v0.33.1 |
| 191 | +- k8s.io/client-go: v0.32.3 → v0.33.1 |
| 192 | +- k8s.io/cluster-bootstrap: v0.32.3 → v0.33.1 |
| 193 | +- k8s.io/code-generator: v0.32.3 → v0.33.1 |
| 194 | +- k8s.io/component-base: v0.32.3 → v0.33.1 |
| 195 | +- k8s.io/gengo/v2: 2b36238 → 1244d31 |
| 196 | +- k8s.io/kms: v0.32.3 → v0.33.1 |
| 197 | +- k8s.io/kube-openapi: 32ad38e → c8a335a |
| 198 | +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.31.0 → v0.31.2 |
| 199 | +- sigs.k8s.io/controller-runtime: v0.20.4 → v0.21.0 |
| 200 | +- sigs.k8s.io/structured-merge-diff/v4: v4.4.2 → v4.6.0 |
| 201 | + |
| 202 | +### Removed |
| 203 | +- github.com/asaskevich/govalidator: [f61b66f](https://github.com/asaskevich/govalidator/tree/f61b66f) |
| 204 | +- github.com/go-kit/log: [v0.2.1](https://github.com/go-kit/log/tree/v0.2.1) |
| 205 | +- github.com/go-logfmt/logfmt: [v0.5.1](https://github.com/go-logfmt/logfmt/tree/v0.5.1) |
| 206 | +- gopkg.in/square/go-jose.v2: v2.6.0 |
| 207 | + |
| 208 | +</details> |
| 209 | +<br/> |
| 210 | +_Thanks to all our contributors!_ 😊 |
0 commit comments