|
| 1 | +## 👌 Kubernetes version support |
| 2 | + |
| 3 | +- Management Cluster: v1.28.x -> v1.31.x |
| 4 | +- Workload Cluster: v1.26.x -> v1.31.x |
| 5 | + |
| 6 | +[More information about version support can be found here](https://cluster-api.sigs.k8s.io/reference/versions.html) |
| 7 | + |
| 8 | +## Highlights |
| 9 | +- Bumped to controller-runtime v0.19, k8s.io/* v0.31, controller-gen v0.16 |
| 10 | +- Improvements to status fields: (#11105) |
| 11 | + - Proposal: [Improving status in CAPI resources](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md) |
| 12 | + - Just a few highlights: |
| 13 | + - Overhaul of our contract documentation: [Provider contracts](https://cluster-api.sigs.k8s.io/developer/providers/contracts) |
| 14 | + - Implemented v1beta2 conditions for core Cluster API objects |
| 15 | + - Huge improvements to `Deleting` conditions of Cluster, KCP, MD, MS and Machines |
| 16 | + - Added `Available` conditions to Cluster, KCP and MD |
| 17 | + - Added `ControlPlaneInitialized`, `ControlPlaneAvailable`, `WorkersAvailable`, `RemoteConnectionProbe`, conditions to Cluster |
| 18 | + - Added `UpToDate` conditions to KCP and MD Machines |
| 19 | + - Added `ScalingUp`, `ScalingDown`, `Remediating`, `MachinesReady`, `MachinesUpToDate` conditions to Cluster, KCP, MD and MS |
| 20 | + - Significantly improved `Available`, `EtcdClusterHealthy` and `ControlPlaneComponentsHealthy` conditions on KCP |
| 21 | + - Added `Paused` conditions |
| 22 | + - Improved counter fields for Cluster, KCP, MD, MS |
| 23 | + - Added utils and extended patch helper for v1beta2 conditions |
| 24 | +- ClusterCache supersedes the now deprecated ClusterCacheTracker (#11272) |
| 25 | +- ClusterClass: Support oneOf/anyOf/allOf/not in variable schemas (#10637) |
| 26 | +- Improved logging in predicates (#10959 #11239 #11188) |
| 27 | +- KubeadmControlPlane: Implement pre-terminate hook for clean Machine Deletion (#11137) |
| 28 | +- KubeadmControlPlane: NamingStrategy for Machines (#11123) |
| 29 | +- MachineSetPreflightChecks feature got promoted to beta (#11228) |
| 30 | +- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174) |
| 31 | +- Machine: Improvements to Node drain: |
| 32 | + - Improve Node drain observability (#11074 #11121): documentation: [Machine deletion process](https://main.cluster-api.sigs.k8s.io/tasks/automated-machine-management/machine_deletions) |
| 33 | + - MachineDrainRules Configurable Machine drain behavior (#11240): Proposal: [MachineDrainRules](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240930-machine-drain-rules.md) |
| 34 | + - Stop waiting for detachment of volumes belonging to Pods ignored during drain (#11246 #11386) |
| 35 | +- As usual, significantly improved e2e test framework & coverage (e.g. #11066 #11333 #10984 #11082 #11212 #11127 #11362) |
| 36 | +- New providers in clusterctl: Canonical (#11337), Nutanix (#11135), Vultr (#11091) |
| 37 | + |
| 38 | +## Deprecation and Removals Warning |
| 39 | + |
| 40 | +- API: Deprecated FailureMessage and FailureReason fields (#11317) |
| 41 | +- The ClusterCacheTracker component has been deprecated (#11312 #11340), please use the new ClusterCache instead. |
| 42 | + - For more context and examples for how to use it, see [PR: Introduce new ClusterCache](https://github.com/kubernetes-sigs/cluster-api/pull/11247) and the corresponding [issue](https://github.com/kubernetes-sigs/cluster-api/issues/11272) |
| 43 | + - Please note: |
| 44 | + - The DisabledFor option (previously ClientUncachedObjects) is not defaulted to &corev1.ConfigMap & &corev1.Secret anymore, thus it’s now necessary to explicitly set DisabledFor to avoid caching ConfigMaps and Secrets. |
| 45 | + - SecretClient and UserAgent are now mandatory options, please take a look at the corresponding godoc. |
| 46 | + - The `--clustercachetracker-concurrency`, `--clustercachetracker-client-qps` and `--clustercachetracker-client-burst` flags on all core CAPI controllers have been renamed to `--clustercache-concurrency`, `--clustercache-client-qps` and `--clustercache-client-burst` |
| 47 | +- The deprecated `--metrics-bind-addr` flag has been removed (#11140) |
| 48 | +- Deprecated obsolete `errors` package (#10798) |
| 49 | +- Deprecated `ClusterCreateInfraReady` and `ClusterUnpausedAndInfrastructureReady` predicates (#11300) |
| 50 | + |
| 51 | +## Changes since v1.8 |
| 52 | +## :chart_with_upwards_trend: Overview |
| 53 | +- 348 new commits merged |
| 54 | +- 5 breaking changes :warning: |
| 55 | +- 33 feature additions ✨ |
| 56 | +- 40 bugs fixed 🐛 |
| 57 | + |
| 58 | +## :memo: Proposals |
| 59 | +- Conditions: Small improvements to the v1beta2 status proposal (#11460) |
| 60 | + |
| 61 | +## :warning: Breaking Changes |
| 62 | +- API: Deprecate replica counters planned for removal (#11517) |
| 63 | +- Machine: Ignore attached Volumes referred by pods ignored during drain (#11246) |
| 64 | +- MachineDeployment: Deprecate MD.Spec.ProgressDeadlineSeconds (#11514) |
| 65 | +- util: Fix object logging in predicates (#11239) |
| 66 | +- util: Fix object logging in ResourceHasFilterLabel, ResourceNotPaused & ResourceNotPausedAndHasFilterLabel predicates (#11188) |
| 67 | + |
| 68 | +## :sparkles: New Features |
| 69 | +- API: Add v1beta2 structs to object status (#11234) |
| 70 | +- API: Update machine with v1beta2 status (#11276) |
| 71 | +- API: Update machineset with v1beta2 status test (#11278) |
| 72 | +- ClusterCacheTracker: Add typed watcher to ClusterCache (#11331) |
| 73 | +- ClusterCacheTracker: Introduce new ClusterCache (#11247) |
| 74 | +- ClusterClass: Add support for oneOf/anyOf/allOf/not ClusterClass variable schema constructs (#10637) |
| 75 | +- ClusterClass: Ensure templates are created in the Cluster namespace (#11366) |
| 76 | +- clusterctl: Add support for v1beta2 conditions to clusterctl describe (#11277) |
| 77 | +- clusterctl: Allow user to suppress API warnings (#11149) |
| 78 | +- clusterctl: Suppress "finalizer name" API warnings in "move" command (#11173) |
| 79 | +- Core: Add v1beta2 condition to Cluster controller (#11364) |
| 80 | +- Dependency: Bump to controller-runtime v0.19 & controller-tools v0.16 (#10803) |
| 81 | +- e2e: Bump Kubernetes to v1.31.0-rc.1 (#11021) |
| 82 | +- e2e: Bump Kubernetes version used for testing to v1.31.0-rc.0 (#10965) |
| 83 | +- e2e: Bump Kubernetes version used for testing to v1.32.0-beta.0 (#11388) |
| 84 | +- e2e: Detect panics in e2e tests (#11066) |
| 85 | +- KCP: Add machine UpToDate condition to KCP (#11389) |
| 86 | +- KCP: Add v1beta2 available condition to KCP (#11383) |
| 87 | +- KCP: Add v1beta2 Etcd and ControlPlaneComponents conditions to KCP (#11302) |
| 88 | +- KCP: Add v1beta2 OwnerRemediated condition to KCP (#11297) |
| 89 | +- Logging: Suppress finalizer name API warnings in CAPI, CABPK, and KCP controller logs (#11242) |
| 90 | +- Machine: Implement MachineDrainRules (#11353) |
| 91 | +- Machine: Introduce Deletion status field and add timestamps for drain and volumeDetach instead of using the condition (#11166) |
| 92 | +- Machine: Refactor node drain (#11074) |
| 93 | +- MachineDeployment: Add v1beta2 condition to MD controller (#11338) |
| 94 | +- MachineHealthCheck: Update MHC with v1Beta2 status (#11290) |
| 95 | +- MachineSet: Add machine UpToDate condition to MachineSet (#11393) |
| 96 | +- MachineSet: Promote MachineSetPreflightChecks to Beta (#11228) |
| 97 | +- KCP/CAPD: Add more v1beta2 conditions to KCP (#11320) |
| 98 | +- Testing: Bump Kubernetes in tests to v1.31.0 and claim support for v1.31 (#11030) |
| 99 | +- Testing: Collect additional logs with CAPD log collector (#11083) |
| 100 | +- util: Implement utils for v1beta2 conditions (#10997) |
| 101 | +- util: Warning handler that discards messages that match a regular expression (#11179) |
| 102 | + |
| 103 | +## :bug: Bug Fixes |
| 104 | +- API: Drop caBundle from CRDs to support Kubernetes 1.31 (#10972) |
| 105 | +- API: Fix panics in SetV1Beta2Conditions methods (#11369) |
| 106 | +- API: Re-add /finalizers subresource RBAC (#11106) |
| 107 | +- Bootstrap: Always declare try-or-die-command function in kubeadm-bootstrap-script.sh (#11089) |
| 108 | +- CABPK: Bootstrap: fix useExperimentalRetryJoin for kubernetes v1.31 (#10983) |
| 109 | +- CAPD: Ensure DockerMachinePool providerIDList is deterministic (#10998) |
| 110 | +- CI: Hack: fix the shell used when running pr-verify (#11169) |
| 111 | +- CI: Kind: downgrade binary to v0.24.0 to fix building node images for <= v1.30 (#11485) |
| 112 | +- Cluster: Disable aggregation of not reported MachinePool conditions for Cluster (#11416) |
| 113 | +- Cluster: Fix RuntimeClient nil check in Cluster controller (#11426) |
| 114 | +- ClusterCacheTracker: Improve context handling in ClusterCache (#11445) |
| 115 | +- ClusterCacheTracker: Try to fix TestClusterCacheHealthCheck test (#11343) |
| 116 | +- ClusterClass: Fix nil pointer for empty workers in webhook (#11197) |
| 117 | +- ClusterClass: Fix RuntimeClient nil check in ClusterClass controller (#11350) |
| 118 | +- clusterctl: Ensure move uses mutated metadata when updating a target object (#10957) |
| 119 | +- clusterctl: Fix: considers objects in kube-system for cert-manager to avoid upgrading twice (#11351) |
| 120 | +- clusterctl: Handle a nil mutator by returning an error, not panicking (#10951) |
| 121 | +- Dependency: Update controller-runtime dependency to v0.18.5 (#11045) |
| 122 | +- e2e: Properly display the namespace name in scale test (#11548) |
| 123 | +- KCP: Consider all machines for setting .status.version (#11304) |
| 124 | +- KCP: Fix TestControlPlane/MachinesUpToDate flake (#11398) |
| 125 | +- KCP: Make KCP pre-terminate hook more robust (#11161) |
| 126 | +- KCP: Remove etcd member in pre-terminate hook (#11137) |
| 127 | +- Logging: Fix predicate logging (#11406) |
| 128 | +- Logging: Log errors on specific log levels correctly (#11233) |
| 129 | +- Machine: Fix drain log for unreachable Nodes (#11147) |
| 130 | +- Machine: Machine Controller should try to retrieve node on delete (#11032) |
| 131 | +- Machine: Use correct APIVersion for KCP related exclude (#11492) |
| 132 | +- MachineHealthCheck: MHC: fix flaky test (#11506) |
| 133 | +- MachineSet: Align "random" deletion policy behavior regarding deletion annotations (#11431) |
| 134 | +- Release: Set previous release tag version for RELEASE CANDIDATE/BETA RELEASE (#10435) |
| 135 | +- Testing: Add race option to detect raced codes (#10899) |
| 136 | +- Testing: Fix CRS test flake (#11009) |
| 137 | +- Testing: Fix panics in patch unit tests (#11380) |
| 138 | +- Testing: Fix: incorrect name used in kustomize path (#11305) |
| 139 | +- Testing: Test/framework isDockerCluster should check that infra ref is present (#10971) |
| 140 | +- util: Fix conditions hasSameState nil pointer dereference (#11254) |
| 141 | +- util: Fix conditions lexicographicLess nil pointer dereference (#11255) |
| 142 | +- util: Fix sorting of v1beta2 conditions when patching (#11326) |
| 143 | +- util: Use namespace of the reference on external.Get (#11361) |
| 144 | + |
| 145 | +## :seedling: Others |
| 146 | +- API: Add maxItems to all condition fields (#11256) |
| 147 | +- API: Deprecate FailureMessage and FailureReason (#11317) |
| 148 | +- API: Refactor godoc for API fields starting with field names (#11273) |
| 149 | +- API: Remove duplicate ca injection via kustomize (#10969) |
| 150 | +- API: Remove unused Paused conditions & minor MHC godoc fixes (#11298) |
| 151 | +- API: V1beta2 conditions: add function for setting the Paused condition (#11284) |
| 152 | +- CABPK: Add v1beta2 conditions to CABPK (#11452) |
| 153 | +- CAPD: Improve CAPD load balancer (#11430) |
| 154 | +- CI: Bump golangci to v1.60.2 (#11132) |
| 155 | +- CI: Fix exclude for revision management in .golangci.yml (#11060) |
| 156 | +- CI: Golangci: add comments to enabled linters (#11142) |
| 157 | +- CI: Pr-verify: use env var for passing the PR title (#11229) |
| 158 | +- CI: Replace kubebuilder-release-tools with new workflow (#11062) |
| 159 | +- CI: Switch to using ECR mirror for trivy DB repo in weekly security scan (#11260) |
| 160 | +- CI: Update version matrix for github workflows (#10963) |
| 161 | +- Cluster: Add MD/MP watches to Cluster controller (#11408) |
| 162 | +- Cluster: Improve Cluster RemoteConnectionProbe condition (#11417) |
| 163 | +- ClusterCacheTracker: Add cacheSyncPeriod option to ClusterCacheTracker (#11248) |
| 164 | +- ClusterCacheTracker: Deprecate CCT ErrClusterLocked (#11340) |
| 165 | +- ClusterCacheTracker: Deprecate ClusterCacheTracker (#11312) |
| 166 | +- ClusterCacheTracker: Fix flake in TestClusterReconciler (#11314) |
| 167 | +- ClusterClass: Add v1beta2 conditions to ClusterClass (#11428) |
| 168 | +- ClusterClass: Implement Cluster TopologyReconciled v1beta2 condition (#11394) |
| 169 | +- ClusterClass: Improve reconcile state logs (don't log empty diff) (#11013) |
| 170 | +- ClusterClass: Make Type in ClusterClass variable schema properly optional (#11259) |
| 171 | +- clusterctl: Add Canonical Kubernetes providers (#11337) |
| 172 | +- clusterctl: Add nutanix ipam & runtime extensions providers (#11135) |
| 173 | +- clusterctl: Add vultr infrastructure provider (#11091) |
| 174 | +- clusterctl: Bump cert manager to v1.16.0 (#11263) |
| 175 | +- clusterctl: Bump cert-manager to 1.15.3 (#11068) |
| 176 | +- clusterctl: Bump cert-manager to 1.16.1 (#11322) |
| 177 | +- clusterctl: Bump cert-manager to v1.15.2 (#10988) |
| 178 | +- clusterctl: Bump cert-manager to v1.16.2 (#11462) |
| 179 | +- clusterctl: Do not fail when running clusterctl with a build without GitVersion information (#11468) |
| 180 | +- clusterctl: GitLab can use both Path and RawPath (#10608) |
| 181 | +- clusterctl: Improve clusterctl client config logic & error message (#11049) |
| 182 | +- clusterctl: Properly indent multiline lists in clusterctl describe (#11509) |
| 183 | +- clusterctl: Update Config generation to use inClusterConfig (#10729) |
| 184 | +- clusterctl: Update RKE2 provider URL (#11216) |
| 185 | +- Conditions: Add v1beta2 RollingOut condition (#11463) |
| 186 | +- Conditions: Cluster: split MachinesReady and MachinesUpToDate into ControlPlane and Worker specific conditions (#11461) |
| 187 | +- Conditions: Crs: implement ResourcesApplied v1beta2 condition (#11467) |
| 188 | +- Conditions: Drop unused v1beta2 conditions and reasons (#11523) |
| 189 | +- Conditions: Fix messages of conditions used for summaries and aggregations (#11435) |
| 190 | +- Conditions: Ignore new Machines when calculating MachinesUpToDate condition (#11433) |
| 191 | +- Conditions: KCP: handle members without name in MemberNames (#11446) |
| 192 | +- Conditions: KCP: make EtcdMemberHealthy less verbose on client creation failures (#11510) |
| 193 | +- Conditions: Machine: sort list of hooks for stable condition messages (#11488) |
| 194 | +- Conditions: Mhc: Don't set OwnerRemediated on deleting machines (#11465) |
| 195 | +- Conditions: Refine v1beta2 stale deletion messages (#11434) |
| 196 | +- Conditions: Refine v1beta2 summary (#11499) |
| 197 | +- Conditions: Refine v1beta2 UpToDate and Rollout conditions (#11507) |
| 198 | +- Conditions: Small improvements to v1beta2 conditions godoc (#11528) |
| 199 | +- Conditions: Various improvements of v1beta2 conditions (#11422) |
| 200 | +- Core: Audit patch withOwnedConditions (#11396) |
| 201 | +- Core: Refactor Cluster controller (#11345) |
| 202 | +- Core: Refine v1beta2 condition messages (#11404) |
| 203 | +- Core: Refine v1beta2 condition reasons (#11411) |
| 204 | +- Core: Refine v1beta2 mirror conditions (#11419) |
| 205 | +- Core: Refine v1beta2 ScalingUp conditions (#11432) |
| 206 | +- Dependency: Bump go to v1.22.10 (#11535) |
| 207 | +- Dependency: Bump Go to v1.22.8 version (#11357) |
| 208 | +- Dependency: Bump Go version to v1.22.9 (#11409) |
| 209 | +- Dependency: Bump setup-envtest to v0.19 (#11063) |
| 210 | +- Dependency: Bump to Go 1.22.7 (#11156) |
| 211 | +- Dependency: Remove Go dependencies on k8s.io/kubectl, k8s.io/metrics, sigs.k8s.io/kustomize, ... (#11295) |
| 212 | +- Dependency: Update controller-runtime to v0.19.3 (#11527) |
| 213 | +- Devtools: Fix parsing of `config.live_reload_deps` from Tilt provider config file (#11270) |
| 214 | +- e2e: Add dry-run CreateOrUpdate call in clusterctl upgrade e2e tests (#11349) |
| 215 | +- e2e: Add retry to clusterctl `UpgradeWithBinary` (#11539) |
| 216 | +- e2e: Bump kind to v0.24.0 (#11081) |
| 217 | +- e2e: Bump kind to v0.25.0 (#11473) |
| 218 | +- e2e: Bump kubernetes release to v1.32.0-rc.1 (#11540) |
| 219 | +- e2e: Dump cluster resources if deletion times out (#10961) |
| 220 | +- e2e: Export scale e2e test to make it reusable by providers (#11333) |
| 221 | +- e2e: Improve cluster deletion timeout message in e2e test framework (#11444) |
| 222 | +- e2e: Improve error output of ValidateResourceVersionStable (#11012) |
| 223 | +- e2e: Remove json logging replacement in e2e test config (#11318) |
| 224 | +- e2e: Remove redundant self-hosted and clusterctl upgrade tests (#11073) |
| 225 | +- e2e: Test/e2e: decrease concurrency (#11220) |
| 226 | +- e2e: Test/e2e: increase concurrency (#11067) |
| 227 | +- e2e: Test/framework: scale up should use allocatable memory (#11004) |
| 228 | +- e2e: Test: add coverage to find issues running on the next kubernetes release as management cluster (#10984) |
| 229 | +- e2e: Test: add options for additional resources and verify volume detach to node drain test (#11531) |
| 230 | +- e2e: Test: add PreWaitForControlplaneToBeUpgraded to ClusterUpgradeConformanceSpec (#11145) |
| 231 | +- e2e: Test: Bump autoscaler to v1.31.0 (#11111) |
| 232 | +- e2e: Test: improve autoscale tests for to/from zero and running autoscaler in bootstrap cluster (#11082) |
| 233 | +- e2e: Test: stop using Consistently for rollout checks (#10975) |
| 234 | +- e2e: Test: use cluster without worker definition for kcp only test (#11212) |
| 235 | +- e2e: Use latest kind image for K8s1.31 in E2E tests (#11511) |
| 236 | +- KCP: Add NamingStrategy to KubeadmControlPlane (#11123) |
| 237 | +- KCP: Add test coverage for etcd member list util (#11449) |
| 238 | +- KCP: Bump corefile-migration to support CoreDNS v1.11.3 (#10980) |
| 239 | +- KCP: Cache Pods for KCP (#11453) |
| 240 | +- KCP: Change Pod does not exist message to allow aggregation (#11447) |
| 241 | +- KCP: Drop retry when computing KCP conditions (#11522) |
| 242 | +- KCP: Drop unnecessary etcd call from KCP (#11493) |
| 243 | +- KCP: Ensure ReadinessGates for v1beta2 conditions get set (#11335) |
| 244 | +- KCP: Propagate timeouts to Machines with deletionTimestamp (#11128) |
| 245 | +- KCP: Refine KCP's Available, ControlPlaneComponentsHealthy, EtcdClusterHealthy v1beta2 conditions (#11512) |
| 246 | +- KCP: Refine v1beta2 Available condition in KCP (#11425) |
| 247 | +- KCP: Refine v1beta2 ControlPlaneHealthy condition (#11438) |
| 248 | +- KCP: Refine v1beta2 KCP available condition (#11451) |
| 249 | +- KCP: Remove code handling Kubernetes <= v1.21 (#11146) |
| 250 | +- KCP: Retry in case of etcd errors in KCP (#11450) |
| 251 | +- KCP: Skip validation if CoreDNS migration library supports an upgrade if the library is not used (#11319) |
| 252 | +- Logging: Drop internal log package & improve logs and errors (#11025) |
| 253 | +- Logging: Drop ReconcileError events (#11341) |
| 254 | +- Logging: Fix error handling when the resource is not found (#10907) |
| 255 | +- Logging: Improve log when not enough replicas are ready or referenced (#11329) |
| 256 | +- Logging: Log controller name in predicates (#10959) |
| 257 | +- Logging: Log error when calling a Runtime Extension gets an error that is ignored because of failure policy (#11028) |
| 258 | +- Logging: Reduce verbosity of logs when calling Runtime Extensions (#11183) |
| 259 | +- Machine: Add feature gate to consider VolumeAttachments when waiting for volume detach (#11386) |
| 260 | +- Machine: Condition: fix godoc for MachineNodeHealthyCondition (#11178) |
| 261 | +- Machine: Extend Node drain e2e test to cover MachineDrainRules (#11362) |
| 262 | +- Machine: Follow-up PR nits from 11032 (#11044) |
| 263 | +- Machine: Implement Machine Deleting condition (#11291) |
| 264 | +- Machine: Improve Drain for control plane machines (#11457) |
| 265 | +- Machine: Improve machine Ready v1beta2 condition (#11330) |
| 266 | +- Machine: Improve node drain e2e test (#11127) |
| 267 | +- Machine: Improve unit tests for Machine controller (#11252) |
| 268 | +- Machine: Prevent error spamming for NodeOutdatedTaint if objects are not found (#11148) |
| 269 | +- Machine: Rate-limit entire reconcileDelete (#11436) |
| 270 | +- Machine: Refine v1beta2 machine ready (#11437) |
| 271 | +- Machine: Refine v1beta2 NodeHealthy condition (#11497) |
| 272 | +- Machine: Use internal error reason consistently (#11309) |
| 273 | +- MachineDeployment: Refine MachineDeployment v1beta2 available condition (#11505) |
| 274 | +- MachineHealthCheck: Increase timeout for 2 MHC unit tests (#11019) |
| 275 | +- MachinePool: Improve TestReconcileMachinePoolMachines unit test (#11124) |
| 276 | +- MachineSet: Add MD watch to the MS controller (#11448) |
| 277 | +- MachineSet: Extend MS ScalingUp and Remediationg conditions to include preflight check errors (#11390) |
| 278 | +- MachineSet: Implement MS remediating conditions (#11382) |
| 279 | +- Metrics: Add nilIsZero to all KSM metric configs where needed (#11101) |
| 280 | +- Metrics: Revert "Add nilIsZero to all KSM metric configs where needed" (#11107) |
| 281 | +- ClusterClass/MachinePool: Remove paused handling from reconcileExternal (#11400) |
| 282 | +- KCP/MachineSet: Implement KCP and MS Deleting conditions (#11381) |
| 283 | +- Machine/KCP]: Implement grace period for KCP remote conditions (#11339) |
| 284 | +- MachineSet/MachineDeployment: Foreground deletion for MachineDeployments and MachineSets (#11174) |
| 285 | +- Testing/Runtime SDK: Add nodeVolumeDetachTimeout & minReadySeconds for MD to RuntimeSDK e2e test template (#10933) |
| 286 | +- Release: Add v1.9 release team members to timeline doc (#11097) |
| 287 | +- Release: Prepare main branch for v1.9 development (#11059) |
| 288 | +- Release: Swap in new 1.9 RT members in OWNERS (#11096) |
| 289 | +- Release: Update md link check for release-1.9 (#11481) |
| 290 | +- Testing: Bump coredns version in e2e variables (#11187) |
| 291 | +- Testing: Bump envtest in Makefile to v1.31.0 (#11085) |
| 292 | +- Testing: Check for panics during test runs in envtest (#11279) |
| 293 | +- Testing: Enable race detector for main module unit tests (#11207) |
| 294 | +- Testing: Fixing TestClusterCacheHealthCheck flake (#11374) |
| 295 | +- Testing: Fixing TestClusterResourceSetReconciler flaky test (#11379) |
| 296 | +- Testing: Make `internal/test/builder` package public (as `util/test/builder`) (#11356) |
| 297 | +- Testing: Test/framework: Allow ScaleUp Deployment image to be customized (#10990) |
| 298 | +- Testing: Test/framework: allow to include arbitrary types when dumping resources (#11308) |
| 299 | +- Testing: Test/framework: allow users to modify cache.Options (#11201) |
| 300 | +- Testing: Test/framework: GetCAPIResources should warn on rbac issues (#11205) |
| 301 | +- Testing: Use latest atomic variable instead of old one (#11328) |
| 302 | +- util: Add input validations for controllers (#11327) |
| 303 | +- util: Add new utility function to set LastTransitionTime only when status of condition changes (#11176) |
| 304 | +- util: Add support for v1beta2 conditions to patch helper (#11150) |
| 305 | +- util: Deprecate obsolete errors pkg (#10798) |
| 306 | +- util: Deprecate old pausing predicates (#11300) |
| 307 | +- util: Export conditions.HasSameState method (#11253) |
| 308 | +- util: Handle finalizers early in Reconciles (#11286) |
| 309 | +- util: Improve sort for v1beta2 conditions (#11282) |
| 310 | +- util: Improve v1beta2 condition ordering (#11418) |
| 311 | +- util: Make controller mandatory param for external object tracker (#11283) |
| 312 | +- util: Refine order for v1beta2 summary util (#11421) |
| 313 | +- util: Refine v1beta2 aggregation order (#11423) |
| 314 | +- util: Refine v1beta2 condition order (#11424) |
| 315 | +- util: Refine v1beta2 object sort for aggregation (#11429) |
| 316 | +- util: Remove clustercache nil checks (#11336) |
| 317 | +- util: Remove previously deprecated --metrics-bind-addr flag (#11140) |
| 318 | +- util: Truncate lastTransitionTime for v1beta2 conditions (#11342) |
| 319 | +- util: Use TODO instead of FIXME consistently (#11245) |
| 320 | +- util: Use url.JoinPath instead of fmt to concat endpoint (#10917) |
| 321 | +- util: V1beta2 conditions: make NewAggregate use generics (#11281) |
| 322 | + |
| 323 | +:book: Additionally, there have been 48 contributions to our documentation and book. (#10108, #10425, #10519, #10651, #10897, #10960, #11051, #11055, #11056, #11061, #11072, #11076, #11087, #11088, #11109, #11113, #11118, #11119, #11121, #11131, #11153, #11163, #11180, #11189, #11190, #11191, #11194, #11195, #11202, #11208, #11213, #11214, #11223, #11235, #11236, #11241, #11250, #11251, #11274, #11275, #11285, #11287, #11293, #11354, #11355, #11363, #11384, #11529) |
| 324 | + |
| 325 | +## Dependencies |
| 326 | + |
| 327 | +### Added |
| 328 | +- cel.dev/expr: v0.15.0 |
| 329 | +- dario.cat/mergo: v1.0.1 |
| 330 | +- github.com/antlr4-go/antlr/v4: [v4.13.0](https://github.com/antlr4-go/antlr/tree/v4.13.0) |
| 331 | +- gopkg.in/evanphx/json-patch.v4: v4.12.0 |
| 332 | + |
| 333 | +### Changed |
| 334 | +- github.com/Masterminds/semver/v3: [v3.2.0 → v3.3.0](https://github.com/Masterminds/semver/compare/v3.2.0...v3.3.0) |
| 335 | +- github.com/Masterminds/sprig/v3: [v3.2.3 → v3.3.0](https://github.com/Masterminds/sprig/compare/v3.2.3...v3.3.0) |
| 336 | +- github.com/adrg/xdg: [v0.5.0 → v0.5.3](https://github.com/adrg/xdg/compare/v0.5.0...v0.5.3) |
| 337 | +- github.com/alecthomas/kingpin/v2: [v2.3.2 → v2.4.0](https://github.com/alecthomas/kingpin/compare/v2.3.2...v2.4.0) |
| 338 | +- github.com/cenkalti/backoff/v4: [v4.2.1 → v4.3.0](https://github.com/cenkalti/backoff/compare/v4.2.1...v4.3.0) |
| 339 | +- github.com/cespare/xxhash/v2: [v2.2.0 → v2.3.0](https://github.com/cespare/xxhash/compare/v2.2.0...v2.3.0) |
| 340 | +- github.com/cncf/xds/go: [0fa0005 → 555b57e](https://github.com/cncf/xds/compare/0fa0005...555b57e) |
| 341 | +- github.com/coredns/corefile-migration: [v1.0.23 → v1.0.24](https://github.com/coredns/corefile-migration/compare/v1.0.23...v1.0.24) |
| 342 | +- github.com/creack/pty: [v1.1.18 → v1.1.9](https://github.com/creack/pty/compare/v1.1.18...v1.1.9) |
| 343 | +- github.com/fatih/color: [v1.17.0 → v1.18.0](https://github.com/fatih/color/compare/v1.17.0...v1.18.0) |
| 344 | +- github.com/fxamacker/cbor/v2: [v2.6.0 → v2.7.0](https://github.com/fxamacker/cbor/compare/v2.6.0...v2.7.0) |
| 345 | +- github.com/go-openapi/swag: [v0.22.3 → v0.22.4](https://github.com/go-openapi/swag/compare/v0.22.3...v0.22.4) |
| 346 | +- github.com/gobuffalo/flect: [v1.0.2 → v1.0.3](https://github.com/gobuffalo/flect/compare/v1.0.2...v1.0.3) |
| 347 | +- github.com/golang/glog: [v1.2.0 → v1.2.1](https://github.com/golang/glog/compare/v1.2.0...v1.2.1) |
| 348 | +- github.com/google/cel-go: [v0.17.8 → v0.20.1](https://github.com/google/cel-go/compare/v0.17.8...v0.20.1) |
| 349 | +- github.com/google/pprof: [a892ee0 → d1b30fe](https://github.com/google/pprof/compare/a892ee0...d1b30fe) |
| 350 | +- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.16.0 → v2.20.0](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.16.0...v2.20.0) |
| 351 | +- github.com/huandu/xstrings: [v1.3.3 → v1.5.0](https://github.com/huandu/xstrings/compare/v1.3.3...v1.5.0) |
| 352 | +- github.com/matttproud/golang_protobuf_extensions: [v1.0.4 → v1.0.1](https://github.com/matttproud/golang_protobuf_extensions/compare/v1.0.4...v1.0.1) |
| 353 | +- github.com/moby/spdystream: [v0.2.0 → v0.4.0](https://github.com/moby/spdystream/compare/v0.2.0...v0.4.0) |
| 354 | +- github.com/moby/term: [1aeaba8 → v0.5.0](https://github.com/moby/term/compare/1aeaba8...v0.5.0) |
| 355 | +- github.com/onsi/ginkgo/v2: [v2.19.1 → v2.22.0](https://github.com/onsi/ginkgo/compare/v2.19.1...v2.22.0) |
| 356 | +- github.com/onsi/gomega: [v1.34.0 → v1.36.0](https://github.com/onsi/gomega/compare/v1.34.0...v1.36.0) |
| 357 | +- github.com/prometheus/client_golang: [v1.18.0 → v1.19.1](https://github.com/prometheus/client_golang/compare/v1.18.0...v1.19.1) |
| 358 | +- github.com/prometheus/client_model: [v0.6.0 → v0.6.1](https://github.com/prometheus/client_model/compare/v0.6.0...v0.6.1) |
| 359 | +- github.com/prometheus/common: [v0.45.0 → v0.55.0](https://github.com/prometheus/common/compare/v0.45.0...v0.55.0) |
| 360 | +- github.com/prometheus/procfs: [v0.12.0 → v0.15.1](https://github.com/prometheus/procfs/compare/v0.12.0...v0.15.1) |
| 361 | +- github.com/rogpeppe/go-internal: [v1.10.0 → v1.12.0](https://github.com/rogpeppe/go-internal/compare/v1.10.0...v1.12.0) |
| 362 | +- github.com/shopspring/decimal: [v1.3.1 → v1.4.0](https://github.com/shopspring/decimal/compare/v1.3.1...v1.4.0) |
| 363 | +- github.com/sirupsen/logrus: [v1.9.0 → v1.9.3](https://github.com/sirupsen/logrus/compare/v1.9.0...v1.9.3) |
| 364 | +- github.com/spf13/cast: [v1.6.0 → v1.7.0](https://github.com/spf13/cast/compare/v1.6.0...v1.7.0) |
| 365 | +- go.etcd.io/bbolt: v1.3.8 → v1.3.9 |
| 366 | +- go.etcd.io/etcd/api/v3: v3.5.15 → v3.5.17 |
| 367 | +- go.etcd.io/etcd/client/pkg/v3: v3.5.15 → v3.5.17 |
| 368 | +- go.etcd.io/etcd/client/v2: v2.305.12 → v2.305.13 |
| 369 | +- go.etcd.io/etcd/client/v3: v3.5.15 → v3.5.17 |
| 370 | +- go.etcd.io/etcd/pkg/v3: v3.5.10 → v3.5.13 |
| 371 | +- go.etcd.io/etcd/raft/v3: v3.5.10 → v3.5.13 |
| 372 | +- go.etcd.io/etcd/server/v3: v3.5.10 → v3.5.13 |
| 373 | +- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.49.0 → v0.53.0 |
| 374 | +- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.49.0 → v0.53.0 |
| 375 | +- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.20.0 → v1.27.0 |
| 376 | +- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.20.0 → v1.28.0 |
| 377 | +- go.opentelemetry.io/otel/metric: v1.24.0 → v1.28.0 |
| 378 | +- go.opentelemetry.io/otel/sdk: v1.20.0 → v1.28.0 |
| 379 | +- go.opentelemetry.io/otel/trace: v1.24.0 → v1.28.0 |
| 380 | +- go.opentelemetry.io/otel: v1.24.0 → v1.28.0 |
| 381 | +- go.opentelemetry.io/proto/otlp: v1.0.0 → v1.3.1 |
| 382 | +- golang.org/x/crypto: v0.25.0 → v0.29.0 |
| 383 | +- golang.org/x/exp: 9212866 → 8a7402a |
| 384 | +- golang.org/x/mod: v0.17.0 → v0.21.0 |
| 385 | +- golang.org/x/net: v0.27.0 → v0.31.0 |
| 386 | +- golang.org/x/oauth2: v0.21.0 → v0.24.0 |
| 387 | +- golang.org/x/sync: v0.7.0 → v0.9.0 |
| 388 | +- golang.org/x/sys: v0.22.0 → v0.27.0 |
| 389 | +- golang.org/x/telemetry: f48c80b → bda5523 |
| 390 | +- golang.org/x/term: v0.22.0 → v0.26.0 |
| 391 | +- golang.org/x/text: v0.16.0 → v0.20.0 |
| 392 | +- golang.org/x/tools: e35e4cc → v0.26.0 |
| 393 | +- google.golang.org/genproto/googleapis/api: a219d84 → 5315273 |
| 394 | +- google.golang.org/genproto/googleapis/rpc: 6e1732d → f6361c8 |
| 395 | +- google.golang.org/grpc: v1.62.2 → v1.65.1 |
| 396 | +- google.golang.org/protobuf: v1.34.1 → v1.35.1 |
| 397 | +- k8s.io/api: v0.30.3 → v0.31.3 |
| 398 | +- k8s.io/apiextensions-apiserver: v0.30.3 → v0.31.3 |
| 399 | +- k8s.io/apimachinery: v0.30.3 → v0.31.3 |
| 400 | +- k8s.io/apiserver: v0.30.3 → v0.31.3 |
| 401 | +- k8s.io/client-go: v0.30.3 → v0.31.3 |
| 402 | +- k8s.io/cluster-bootstrap: v0.30.3 → v0.31.3 |
| 403 | +- k8s.io/code-generator: v0.30.3 → v0.31.3 |
| 404 | +- k8s.io/component-base: v0.30.3 → v0.31.3 |
| 405 | +- k8s.io/klog/v2: v2.120.1 → v2.130.1 |
| 406 | +- k8s.io/kms: v0.30.3 → v0.31.3 |
| 407 | +- k8s.io/utils: b307cd5 → 18e509b |
| 408 | +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.30.0 → v0.30.3 |
| 409 | +- sigs.k8s.io/controller-runtime: v0.18.4 → v0.19.3 |
| 410 | + |
| 411 | +### Removed |
| 412 | +- github.com/antlr/antlr4/runtime/Go/antlr/v4 |
| 413 | +- github.com/chai2010/gettext-go: [v1.0.2](https://github.com/chai2010/gettext-go/tree/v1.0.2) |
| 414 | +- github.com/chromedp/cdproto: [3cf4e6d](https://github.com/chromedp/cdproto/tree/3cf4e6d) |
| 415 | +- github.com/chromedp/chromedp: [v0.9.2](https://github.com/chromedp/chromedp/tree/v0.9.2) |
| 416 | +- github.com/chromedp/sysutil: [v1.0.0](https://github.com/chromedp/sysutil/tree/v1.0.0) |
| 417 | +- github.com/cncf/udpa/go: [c52dc94](https://github.com/cncf/udpa/tree/c52dc94) |
| 418 | +- github.com/daviddengcn/go-colortext: [v1.0.0](https://github.com/daviddengcn/go-colortext/tree/v1.0.0) |
| 419 | +- github.com/exponent-io/jsonpath: [d6023ce](https://github.com/exponent-io/jsonpath/tree/d6023ce) |
| 420 | +- github.com/fatih/camelcase: [v1.0.0](https://github.com/fatih/camelcase/tree/v1.0.0) |
| 421 | +- github.com/fvbommel/sortorder: [v1.1.0](https://github.com/fvbommel/sortorder/tree/v1.1.0) |
| 422 | +- github.com/go-errors/errors: [v1.4.2](https://github.com/go-errors/errors/tree/v1.4.2) |
| 423 | +- github.com/go-task/slim-sprig: [52ccab3](https://github.com/go-task/slim-sprig/tree/52ccab3) |
| 424 | +- github.com/gobwas/httphead: [v0.1.0](https://github.com/gobwas/httphead/tree/v0.1.0) |
| 425 | +- github.com/gobwas/pool: [v0.2.1](https://github.com/gobwas/pool/tree/v0.2.1) |
| 426 | +- github.com/gobwas/ws: [v1.2.1](https://github.com/gobwas/ws/tree/v1.2.1) |
| 427 | +- github.com/golangplus/bytes: [v1.0.0](https://github.com/golangplus/bytes/tree/v1.0.0) |
| 428 | +- github.com/golangplus/fmt: [v1.0.0](https://github.com/golangplus/fmt/tree/v1.0.0) |
| 429 | +- github.com/golangplus/testing: [v1.0.0](https://github.com/golangplus/testing/tree/v1.0.0) |
| 430 | +- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) |
| 431 | +- github.com/liggitt/tabwriter: [89fcab3](https://github.com/liggitt/tabwriter/tree/89fcab3) |
| 432 | +- github.com/lithammer/dedent: [v1.1.0](https://github.com/lithammer/dedent/tree/v1.1.0) |
| 433 | +- github.com/matttproud/golang_protobuf_extensions/v2: [v2.0.0](https://github.com/matttproud/golang_protobuf_extensions/tree/v2.0.0) |
| 434 | +- github.com/mitchellh/go-wordwrap: [v1.0.1](https://github.com/mitchellh/go-wordwrap/tree/v1.0.1) |
| 435 | +- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) |
| 436 | +- github.com/sergi/go-diff: [v1.1.0](https://github.com/sergi/go-diff/tree/v1.1.0) |
| 437 | +- github.com/xlab/treeprint: [v1.2.0](https://github.com/xlab/treeprint/tree/v1.2.0) |
| 438 | +- go.starlark.net: a134d8f |
| 439 | +- k8s.io/cli-runtime: v0.30.3 |
| 440 | +- k8s.io/component-helpers: v0.30.3 |
| 441 | +- k8s.io/kubectl: v0.30.3 |
| 442 | +- k8s.io/metrics: v0.30.3 |
| 443 | +- sigs.k8s.io/kustomize/api: 6ce0bf3 |
| 444 | +- sigs.k8s.io/kustomize/cmd/config: v0.11.2 |
| 445 | +- sigs.k8s.io/kustomize/kustomize/v5: 6ce0bf3 |
| 446 | +- sigs.k8s.io/kustomize/kyaml: 6ce0bf3 |
| 447 | + |
| 448 | +_Thanks to all our contributors!_ 😊 |
0 commit comments