|
| 1 | +🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new). |
| 2 | + |
| 3 | +## Highlights |
| 4 | + |
| 5 | +* MachinePools are now supported in ClusterClass Clusters |
| 6 | +* Metrics, profiling and other diagnostics are now served securely by default |
| 7 | +* Types in `ipam.cluster.x-k8s.io` have graduated to `v1beta1` |
| 8 | + |
| 9 | +## Deprecation Warning |
| 10 | + |
| 11 | +- The API version `v1alpha4` is no longer served in this release. |
| 12 | + - [Version migration guide](https://main.cluster-api.sigs.k8s.io/developer/providers/version-migration.html) |
| 13 | + - [GitHub issue #8038](https://github.com/kubernetes-sigs/cluster-api/issues/8038) |
| 14 | + - [API deprecation details](https://main.cluster-api.sigs.k8s.io/contributing#removal-of-v1alpha3--v1alpha4-apiversions) |
| 15 | +- The API version `v1alpha3` has been completely removed in this release. |
| 16 | +- Flag `--metrics-bind-addr` is [deprecated](https://github.com/kubernetes-sigs/cluster-api/pull/9264) for all controllers |
| 17 | + |
| 18 | +## Changes since v1.6.0-rc.0 |
| 19 | +## :chart_with_upwards_trend: Overview |
| 20 | +- 2 new commits merged |
| 21 | +- 1 bug fixed 🐛 |
| 22 | + |
| 23 | +## :bug: Bug Fixes |
| 24 | +- ClusterResourceSet: Requeue after 1 minute if ErrClusterLocked got hit (#9788) |
| 25 | + |
| 26 | +## :seedling: Others |
| 27 | +- e2e: Improve output of exec.KubectlApply (#9761) |
| 28 | + |
| 29 | +<details> |
| 30 | +<summary>More details about the release</summary> |
| 31 | + |
| 32 | +:warning: **RELEASE CANDIDATE NOTES** :warning: |
| 33 | + |
| 34 | +## 👌 Kubernetes version support |
| 35 | + |
| 36 | +- Management Cluster: v1.25.x -> v1.28.x |
| 37 | +- Workload Cluster: v1.23.x -> v1.28.x |
| 38 | + |
| 39 | +[More information about version support can be found here](https://cluster-api.sigs.k8s.io/reference/versions.html) |
| 40 | + |
| 41 | +## Changes since v1.5.0 |
| 42 | +## :chart_with_upwards_trend: Overview |
| 43 | +- 387 new commits merged |
| 44 | +- 6 breaking changes :warning: |
| 45 | +- 15 feature additions ✨ |
| 46 | +- 35 bugs fixed 🐛 |
| 47 | + |
| 48 | +## :memo: Proposals |
| 49 | +- Community meeting: Add proposal for karpenter integration feature group (#9571) |
| 50 | + |
| 51 | +## :warning: Breaking Changes |
| 52 | +- API: Remove v1alpha3 API Version (#8997) |
| 53 | +- API: Stop serving v1alpha4 API Versions (#8996) |
| 54 | +- clusterctl: Improve Context handling in clusterctl (#8939) |
| 55 | +- Dependency: Bump to controller-runtime v0.16 (#8999) |
| 56 | +- Metrics/Logging: Implement secure diagnostics (metrics, pprof, log level changes) (#9264) |
| 57 | +- util: Remove go-vcs dependency from releaselink tool (#9288) |
| 58 | + |
| 59 | +## :sparkles: New Features |
| 60 | +- API: Add validation to nested ObjectMeta fields (#8431) |
| 61 | +- CAPD: Add config maps to CAPD RBAC (#9528) |
| 62 | +- CAPD: Add MachinePool Machine implementation to CAPD components (#8842) |
| 63 | +- CAPD: Allow adding custom HA proxy config for CAPD load balancer (#8785) |
| 64 | +- CAPD: Initialize configmap object before getting it (#9529) |
| 65 | +- ClusterClass: Add topology-owned label to MachineHealthChecks. (#9191) |
| 66 | +- ClusterClass: Introduce NamingStrategy and allow generating names using go templates (#9340) |
| 67 | +- ClusterClass: Update API with ClusterClass MachinePool support (#8820) |
| 68 | +- clusterctl: Add RKE2 bootstrap provider to clusterctl (#9720) |
| 69 | +- clusterctl: Block move with annotation (#8690) |
| 70 | +- IPAM: Promote IPAM types to v1beta1 (#9525) |
| 71 | +- MachinePool: Add MachinePool workers support in ClusterClass (#9016) |
| 72 | +- MachineSet: Adjust preflight check to allow kubelet version skew of 3 for clusters running v1.28 and above (#9222) |
| 73 | +- Release: Add automation to create release branch and tags (#9111) |
| 74 | +- Testing/Documentation: V1.28: Prepare quickstart, capd and tests for the new release including kind bump (#9160) |
| 75 | + |
| 76 | +## :bug: Bug Fixes |
| 77 | +- CAPBK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9167) |
| 78 | +- CAPD: Delete container after failed start to work around port allocation issues (#9125) |
| 79 | +- CAPD: Fix DockerMachine panic (#9673) |
| 80 | +- CI: Fix reporting bug in verify-container-image script (#9676) |
| 81 | +- ClusterClass: Fix ClusterClass enqueue for ExtensionConfig (#9133) |
| 82 | +- ClusterClass: Topology: fix namingstrategy webhook to not use uppercase characters for testing the template and align unit test to e2e test (#9425) |
| 83 | +- clusterctl: Fix provider namespace secret not included in clusterctl move (#9694) |
| 84 | +- ClusterResourceSet: Requeue after 1 minute if ErrClusterLocked got hit (#9788) |
| 85 | +- Dependency: Bump golang.org/x/net to v0.13.0 (#9121) |
| 86 | +- Dependency: Bump to docker v24.0.5-0.20230714235725-36e9e796c6fc (#9038) |
| 87 | +- Devtools: Adding metrics container port in tilt-prepare only if it's missing (#9308) |
| 88 | +- Devtools: Allow duplicate objects in Tiltfile (#9302) |
| 89 | +- Devtools: Change tilt debug base image to golang (#9070) |
| 90 | +- Devtools: Fix tilt-prepare leader-elect setting (#9315) |
| 91 | +- Devtools: Pin Plantuml version (#9424) |
| 92 | +- Devtools: Tilt: ensure .tiltbuild/bin directory is created early enough, add tilt troubleshooting guide (#9165) |
| 93 | +- e2e: Drop MachinePools from Dualstack tests (#9477) |
| 94 | +- e2e: Fix autoscaler image repo (#9353) |
| 95 | +- e2e: Test: pin conformance image to a version which includes a fix for the dualstack tests (#9252) |
| 96 | +- KCP: Allow dropping patches KubeadmControlPlane KubeadmConfig (#9698) |
| 97 | +- KCP: Allow to drop useExperimentalRetryJoin field from KubeadmControlPlane.kubeadmConfigSpec (#9170) |
| 98 | +- KCP: Fix KCP Controller reconcile always return error when workload cluster is unreachable (#9342) |
| 99 | +- KCP: Requeue KCP object if ControlPlaneComponentsHealthyCondition is not yet true (#9032) |
| 100 | +- Machine: Retry Node delete when CCT is locked (#9570) |
| 101 | +- MachineDeployment: MD controller: use regular random suffix for MachineSets, ensure max length 63 (#9298) |
| 102 | +- MachineHealthCheck: Fix excessive trace logging in the machine health check controller (#9419) |
| 103 | +- MachinePool: Fix bug where MachinePool Machine ownerRefs weren't updating (#9619) |
| 104 | +- Release: Alphabetically sorting release tool output (#9055) |
| 105 | +- Release: Deduplicating area in pr title in release notes (#9186) |
| 106 | +- Release: Fix go install path for kpromo v4.0.4 (#9336) |
| 107 | +- Release: Generate warning when release notes can not be generated (#9163) |
| 108 | +- Release: Hack/release-notes: ensure relase notes tool can be used for external projects again (#9018) |
| 109 | +- Release: Reverts pull request from cahillsf/improve-release-speed (#9465) |
| 110 | +- Runtime SDK: Set User Agent for test extension correctly (#9748) |
| 111 | +- util: Fix AddAnnotations for unstructured.Unstructured (#9164) |
| 112 | + |
| 113 | +## :seedling: Others |
| 114 | +- API: Add ClusterClass column to Cluster CRD (#9120) |
| 115 | +- API: Add verify-import-restrictions to enforce import restrictions (#9407) |
| 116 | +- API: Enforce import restrictions in all API packages (#9461) |
| 117 | +- API: Ensure we generate all webhook manifests.yaml (#9621) |
| 118 | +- API: Move API v1beta1 webhooks to a separate package (#9047) |
| 119 | +- API: Move docker infrastructure API v1beta1 webhooks to separate package (#9458) |
| 120 | +- API: Move docker infrastructure experimental API v1beta1 webhooks to separate package (#9460) |
| 121 | +- API: Move experimental addons API v1beta1 webhooks to separate package (#9438) |
| 122 | +- API: Move experimental API v1beta1 webhooks to separate package (#9417) |
| 123 | +- API: Move inmemory infrastructure API v1beta1 webhooks to separate package (#9459) |
| 124 | +- API: Move Kubeadm API v1beta1 webhooks to separate package (#9410) |
| 125 | +- API: Remove files and markers for Kubebuilder (#9344) |
| 126 | +- API: Remove reliance on controller-runtime scheme builder (#9045) |
| 127 | +- API: Remove reliance on controller-runtime scheme builder for experimental APIs (#9185) |
| 128 | +- API: Remove reliance on controller-runtime scheme builder for remaining API groups (#9266) |
| 129 | +- API: Remove the dependency on cluster-api/utils from addons API (#9482) |
| 130 | +- API: Test and document controller ownerReferences (#9153) |
| 131 | +- CAPBK: Remove Kubeadm upstream v1beta1 types (#9345) |
| 132 | +- CAPD: Fix multi error handling in RunContainer (#9139) |
| 133 | +- CAPD: Set Condition, if creating external LB failed. (#9697) |
| 134 | +- CI: Add colored-line-number output for golangci-lint action (#9147) |
| 135 | +- CI: Add dependabot for test and hack/tools module (#9041) |
| 136 | +- CI: Add exclude for Kustomize API to dependabot config (#9059) |
| 137 | +- CI: Add licence-scan for pull requests (#9184) |
| 138 | +- CI: Add loggercheck linter and fix findings (#9446) |
| 139 | +- CI: Add verify-govulncheck and verify-vulnerabilities targets and integrate to scan action (#9144) |
| 140 | +- CI: Bump actions/cache from 3.3.1 to 3.3.2 (#9395) |
| 141 | +- CI: Bump actions/checkout from 4.1.0 to 4.1.1 (#9611) |
| 142 | +- CI: Bump actions/github-script from 7.0.0 to 7.0.1 (#9738) |
| 143 | +- CI: Bump actions/setup-go from 4.0.1 to 4.1.0 (#9187) |
| 144 | +- CI: Bump apidiff to v0.7.0 (#9472) |
| 145 | +- CI: Bump golangci-lint to v1.54.1 (#9174) |
| 146 | +- CI: Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#9261) |
| 147 | +- CI: Bump tj-actions/changed-files from 40.1.0 to 40.1.1 (#9714) |
| 148 | +- CI: Bump Trivy to v0.45.1 (#9445) |
| 149 | +- CI: Fix .golangci.yml comments (#9499) |
| 150 | +- CI: Ginkgolinter: forbid focus container (#9320) |
| 151 | +- CI: Github: add edited and reopened as triggers for the GH workflow approval (#9259) |
| 152 | +- CI: Github: add workflow to auto-approve golangci-lint if ok-to-test label is set (#9244) |
| 153 | +- CI: Go.mod reformat to have only two require blocks (#9192) |
| 154 | +- CI: Golangci-lint: replace deprecated local-prefixes setting for gci (#9339) |
| 155 | +- CI: Make GO_ARCH explicit in verify_containter script (#9341) |
| 156 | +- CI: Update actions for 1.5 and make names consistent (#9115) |
| 157 | +- CI: Verify plantuml image generation in CI (#9363) |
| 158 | +- ClusterCacheTracker: Add separate concurrency flag for cluster cache tracker (#9116) |
| 159 | +- ClusterCacheTracker: Ensure Get/List calls are not getting stuck when apiserver is unreachable (#9028) |
| 160 | +- ClusterCacheTracker: Fix accessor deletion on health check failure (#9025) |
| 161 | +- ClusterClass: Add additional test cases for nested variable defaulting (#9728) |
| 162 | +- ClusterClass: Add ownerRefs to BootstrapConfig/InfraMachinePool in classy Clusters (#9389) |
| 163 | +- ClusterClass: Embed ssa.FilterObjectInput into HelperOption to remove duplication (#9512) |
| 164 | +- ClusterClass: Fix some nits in Cluster topology engine tests (#9464) |
| 165 | +- ClusterClass: Improve Cluster variable defaulting/validation errors (#9452) |
| 166 | +- ClusterClass: Improve message for TopologyReconciledCondition (#9400) |
| 167 | +- ClusterClass: Make ClusterClass generated object names consistent (#9254) |
| 168 | +- ClusterClass: Minor fixes for CC+MP implementation (#9318) |
| 169 | +- clusterctl: Check resource blocking clusterctl move during discovery (#9246) |
| 170 | +- clusterctl: Propagate ctx to retryWithExponentialBackoff in clusterctl (#9437) |
| 171 | +- clusterctl: Use goproxy to check version in clusterctl (#9237) |
| 172 | +- clusterctl: Use http get to download files from GitHub in clusterctl (#9236) |
| 173 | +- Dependency: Bump cert-manager to v1.13.2 (#9653) |
| 174 | +- Dependency: Bump cloud.google.com/go/storage from 1.34.1 to 1.35.1 in /hack/tools (#9727) |
| 175 | +- Dependency: Bump controller tools to v1.13.0 (#9221) |
| 176 | +- Dependency: Bump controller-runtime to v0.16.3 (#9592) |
| 177 | +- Dependency: Bump conversion-gen to v0.28 (#9267) |
| 178 | +- Dependency: Bump corefile-migration library to v1.0.21 (#9307) |
| 179 | +- Dependency: Bump docker to v24.0.5 (#9064) |
| 180 | +- Dependency: Bump envtest binaries to 1.28 (#9268) |
| 181 | +- Dependency: Bump github.com/blang/semver to v4 (#9189) |
| 182 | +- Dependency: Bump github.com/docker/distribution (#9544) |
| 183 | +- Dependency: Bump github.com/docker/docker from 24.0.6+incompatible to 24.0.7+incompatible in /test (#9652) |
| 184 | +- Dependency: Bump github.com/emicklei/go-restful/v3 from 3.10.2 to 3.11.0 in /test (#9272) |
| 185 | +- Dependency: Bump github.com/evanphx/json-patch/v5 from 5.6.0 to 5.7.0 (#9397) |
| 186 | +- Dependency: Bump github.com/fatih/color from 1.15.0 to 1.16.0 (#9681) |
| 187 | +- Dependency: Bump github.com/go-logr/logr from 1.2.4 to 1.3.0 (#9644) |
| 188 | +- Dependency: Bump github.com/google/go-cmp from 0.5.9 to 0.6.0 (#9562) |
| 189 | +- Dependency: Bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 (#9716) |
| 190 | +- Dependency: Bump github.com/onsi/gomega from 1.29.0 to 1.30.0 (#9717) |
| 191 | +- Dependency: Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 (#9517) |
| 192 | +- Dependency: Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#9679) |
| 193 | +- Dependency: Bump github.com/spf13/viper from 1.16.0 to 1.17.0 (#9561) |
| 194 | +- Dependency: Bump Go version to v1.20.11 (#9683) |
| 195 | +- Dependency: Bump go-github dependency to version v53 (#8995) |
| 196 | +- Dependency: Bump go.etcd.io/etcd/api/v3 from 3.5.9 to 3.5.10 (#9642) |
| 197 | +- Dependency: Bump go.etcd.io/etcd/client/v3 from 3.5.9 to 3.5.10 (#9646) |
| 198 | +- Dependency: Bump go.opentelemetry.io/* dependencies (#9598) |
| 199 | +- Dependency: Bump golang.org/grpc to v1.59.0 (#9626) |
| 200 | +- Dependency: Bump golang.org/x/net from 0.15.0 to 0.17.0 in /test (#9537) |
| 201 | +- Dependency: Bump golang.org/x/oauth2 from 0.13.0 to 0.14.0 (#9715) |
| 202 | +- Dependency: Bump golang.org/x/text from 0.13.0 to 0.14.0 (#9680) |
| 203 | +- Dependency: Bump golangci-lint to v1.55.2 (#9740) |
| 204 | +- Dependency: Bump gomodules.xyz/jsonpatch/v2 from 2.3.0 to 2.4.0 (#9188) |
| 205 | +- Dependency: Bump google.golang.org/api from 0.149.0 to 0.150.0 in /hack/tools (#9691) |
| 206 | +- Dependency: Bump google.golang.org/grpc from 1.58.2 to 1.58.3 (#9607) |
| 207 | +- Dependency: Bump kpromo to v4.0.4 (#9241) |
| 208 | +- Dependency: Bump opentelemetry to fix CVEs (#9709) |
| 209 | +- Dependency: Bump sigs.k8s.io/yaml from 1.3.0 to 1.4.0 (#9645) |
| 210 | +- Dependency: Bump some dependencies in Makefile (#9549) |
| 211 | +- Dependency: Bump the kubernetes group in /hack/tools with 2 updates (#9420) |
| 212 | +- Dependency: Bump the kubernetes group in /hack/tools with 2 updates (#9574) |
| 213 | +- Dependency: Bump the kubernetes group with 2 updates (#9606) |
| 214 | +- Dependency: Bump the kubernetes group with 4 updates (#9326) |
| 215 | +- Dependency: Bump the kubernetes group with 4 updates (#9455) |
| 216 | +- Dependency: Bump the kubernetes group with 4 updates (#9739) |
| 217 | +- Dependency: Bump Trivy to v0.47.0 (#9671) |
| 218 | +- Dependency: Replace hashicorp/go-multierror with kerrors (#9175) |
| 219 | +- Dependency: Update ensure-kubectl.sh to 1.28 (#9275) |
| 220 | +- Devtools: Add .PHONY for doctoc target (#9148) |
| 221 | +- Devtools: Allow non-provider Deployments in Tilt (#9404) |
| 222 | +- Devtools: Bump CAPI visualizer to v1.2.0 (#9195) |
| 223 | +- Devtools: Drop duplicate pprof and unused linter excludes (#9156) |
| 224 | +- Devtools: Improve Performance dashboard (#9387) |
| 225 | +- Devtools: Make dev cluster networking configurable (#9183) |
| 226 | +- Devtools: Makefile: run doctoc only once (#9182) |
| 227 | +- Devtools: Move tilt-prepare and log-push to tools/internal (#9020) |
| 228 | +- Devtools: Observability: move metrics to config and use sidecar in kube-state-metrics (#9390) |
| 229 | +- Devtools: Refactor docker-push* Makefile targets so users can control with ALL_DOCKER_BUILD which images are pushed (#8586) |
| 230 | +- Devtools: Tiltfile: rename deploy_kustomizations to additional_kustomizations (#9439) |
| 231 | +- e2e: Add back flavor to Waiter interface (#9166) |
| 232 | +- e2e: Add CRS re-reconcile to ownerReference test (#9296) |
| 233 | +- e2e: Add log level for kube components patch to ClusterClass (#9493) |
| 234 | +- e2e: Add MachinePools to Topology Quickstart E2E Templates (#9393) |
| 235 | +- e2e: Add MP timeouts to cluster upgrade tests (#9723) |
| 236 | +- e2e: Add test for ownerReference apiVersion update (#9269) |
| 237 | +- e2e: Add test for scale testing machinery (#9510) |
| 238 | +- e2e: Bump autoscaler to v1.28.0 (#9349) |
| 239 | +- e2e: Drop PR-Informing test tag and job description (#9362) |
| 240 | +- e2e: Dump all pods in e2e test clusters (#9441) |
| 241 | +- e2e: Dump all resource information for self-hosted tests (#9547) |
| 242 | +- e2e: Ensure finalizers are resilient on reconciliation (#9471) |
| 243 | +- e2e: Fail tests if test env version check fails (#9388) |
| 244 | +- e2e: Fix broken e2e test clusterclass (#9506) |
| 245 | +- e2e: Improve labels/annotations in CAPD test ClusterClass (#9469) |
| 246 | +- e2e: Improve logging for self-hosted e2e test (#9637) |
| 247 | +- e2e: Improve output of exec.KubectlApply (#9761) |
| 248 | +- e2e: Refactor e2e ownerRef test utils (#9313) |
| 249 | +- e2e: Test/conformance: add variables to overwrite parralelization of kubetest runs (#9667) |
| 250 | +- e2e: Test/e2e: structure resources by namespace/kind again (#9462) |
| 251 | +- e2e: Use existing value of `SKIP_RESOURCE_CLEANUP` if set in environment (#9152) |
| 252 | +- IPAM: Add age also to v1beta1 IPAM types (#9729) |
| 253 | +- IPAM: Add age column to kubectl output (#9521) |
| 254 | +- IPAM: Enforce IPAM import alias (#9730) |
| 255 | +- KCP: Controlplane: add a test case for syncMachines where the InfraMachine does not exist. (#8992) |
| 256 | +- KCP: Remove disableInPlacePropagation field in KCP controller (#9099) |
| 257 | +- KCP: Remove redundant GetRESTConfig in KCP Management.GetWorkloadCluster (#9448) |
| 258 | +- KCP: Support admin config for Kubeadm v1.29 (#9682) |
| 259 | +- Logging: Change default log level to 2 (#9093) |
| 260 | +- Logging: Fix patch errors not being logged (#9224) |
| 261 | +- Logging: Set controller-runtime logger for clusterctl (#9107) |
| 262 | +- MachinePool: Add MachinePool Builders (#9346) |
| 263 | +- MachinePool: Add util function to get MachinePool by label (#9219) |
| 264 | +- Metrics: Hack/observability: add capi_machine_status_certificatesexpirydate metric (#9084) |
| 265 | +- Metrics: Hack: bump kube-state-metrics and prometheus charts (#9352) |
| 266 | +- Release: Add additional blocks to release note generation (#9247) |
| 267 | +- Release: Add adilGhaffarDev to release-team owner alias (#9718) |
| 268 | +- Release: Add Release Team OWNERS file to docs/release folder (#9294) |
| 269 | +- Release: Avoid cd'ing into test folders when building Docker images (#9744) |
| 270 | +- Release: Bump kubebuilder tools to v0.4.2 (#9665) |
| 271 | +- Release: Bump PR title checker github action to v0.4.1 (#9650) |
| 272 | +- Release: Capitalize area prefix in release notes by default (#9614) |
| 273 | +- Release: Capitalized title in release notes (#9086) |
| 274 | +- Release: Clarify release team vs k8s/k8s-SIGs org membership (#9089) |
| 275 | +- Release: Exclude release trigger PRs from release notes (#9444) |
| 276 | +- Release: Format Community meeting area in release notes (#9648) |
| 277 | +- Release: Format MachineHealthCheck area in release notes (#9500) |
| 278 | +- Release: Give permissions for release notes tool to release team (#9563) |
| 279 | +- Release: Hack: add weekly update script for Slack (#9343) |
| 280 | +- Release: Improve multiple areas PRs with user friendly subs (#9071) |
| 281 | +- Release: Improve release notes formatting (#9337) |
| 282 | +- Release: Improve release speed (#9392) |
| 283 | +- Release: Improve release staging build speed (#9536) |
| 284 | +- Release: Prepare main branch for v1.6 development (#9097) |
| 285 | +- Release: Remove auto-labelling for clusterctl (#8990) |
| 286 | +- Release: Remove extra separator after title in release notes (#9605) |
| 287 | +- Release: Revert "Improve release staging build speed" (#9753) |
| 288 | +- Release: Update instructions checklist to generate release notes (#9443) |
| 289 | +- Release: Update kubebuilder-release-tools to v0.4.0 (#9531) |
| 290 | +- Release: Update release-notes make target + corresponding doc (#9573) |
| 291 | +- Runtime SDK: Improve ClusterClass watch for ExtensionConfigs (#9338) |
| 292 | +- Testing: Add MachinePool test cases (#9474) |
| 293 | +- Testing: Add MachinePool test cases to engine tests (#9373) |
| 294 | +- Testing: Add MachinePool test cases to variables tests (#9372) |
| 295 | +- Testing: Add MachinePools to Runtime SDK and Rollout tests (#9703) |
| 296 | +- Testing: Add MachinePools to topology upgrade test (#9502) |
| 297 | +- Testing: Add test for required properties in clusterclass variables (#9113) |
| 298 | +- Testing: Add unit tests for CC MP blueprint, current_state, & desired_state (#9348) |
| 299 | +- Testing: Add unit tests for reconcile_state, cluster_controller, & conditions (#9380) |
| 300 | +- Testing: Add WaitForMachinePoolToBeUpgraded to self-hosted test (#9540) |
| 301 | +- Testing: Extend test/framework to collect workload cluster nodes (#9416) |
| 302 | +- Testing: Follow-up fixes: Add MachinePools to Runtime SDK and Rollout tests (#9719) |
| 303 | +- Testing: Replacing gomega.Equal with gomega.BeComparableTo (#9015) |
| 304 | +- util: Adjust naming in SortForCreate implementation (#9311) |
| 305 | +- util: Move `internal.labels` to `format` package for use by providers (#9002) |
| 306 | +- util: Refactor SortForCreate to use sort.Slice (#9251) |
| 307 | +- util: Remove previously deprecated code (#9136) |
| 308 | + |
| 309 | +:book: Additionally, there have been 55 contributions to our documentation and book. (#8260, #8500, #8678, #8819, #8988, #9001, #9013, #9014, #9024, #9029, #9080, #9081, #9087, #9112, #9119, #9141, #9146, #9150, #9161, #9173, #9208, #9209, #9213, #9214, #9232, #9270, #9286, #9291, #9305, #9328, #9364, #9386, #9403, #9415, #9429, #9433, #9463, #9487, #9488, #9490, #9511, #9513, #9514, #9527, #9550, #9559, #9565, #9572, #9577, #9590, #9593, #9613, #9635, #9654, #9706) |
| 310 | + |
| 311 | +</details> |
| 312 | +<br/> |
| 313 | + |
| 314 | +_Thanks to all our contributors!_ 😊 |
0 commit comments