Repository: kubernetes/minikube
Pull request #13367 (2022-01-17 22:47:33)

Adds 'minikube service --all' feature to allow forwarding all services in a namespace
Adds  'minikube service --all' feature for service to allow forwarding all services in a namespace, also supports multiple service-name arguments to forward any specifically named services.


linux-foundation-easycla[bot]: <a href="https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2"><img src="https://s3.amazonaws.com/cla-project-logo-prod/cla-not-signed.svg" alt="CLA Not Signed" align="left" height="28" width="328" ></a><br/><br /><ul><li><a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2' target='_blank'>:x:</a> - Chris Kannon The commit (3629b508d3912fdb593208f7a316ec76ba0dbc66) is not authorized under a signed CLA. <a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2' target='_blank'>Please click here to be authorized</a>. For further assistance with EasyCLA, <a href='https://jira.linuxfoundation.org/servicedesk/customer/portal/4' target='_blank'>please submit a support request ticket</a>.</li></ul>
k8s-ci-robot: Hi @ckannon. Thanks for your PR.

I'm waiting for a [kubernetes](https://github.com/orgs/kubernetes/people) member to verify that this patch is reasonable to test. If it is, they should reply with `/ok-to-test` on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should [join the org](https://git.k8s.io/community/community-membership.md#member) to skip this step.

Once the patch is verified, the new status will be reflected by the `ok-to-test` label.

I understand the commands that are listed [here](https://go.k8s.io/bot-commands?repo=kubernetes%2Fminikube).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>

k8s-ci-robot: Welcome @ckannon! <br><br>It looks like this is your first PR to <a href='https://github.com/kubernetes/minikube'>kubernetes/minikube</a> 🎉. Please refer to our [pull request process documentation](https://git.k8s.io/community/contributors/guide/pull-requests.md) to help your PR have a smooth ride to approval. <br><br>You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. [Here is the bot commands documentation](https://go.k8s.io/bot-commands). <br><br>You can also check if kubernetes/minikube has [its own contribution guidelines](https://github.com/kubernetes/minikube/tree/master/CONTRIBUTING.md). <br><br>You may want to refer to our [testing guide](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md) if you run into trouble with your tests not passing. <br><br>If you are having difficulty getting your pull request seen, please follow the [recommended escalation practices](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#why-is-my-pull-request-not-getting-reviewed). Also, for tips and tricks in the contribution process you may want to read the [Kubernetes contributor cheat sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet/README.md). We want to make sure your contribution gets all the attention it needs! <br><br>Thank you, and welcome to Kubernetes. :smiley:
minikube-bot: Can one of the admins verify this patch?
k8s-ci-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes/minikube/pull/13367#" title="Author self-approved">ckannon</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **spowelljr** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @spowelljr` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes%2Fminikube).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/kubernetes/minikube/blob/master/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["spowelljr"]} -->
ckannon: Usage and output:
ckannon$ mk service -n test --all
```
|-----------|--------------|-------------|-----|
| NAMESPACE |     NAME     | TARGET PORT | URL |
|-----------|--------------|-------------|-----|
| test      | my-service-1 |          80 |     |
| test      | my-service-2 |          80 |     |
| test      | my-service-3 |          80 |     |
|-----------|--------------|-------------|-----|
🏃  Starting tunnel for service my-service-1.
🏃  Starting tunnel for service my-service-2.
🏃  Starting tunnel for service my-service-3.
|-----------|--------------|-------------|------------------------|
| NAMESPACE |     NAME     | TARGET PORT |          URL           |
|-----------|--------------|-------------|------------------------|
| test      | my-service-1 |             | http://127.0.0.1:60337 |
| test      | my-service-2 |             | http://127.0.0.1:60349 |
| test      | my-service-3 |             | http://127.0.0.1:60359 |
|-----------|--------------|-------------|------------------------|
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
```
ckannon: > thank you for this PR do u mind pasting the output of minikube for an example usage of this feature ?

Added, thanks!
ckannon: @medyagh Also, can this get an ok-to-test please?
ckannon: Oh, it also supports multiple service name args now, instead of just a single one. Usage:
ckannon$ minikube service -n test my-service-1 my-service-2
|-----------|--------------|-------------|-----|
| NAMESPACE |     NAME     | TARGET PORT | URL |
|-----------|--------------|-------------|-----|
| test      | my-service-1 |          80 |     |
| test      | my-service-2 |          80 |     |
|-----------|--------------|-------------|-----|
🏃  Starting tunnel for service my-service-1.
🏃  Starting tunnel for service my-service-2.
|-----------|--------------|-------------|------------------------|
| NAMESPACE |     NAME     | TARGET PORT |          URL           |
|-----------|--------------|-------------|------------------------|
| test      | my-service-1 |             | http://127.0.0.1:63000 |
| test      | my-service-2 |             | http://127.0.0.1:63010 |
|-----------|--------------|-------------|------------------------|
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.

medyagh: sure ! thank you @ckannon 
medyagh: /ok-to-test
minikube-pr-bot: **kvm2 driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 64.0s    | 64.2s               |
| enable ingress | 29.4s    | 29.8s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 63.9s 65.2s 63.4s 63.7s 63.8s 
Times for minikube (PR 13367) start: 64.8s 64.3s 63.7s 63.6s 64.6s 

Times for minikube (PR 13367) ingress: 30.5s 29.5s 29.5s 29.1s 30.6s 
Times for minikube ingress: 29.0s 30.6s 31.1s 26.1s 30.0s 

</details>

**docker driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 39.8s    | 40.0s               |
| enable ingress | 23.5s    | 22.4s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 39.6s 39.4s 40.1s 38.8s 41.1s 
Times for minikube (PR 13367) start: 40.3s 40.5s 39.7s 39.5s 40.1s 

Times for minikube ingress: 23.0s 26.9s 22.9s 22.9s 21.9s 
Times for minikube (PR 13367) ingress: 21.9s 23.0s 21.9s 22.4s 22.9s 

</details>

**docker driver with containerd runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 46.9s    | 45.6s               |
| enable ingress | 31.3s    | 33.9s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube (PR 13367) start: 46.3s 43.9s 47.0s 44.2s 46.6s 
Times for minikube start: 46.4s 47.0s 46.8s 47.2s 47.3s 

Times for minikube ingress: 30.9s 34.0s 31.0s 30.9s 29.9s 
Times for minikube (PR 13367) ingress: 30.9s 38.4s 30.9s 34.4s 34.9s 

</details>
minikube-pr-bot: These are the flake rates of all failed tests.
|Environment|Failed Tests|Flake Rate (%)|
|---|---|---|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestAddons/Setup ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestAddons/Setup))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestDownloadOnlyKic ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestDownloadOnlyKic))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/DashboardCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/DashboardCmd))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/MountCmd/any-port ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/MountCmd/any-port))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/MySQL ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/MySQL))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/PersistentVolumeClaim ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/PersistentVolumeClaim))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/TunnelCmd/serial/AccessDirect ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/TunnelCmd/serial/AccessDirect))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/TunnelCmd/serial/WaitService/Setup ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/parallel/TunnelCmd/serial/WaitService/Setup))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/serial/ExtraConfig ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/serial/ExtraConfig))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/serial/SoftStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/serial/SoftStart))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/serial/StartWithProxy ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestFunctional/serial/StartWithProxy))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestIngressAddonLegacy/serial/ValidateIngressAddonActivation ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestIngressAddonLegacy/serial/ValidateIngressAddonActivation))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestIngressAddonLegacy/StartLegacyK8sCluster ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestIngressAddonLegacy/StartLegacyK8sCluster))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestJSONOutput/start/Audit ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestJSONOutput/start/Audit))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestJSONOutput/start/Command ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestJSONOutput/start/Command))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/AddNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/AddNode))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/DeleteNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/DeleteNode))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/DeployApp2Nodes ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/DeployApp2Nodes))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/FreshStart2Nodes ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/FreshStart2Nodes))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/PingHostFrom2Pods ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/PingHostFrom2Pods))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/ProfileList ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/ProfileList))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/RestartKeepsNodes ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/RestartKeepsNodes))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/RestartMultiNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/RestartMultiNode))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/StartAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/StartAfterStop))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/StopNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestMultiNode/serial/StopNode))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestPause/serial/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestPause/serial/Start))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestPreload ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestPreload))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestStartStop/group/embed-certs/serial/DeployApp ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestStartStop/group/embed-certs/serial/DeployApp))|n/a|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestStoppedBinaryUpgrade/MinikubeLogs ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22376/Docker_Linux_containerd.html#fail_TestStoppedBinaryUpgrade/MinikubeLogs))|n/a|
|More tests...|Continued...|

Too many tests failed - See test logs for more details.

To see the flake rates of all tests by environment, click [here](https://minikube.sigs.k8s.io/docs/contrib/test_flakes/).
minikube-pr-bot: **kvm2 driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 46.4s    | 44.9s               |
| enable ingress | 34.2s    | 31.5s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 46.2s 44.8s 50.6s 44.2s 46.2s 
Times for minikube (PR 13367) start: 45.0s 44.9s 45.5s 44.4s 44.5s 

Times for minikube ingress: 37.1s 32.1s 30.6s 40.1s 31.1s 
Times for minikube (PR 13367) ingress: 32.1s 32.1s 30.6s 31.1s 31.6s 

</details>

**docker driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 27.1s    | 26.3s               |
| enable ingress | 23.0s    | 24.1s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 27.7s 27.3s 27.7s 26.1s 26.9s 
Times for minikube (PR 13367) start: 25.8s 26.0s 26.4s 26.9s 26.4s 

Times for minikube ingress: 24.9s 21.9s 21.9s 23.0s 23.4s 
Times for minikube (PR 13367) ingress: 25.4s 23.5s 22.9s 26.4s 22.4s 

</details>

**docker driver with containerd runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 40.6s    | 43.4s               |
| enable ingress | 22.6s    | 22.5s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 31.0s 42.5s 41.9s 45.8s 41.8s 
Times for minikube (PR 13367) start: 42.8s 42.2s 45.3s 45.2s 41.4s 

Times for minikube (PR 13367) ingress: 23.5s 23.9s 19.9s 20.9s 24.4s 
Times for minikube ingress: 23.4s 24.4s 23.4s 18.9s 22.9s 

</details>
minikube-pr-bot: These are the flake rates of all failed tests.
|Environment|Failed Tests|Flake Rate (%)|
|---|---|---|
|[Docker_Cloud_Shell](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Cloud_Shell.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestNoKubernetes/serial/StartNoArgs ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Linux_containerd.html#fail_TestNoKubernetes/serial/StartNoArgs))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestNoKubernetes/serial/StartNoArgs))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestStartStop/group/newest-cni/serial/SecondStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Linux_containerd.html#fail_TestStartStop/group/newest-cni/serial/SecondStart))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestStartStop/group/newest-cni/serial/SecondStart))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestStartStop/group/newest-cni/serial/VerifyKubernetesImages ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Linux_containerd.html#fail_TestStartStop/group/newest-cni/serial/VerifyKubernetesImages))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestStartStop/group/newest-cni/serial/VerifyKubernetesImages))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Hyperkit_macOS.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestFunctional/parallel/ServiceCmd))|
|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Hyper-V_Windows.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/none_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestDownloadOnly/v1.23.2/preload-exists ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestDownloadOnly/v1.23.2/preload-exists))|1.96 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestDownloadOnly/v1.23.2/preload-exists))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestCertExpiration ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestCertExpiration))|3.28 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestCertExpiration))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestCertOptions ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestCertOptions))|3.28 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestCertOptions))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestDockerFlags ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestDockerFlags))|3.28 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestDockerFlags))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestForceSystemdEnv ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestForceSystemdEnv))|3.28 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestForceSystemdEnv))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestForceSystemdFlag ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_macOS.html#fail_TestForceSystemdFlag))|3.28 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestForceSystemdFlag))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestStartStop/group/newest-cni/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Linux_containerd.html#fail_TestStartStop/group/newest-cni/serial/Pause))|4.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestStartStop/group/newest-cni/serial/Pause))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestJSONOutput/start/Audit ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Windows.html#fail_TestJSONOutput/start/Audit))|4.76 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestJSONOutput/start/Audit))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestJSONOutput/start/Command ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Windows.html#fail_TestJSONOutput/start/Command))|4.76 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestJSONOutput/start/Command))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestForceSystemdEnv ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux.html#fail_TestForceSystemdEnv))|6.45 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestForceSystemdEnv))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestRunningBinaryUpgrade ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux.html#fail_TestRunningBinaryUpgrade))|6.45 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestRunningBinaryUpgrade))|
|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)|TestPause/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Hyper-V_Windows.html#fail_TestPause/serial/Pause))|7.14 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows&test=TestPause/serial/Pause))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestStoppedBinaryUpgrade/MinikubeLogs ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux.html#fail_TestStoppedBinaryUpgrade/MinikubeLogs))|8.06 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestStoppedBinaryUpgrade/MinikubeLogs))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestStoppedBinaryUpgrade/Upgrade ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux.html#fail_TestStoppedBinaryUpgrade/Upgrade))|8.06 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestStoppedBinaryUpgrade/Upgrade))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestStartStop/group/no-preload/serial/AddonExistsAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestStartStop/group/no-preload/serial/AddonExistsAfterStop))|8.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestStartStop/group/no-preload/serial/AddonExistsAfterStop))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestStartStop/group/no-preload/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestStartStop/group/no-preload/serial/Pause))|8.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestStartStop/group/no-preload/serial/Pause))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestStartStop/group/no-preload/serial/SecondStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestStartStop/group/no-preload/serial/SecondStart))|8.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestStartStop/group/no-preload/serial/SecondStart))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestStartStop/group/no-preload/serial/UserAppExistsAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestStartStop/group/no-preload/serial/UserAppExistsAfterStop))|8.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestStartStop/group/no-preload/serial/UserAppExistsAfterStop))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestStartStop/group/no-preload/serial/VerifyKubernetesImages ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/KVM_Linux_containerd.html#fail_TestStartStop/group/no-preload/serial/VerifyKubernetesImages))|8.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestStartStop/group/no-preload/serial/VerifyKubernetesImages))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/bridge/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22456/Docker_Windows.html#fail_TestNetworkPlugins/group/bridge/DNS))|10.53 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/bridge/DNS))|
|More tests...|Continued...|

Too many tests failed - See test logs for more details.

To see the flake rates of all tests by environment, click [here](https://minikube.sigs.k8s.io/docs/contrib/test_flakes/).
linux-foundation-easycla[bot]: <a href="https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2"><img src="https://s3.amazonaws.com/cla-project-logo-prod/cla-not-signed.svg" alt="CLA Not Signed" align="left" height="28" width="328" ></a><br/><br /><ul><li>:white_check_mark:  Chris Kannon (3629b508d3912fdb593208f7a316ec76ba0dbc66, ce1d30f7e82976f4b2448c4fc403a35e52ea03a4)</li></ul><ul><li><a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2' target='_blank'>:x:</a> - yardik The commit (0f16486047d4d06ef4021446d24b2063595654b7) is not authorized under a signed CLA. <a href='https://api.easycla.lfx.linuxfoundation.org/v2/repository-provider/github/sign/18706487/56353740/13367/#/?version=2' target='_blank'>Please click here to be authorized</a>. For further assistance with EasyCLA, <a href='https://jira.linuxfoundation.org/servicedesk/customer/portal/4' target='_blank'>please submit a support request ticket</a>.</li></ul>
k8s-ci-robot: Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: **Please follow instructions at <https://git.k8s.io/community/CLA.md#the-contributor-license-agreement> to sign the CLA.**

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify.  Thanks.

---

- If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address.  Check your existing CLA data and verify that your [email is set on your git commits](https://help.github.com/articles/setting-your-email-in-git/).
- If you signed the CLA as a corporation, please sign in with your organization's credentials at <https://identity.linuxfoundation.org/projects/cncf> to be authorized.
- If you have done the above and are still having issues with the CLA being reported as unsigned, please log a ticket with the Linux Foundation Helpdesk: <https://support.linuxfoundation.org/>
- Should you encounter any issues with the Linux Foundation Helpdesk, send a message to the backup e-mail support address at: login-issues@jira.linuxfoundation.org

<!-- need_sender_cla -->

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
	
minikube-pr-bot: **kvm2 driver with docker runtime**
error collecting results for kvm2 driver: timing run 0 with minikube: timing cmd: [out/minikube start --driver=kvm2 --container-runtime=docker]: waiting for minikube: exit status 85
**docker driver with docker runtime**
error downloading artifacts: downloading artifacts: exit status 81**docker driver with containerd runtime**
error downloading artifacts: downloading artifacts: exit status 81
minikube-pr-bot: These are the flake rates of all failed tests.
|Environment|Failed Tests|Flake Rate (%)|
|---|---|---|
|[Docker_Cloud_Shell](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_Cloud_Shell.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Hyperkit_macOS.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestFunctional/parallel/ServiceCmd))|
|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Hyper-V_Windows.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/KVM_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/KVM_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/none_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/embed-certs/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/embed-certs/serial/Pause))|20.90 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/embed-certs/serial/Pause))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/old-k8s-version/serial/AddonExistsAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/old-k8s-version/serial/AddonExistsAfterStop))|20.90 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/old-k8s-version/serial/AddonExistsAfterStop))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/old-k8s-version/serial/UserAppExistsAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/old-k8s-version/serial/UserAppExistsAfterStop))|20.90 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/old-k8s-version/serial/UserAppExistsAfterStop))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/old-k8s-version/serial/VerifyKubernetesImages ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/old-k8s-version/serial/VerifyKubernetesImages))|20.90 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/old-k8s-version/serial/VerifyKubernetesImages))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/old-k8s-version/serial/SecondStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/old-k8s-version/serial/SecondStart))|22.06 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/old-k8s-version/serial/SecondStart))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/old-k8s-version/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestStartStop/group/old-k8s-version/serial/Pause))|23.88 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/old-k8s-version/serial/Pause))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestNetworkPlugins/group/kindnet/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestNetworkPlugins/group/kindnet/DNS))|33.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestNetworkPlugins/group/kindnet/DNS))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestNetworkPlugins/group/kubenet/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestNetworkPlugins/group/kubenet/DNS))|35.71 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestNetworkPlugins/group/kubenet/DNS))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|47.06 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestNetworkPlugins/group/calico/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestNetworkPlugins/group/calico/Start))|54.05 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestNetworkPlugins/group/calico/Start))|
|[Docker_Cloud_Shell](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell)|TestAddons/parallel/MetricsServer ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_Cloud_Shell.html#fail_TestAddons/parallel/MetricsServer))|61.64 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell&test=TestAddons/parallel/MetricsServer))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestNetworkPlugins/group/bridge/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestNetworkPlugins/group/bridge/DNS))|62.50 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestNetworkPlugins/group/bridge/DNS))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestNetworkPlugins/group/enable-default-cni/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestNetworkPlugins/group/enable-default-cni/DNS))|70.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestNetworkPlugins/group/enable-default-cni/DNS))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestDownloadOnly/v1.16.0/preload-exists ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22482/Docker_macOS.html#fail_TestDownloadOnly/v1.16.0/preload-exists))|100.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestDownloadOnly/v1.16.0/preload-exists))|


To see the flake rates of all tests by environment, click [here](https://minikube.sigs.k8s.io/docs/contrib/test_flakes/).
k8s-ci-robot: @ckannon: PR needs rebase.

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>
minikube-pr-bot: **kvm2 driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 44.8s    | 44.5s               |
| enable ingress | 29.1s    | 28.9s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube (PR 13367) start: 44.1s 43.8s 45.6s 45.1s 44.0s 
Times for minikube start: 45.6s 46.1s 44.0s 44.0s 44.5s 

Times for minikube ingress: 26.6s 29.1s 30.6s 29.6s 29.6s 
Times for minikube (PR 13367) ingress: 29.0s 30.1s 28.6s 29.6s 27.1s 

</details>

**docker driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 26.7s    | 26.1s               |
| enable ingress | 23.3s    | 23.9s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 30.6s 26.1s 25.6s 25.8s 25.5s 
Times for minikube (PR 13367) start: 26.3s 26.4s 25.2s 26.6s 26.2s 

Times for minikube ingress: 21.9s 25.4s 23.0s 22.9s 23.0s 
Times for minikube (PR 13367) ingress: 25.9s 23.4s 22.4s 22.4s 25.4s 

</details>

**docker driver with containerd runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 40.2s    | 42.4s               |
| enable ingress | 26.6s    | 26.5s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube ingress: 33.5s 23.4s 22.9s 18.9s 34.5s 
Times for minikube (PR 13367) ingress: 22.9s 22.9s 29.9s 23.4s 33.4s 

Times for minikube (PR 13367) start: 41.9s 41.8s 44.8s 41.2s 42.2s 
Times for minikube start: 31.1s 41.9s 41.9s 45.9s 40.4s 

</details>
minikube-pr-bot: These are the flake rates of all failed tests.
|Environment|Failed Tests|Flake Rate (%)|
|---|---|---|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/serial/LogsFileCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux_containerd.html#fail_TestFunctional/serial/LogsFileCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestFunctional/serial/LogsFileCmd))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestIngressAddonLegacy/serial/ValidateIngressAddons ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux_containerd.html#fail_TestIngressAddonLegacy/serial/ValidateIngressAddons))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestIngressAddonLegacy/serial/ValidateIngressAddons))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestFunctional/serial/ComponentHealth ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestFunctional/serial/ComponentHealth))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestFunctional/serial/ComponentHealth))|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Hyperkit_macOS.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/KVM_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestFunctional/parallel/ServiceCmd))|
|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/KVM_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/none_Linux.html#fail_TestFunctional/parallel/ServiceCmd))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestKubernetesUpgrade ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestKubernetesUpgrade))|6.67 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestKubernetesUpgrade))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestPause/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestPause/serial/Pause))|6.74 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestPause/serial/Pause))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/auto/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/auto/Start))|7.58 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/auto/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestStartStop/group/newest-cni/serial/SecondStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestStartStop/group/newest-cni/serial/SecondStart))|10.94 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestStartStop/group/newest-cni/serial/SecondStart))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestStartStop/group/newest-cni/serial/VerifyKubernetesImages ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestStartStop/group/newest-cni/serial/VerifyKubernetesImages))|10.94 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestStartStop/group/newest-cni/serial/VerifyKubernetesImages))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/false/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/false/Start))|15.15 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/false/Start))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestAddons/parallel/MetricsServer ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_macOS.html#fail_TestAddons/parallel/MetricsServer))|18.68 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestAddons/parallel/MetricsServer))|
|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)|TestStartStop/group/embed-certs/serial/FirstStart ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_macOS.html#fail_TestStartStop/group/embed-certs/serial/FirstStart))|20.78 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS&test=TestStartStop/group/embed-certs/serial/FirstStart))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/enable-default-cni/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/enable-default-cni/Start))|34.85 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/enable-default-cni/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestStartStop/group/default-k8s-different-port/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestStartStop/group/default-k8s-different-port/serial/Pause))|42.19 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestStartStop/group/default-k8s-different-port/serial/Pause))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestNetworkPlugins/group/false/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestNetworkPlugins/group/false/DNS))|42.22 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestNetworkPlugins/group/false/DNS))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestStartStop/group/newest-cni/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestStartStop/group/newest-cni/serial/Pause))|45.31 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestStartStop/group/newest-cni/serial/Pause))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/kindnet/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/kindnet/Start))|46.97 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/kindnet/Start))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestFunctional/parallel/ServiceCmd ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux_containerd.html#fail_TestFunctional/parallel/ServiceCmd))|51.52 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestFunctional/parallel/ServiceCmd))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/bridge/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/bridge/Start))|59.09 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/bridge/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/kubenet/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/kubenet/Start))|59.09 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/kubenet/Start))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestNetworkPlugins/group/kindnet/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestNetworkPlugins/group/kindnet/DNS))|60.78 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestNetworkPlugins/group/kindnet/DNS))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestNetworkPlugins/group/custom-weave/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestNetworkPlugins/group/custom-weave/Start))|63.33 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestNetworkPlugins/group/custom-weave/Start))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestNetworkPlugins/group/calico/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestNetworkPlugins/group/calico/Start))|72.22 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestNetworkPlugins/group/calico/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/calico/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNetworkPlugins/group/calico/Start))|72.73 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/calico/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNoKubernetes/serial/StartWithStopK8s ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Windows.html#fail_TestNoKubernetes/serial/StartWithStopK8s))|75.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNoKubernetes/serial/StartWithStopK8s))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestNetworkPlugins/group/enable-default-cni/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestNetworkPlugins/group/enable-default-cni/DNS))|77.78 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestNetworkPlugins/group/enable-default-cni/DNS))|
|More tests...|Continued...|

Too many tests failed - See test logs for more details.

To see the flake rates of all tests by environment, click [here](https://minikube.sigs.k8s.io/docs/contrib/test_flakes/).
medyagh: @ckannon plz take a look at the lint :) some go format styles
https://github.com/kubernetes/minikube/runs/5041593907?check_suite_focus=true

and the service functional test

https://storage.googleapis.com/minikube-builds/logs/13367/22506/Docker_Linux.html#fail_TestFunctional%2fparallel%2fServiceCmd
minikube-pr-bot: **kvm2 driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 53.6s    | 52.5s               |
| enable ingress | 28.5s    | 28.0s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 54.9s 51.4s 54.2s 52.3s 55.4s 
Times for minikube (PR 13367) start: 51.7s 52.2s 53.3s 52.5s 52.6s 

Times for minikube ingress: 26.6s 29.1s 29.0s 29.0s 28.6s 
Times for minikube (PR 13367) ingress: 29.6s 26.6s 28.6s 30.0s 25.1s 

</details>

**docker driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 27.2s    | 26.3s               |
| enable ingress | 22.2s    | 22.5s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 30.4s 26.7s 26.3s 26.4s 26.0s 
Times for minikube (PR 13367) start: 27.1s 26.2s 26.5s 25.9s 25.9s 

Times for minikube ingress: 22.0s 21.9s 21.9s 22.0s 23.4s 
Times for minikube (PR 13367) ingress: 23.9s 22.9s 21.9s 21.0s 23.0s 

</details>

**docker driver with containerd runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 39.6s    | 42.4s               |
| enable ingress | 25.0s    | 32.9s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube ingress: 23.4s 22.9s 22.9s 22.9s 33.0s 
Times for minikube (PR 13367) ingress: 24.4s 33.5s 54.4s 28.9s 23.4s 

Times for minikube start: 30.5s 41.6s 42.1s 41.9s 42.1s 
Times for minikube (PR 13367) start: 41.0s 41.1s 41.9s 45.6s 42.3s 

</details>
minikube-pr-bot: **kvm2 driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 52.7s    | 52.5s               |
| enable ingress | 27.3s    | 29.1s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 51.8s 52.4s 51.0s 52.3s 56.0s 
Times for minikube (PR 13367) start: 52.0s 51.7s 52.2s 52.5s 54.0s 

Times for minikube ingress: 27.0s 29.6s 25.5s 27.0s 27.6s 
Times for minikube (PR 13367) ingress: 29.1s 29.1s 30.0s 28.5s 29.0s 

</details>

**docker driver with docker runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 29.2s    | 26.3s               |
| enable ingress | 35.1s    | 23.1s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube (PR 13367) start: 26.7s 26.5s 25.9s 27.0s 25.4s 
Times for minikube start: 42.6s 25.9s 25.5s 26.3s 25.5s 

Times for minikube ingress: 82.9s 26.0s 21.9s 22.4s 22.4s 
Times for minikube (PR 13367) ingress: 21.9s 22.9s 25.9s 21.9s 22.9s 

</details>

**docker driver with containerd runtime**
```
+----------------+----------+---------------------+
|    COMMAND     | MINIKUBE | MINIKUBE (PR 13367) |
+----------------+----------+---------------------+
| minikube start | 44.1s    | 44.2s               |
| enable ingress | 20.2s    | 22.3s               |
+----------------+----------+---------------------+
```

<details>

Times for minikube start: 43.3s 44.8s 44.8s 45.3s 42.1s 
Times for minikube (PR 13367) start: 41.1s 40.9s 46.6s 46.0s 46.3s 

Times for minikube ingress: 22.4s 18.9s 18.9s 18.9s 21.9s 
Times for minikube (PR 13367) ingress: 23.4s 22.5s 18.9s 18.0s 28.9s 

</details>
minikube-pr-bot: These are the flake rates of all failed tests.
|Environment|Failed Tests|Flake Rate (%)|
|---|---|---|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestNetworkPlugins/group/calico/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Hyperkit_macOS.html#fail_TestNetworkPlugins/group/calico/Start))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestNetworkPlugins/group/calico/Start))|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestNetworkPlugins/group/kindnet/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Hyperkit_macOS.html#fail_TestNetworkPlugins/group/kindnet/Start))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestNetworkPlugins/group/kindnet/Start))|
|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)|TestSkaffold ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Hyperkit_macOS.html#fail_TestSkaffold))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS&test=TestSkaffold))|
|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)|TestNetworkPlugins/group/bridge/NetCatPod ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Hyper-V_Windows.html#fail_TestNetworkPlugins/group/bridge/NetCatPod))|0.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows&test=TestNetworkPlugins/group/bridge/NetCatPod))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/kindnet/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Windows.html#fail_TestNetworkPlugins/group/kindnet/DNS))|2.27 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/kindnet/DNS))|
|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)|TestFunctional/serial/ComponentHealth ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux.html#fail_TestFunctional/serial/ComponentHealth))|6.77 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux&test=TestFunctional/serial/ComponentHealth))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/bridge/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Windows.html#fail_TestNetworkPlugins/group/bridge/DNS))|8.11 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/bridge/DNS))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestCertExpiration ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/KVM_Linux_containerd.html#fail_TestCertExpiration))|8.51 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestCertExpiration))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestCertOptions ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/KVM_Linux_containerd.html#fail_TestCertOptions))|8.51 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestCertOptions))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestNetworkPlugins/group/kindnet/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/KVM_Linux_containerd.html#fail_TestNetworkPlugins/group/kindnet/Start))|12.06 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestNetworkPlugins/group/kindnet/Start))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestNetworkPlugins/group/cilium/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/KVM_Linux_containerd.html#fail_TestNetworkPlugins/group/cilium/Start))|13.48 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestNetworkPlugins/group/cilium/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestStartStop/group/no-preload/serial/Pause ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Windows.html#fail_TestStartStop/group/no-preload/serial/Pause))|14.13 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestStartStop/group/no-preload/serial/Pause))|
|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)|TestNetworkPlugins/group/flannel/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/KVM_Linux_containerd.html#fail_TestNetworkPlugins/group/flannel/Start))|14.89 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd&test=TestNetworkPlugins/group/flannel/Start))|
|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)|TestNetworkPlugins/group/kubenet/Start ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Hyper-V_Windows.html#fail_TestNetworkPlugins/group/kubenet/Start))|19.15 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows&test=TestNetworkPlugins/group/kubenet/Start))|
|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)|TestNetworkPlugins/group/enable-default-cni/DNS ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Windows.html#fail_TestNetworkPlugins/group/enable-default-cni/DNS))|22.58 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows&test=TestNetworkPlugins/group/enable-default-cni/DNS))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestAddons/Setup ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestAddons/Setup))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestAddons/Setup))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestIngressAddonLegacy/serial/ValidateIngressAddonActivation ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestIngressAddonLegacy/serial/ValidateIngressAddonActivation))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestIngressAddonLegacy/serial/ValidateIngressAddonActivation))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestIngressAddonLegacy/StartLegacyK8sCluster ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestIngressAddonLegacy/StartLegacyK8sCluster))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestIngressAddonLegacy/StartLegacyK8sCluster))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestJSONOutput/start/Audit ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestJSONOutput/start/Audit))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestJSONOutput/start/Audit))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestJSONOutput/start/Command ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestJSONOutput/start/Command))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestJSONOutput/start/Command))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/AddNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/AddNode))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/AddNode))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/DeleteNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/DeleteNode))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/DeleteNode))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/FreshStart2Nodes ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/FreshStart2Nodes))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/FreshStart2Nodes))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/ProfileList ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/ProfileList))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/ProfileList))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/RestartKeepsNodes ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/RestartKeepsNodes))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/RestartKeepsNodes))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/StartAfterStop ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/StartAfterStop))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/StartAfterStop))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/StopNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/StopNode))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/StopNode))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestPreload ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestPreload))|25.00 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestPreload))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestMultiNode/serial/RestartMultiNode ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestMultiNode/serial/RestartMultiNode))|25.86 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestMultiNode/serial/RestartMultiNode))|
|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)|TestOffline ([gopogh](https://storage.googleapis.com/minikube-builds/logs/13367/22593/Docker_Linux_containerd.html#fail_TestOffline))|27.59 ([chart](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd&test=TestOffline))|
|More tests...|Continued...|

Too many tests failed - See test logs for more details.

To see the flake rates of all tests by environment, click [here](https://minikube.sigs.k8s.io/docs/contrib/test_flakes/).
k8s-ci-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes/minikube/pull/13367#" title="Author self-approved">ckannon</a>*, *<a href="https://github.com/kubernetes/minikube/pull/13367#pullrequestreview-876901166" title="Approved">medyagh</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes%2Fminikube).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/kubernetes/minikube/blob/master/OWNERS)~~ [medyagh]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->

Patch:
diff --git a/Makefile b/Makefile
index 39c28832e..32a583db2 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co
 KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2)
 
 # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions
-ISO_VERSION ?= v1.25.0-1644344644-13531
+ISO_VERSION ?= v1.25.0
 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
 DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
 DEB_REVISION ?= 0
@@ -76,7 +76,7 @@ MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download
 KERNEL_VERSION ?= 4.19.202
 # latest from https://github.com/golangci/golangci-lint/releases 
 # update this only by running `make update-golint-version`
-GOLINT_VERSION ?= v1.44.0
+GOLINT_VERSION ?= v1.43.0
 # Limit number of default jobs, to avoid the CI builds running out of memory
 GOLINT_JOBS ?= 4
 # see https://github.com/golangci/golangci-lint#memory-usage-of-golangci-lint
diff --git a/cmd/minikube/cmd/docker-env.go b/cmd/minikube/cmd/docker-env.go
index 2a4efb31c..256510485 100644
--- a/cmd/minikube/cmd/docker-env.go
+++ b/cmd/minikube/cmd/docker-env.go
@@ -280,7 +280,7 @@ var dockerEnvCmd = &cobra.Command{
 			exit.Message(reason.EnvMultiConflict, `The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/`)
 		}
 
-		if co.Config.KubernetesConfig.ContainerRuntime != constants.Docker {
+		if co.Config.KubernetesConfig.ContainerRuntime != "docker" {
 			exit.Message(reason.Usage, `The docker-env command is only compatible with the "docker" runtime, but this cluster was configured to use the "{{.runtime}}" runtime.`,
 				out.V{"runtime": co.Config.KubernetesConfig.ContainerRuntime})
 		}
diff --git a/cmd/minikube/cmd/image.go b/cmd/minikube/cmd/image.go
index 99094a2c1..82e765828 100644
--- a/cmd/minikube/cmd/image.go
+++ b/cmd/minikube/cmd/image.go
@@ -76,8 +76,8 @@ func saveFile(r io.Reader) (string, error) {
 // loadImageCmd represents the image load command
 var loadImageCmd = &cobra.Command{
 	Use:     "load IMAGE | ARCHIVE | -",
-	Short:   "Load an image into minikube",
-	Long:    "Load an image into minikube",
+	Short:   "Load a image into minikube",
+	Long:    "Load a image into minikube",
 	Example: "minikube image load image\nminikube image load image.tar",
 	Run: func(cmd *cobra.Command, args []string) {
 		if len(args) == 0 {
diff --git a/cmd/minikube/cmd/podman-env.go b/cmd/minikube/cmd/podman-env.go
index bf0e9229f..eacf79dd1 100644
--- a/cmd/minikube/cmd/podman-env.go
+++ b/cmd/minikube/cmd/podman-env.go
@@ -170,11 +170,6 @@ var podmanEnvCmd = &cobra.Command{
 			exit.Message(reason.Usage, `The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/`)
 		}
 
-		if co.Config.KubernetesConfig.ContainerRuntime != constants.CRIO {
-			exit.Message(reason.Usage, `The podman-env command is only compatible with the "crio" runtime, but this cluster was configured to use the "{{.runtime}}" runtime.`,
-				out.V{"runtime": co.Config.KubernetesConfig.ContainerRuntime})
-		}
-
 		r := co.CP.Runner
 		if ok := isPodmanAvailable(r); !ok {
 			exit.Message(reason.EnvPodmanUnavailable, `The podman service within '{{.cluster}}' is not active`, out.V{"cluster": cname})
diff --git a/cmd/minikube/cmd/service.go b/cmd/minikube/cmd/service.go
index cc6e059c5..cb0f5599b 100644
--- a/cmd/minikube/cmd/service.go
+++ b/cmd/minikube/cmd/service.go
@@ -30,7 +30,6 @@ import (
 	"time"
 
 	"github.com/spf13/cobra"
-
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/pkg/drivers/kic/oci"
 	"k8s.io/minikube/pkg/kapi"
@@ -50,6 +49,7 @@ const defaultServiceFormatTemplate = "http://{{.IP}}:{{.Port}}"
 
 var (
 	namespace          string
+	all                bool
 	https              bool
 	serviceURLMode     bool
 	serviceURLFormat   string
@@ -62,7 +62,7 @@ var (
 var serviceCmd = &cobra.Command{
 	Use:   "service [flags] SERVICE",
 	Short: "Returns a URL to connect to a service",
-	Long:  `Returns the Kubernetes URL for a service in your local cluster. In the case of multiple URLs they will be printed one at a time.`,
+	Long:  `Returns the Kubernetes URL(s) for service(s) in your local cluster. In the case of multiple URLs they will be printed one at a time.`,
 	PersistentPreRun: func(cmd *cobra.Command, args []string) {
 		t, err := template.New("serviceURL").Parse(serviceURLFormat)
 		if err != nil {
@@ -73,37 +73,94 @@ var serviceCmd = &cobra.Command{
 		RootCmd.PersistentPreRun(cmd, args)
 	},
 	Run: func(cmd *cobra.Command, args []string) {
-		if len(args) == 0 || len(args) > 1 {
-			exit.Message(reason.Usage, "You must specify a service name")
+		if len(args) == 0 && !all || (len(args) > 0 && all) {
+			exit.Message(reason.Usage, "You must specify service name(s) or --all")
 		}
 
-		svc := args[0]
+		svcArgs := make(map[string]bool)
+		for _, v := range args {
+			svcArgs[v] = true
+		}
 
 		cname := ClusterFlagValue()
 		co := mustload.Healthy(cname)
-
-		urls, err := service.WaitForService(co.API, co.Config.Name, namespace, svc, serviceURLTemplate, serviceURLMode, https, wait, interval)
+		var services service.URLs
+		services, err := service.GetServiceURLs(co.API, co.Config.Name, namespace, serviceURLTemplate)
 		if err != nil {
-			var s *service.SVCNotFoundError
-			if errors.As(err, &s) {
-				exit.Message(reason.SvcNotFound, `Service '{{.service}}' was not found in '{{.namespace}}' namespace.
+			out.FatalT("Failed to get service URL: {{.error}}", out.V{"error": err})
+			out.ErrT(style.Notice, "Check that minikube is running and that you have specified the correct namespace (-n flag) if required.")
+			os.Exit(reason.ExSvcUnavailable)
+		}
+
+		if len(args) >= 1 {
+			var newServices service.URLs
+			for _, svc := range services {
+				if _, ok := svcArgs[svc.Name]; ok {
+					newServices = append(newServices, svc)
+				}
+			}
+			services = newServices
+		}
+
+		var data [][]string
+		var openUrls []string
+		for _, svc := range services {
+			openUrls, err := service.WaitForService(co.API, co.Config.Name, namespace, svc.Name, serviceURLTemplate, true, https, wait, interval)
+
+			if err != nil {
+				var s *service.SVCNotFoundError
+				if errors.As(err, &s) {
+					exit.Message(reason.SvcNotFound, `Service '{{.service}}' was not found in '{{.namespace}}' namespace.
 You may select another namespace by using 'minikube service {{.service}} -n <namespace>'. Or list out all the services using 'minikube service list'`, out.V{"service": svc, "namespace": namespace})
+				}
+				exit.Error(reason.SvcTimeout, "Error opening service", err)
+			}
+
+			if len(openUrls) == 0 {
+				data = append(data, []string{svc.Namespace, svc.Name, "No node port"})
+			} else {
+				servicePortNames := strings.Join(svc.PortNames, "\n")
+				serviceURLs := strings.Join(openUrls, "\n")
+
+				// if we are running Docker on OSX we empty the internal service URLs
+				if runtime.GOOS == "darwin" && co.Config.Driver == oci.Docker {
+					serviceURLs = ""
+				}
+
+				data = append(data, []string{svc.Namespace, svc.Name, servicePortNames, serviceURLs})
+			}
+		}
+
+		if (!serviceURLMode && serviceURLFormat != defaultServiceFormatTemplate && !all) || all {
+			service.PrintServiceList(os.Stdout, data)
+		} else if serviceURLMode && !all {
+			for _, u := range data {
+				out.String(fmt.Sprintf("%s\n", u[3]))
 			}
-			exit.Error(reason.SvcTimeout, "Error opening service", err)
 		}
 
 		if driver.NeedsPortForward(co.Config.Driver) {
-			startKicServiceTunnel(svc, cname, co.Config.Driver)
+			startKicServiceTunnel(args, services, cname, co.Config.Driver)
 			return
 		}
 
-		openURLs(svc, urls)
+		if !serviceURLMode && !all && len(args) == 1 {
+			openURLs(args[0], openUrls)
+		}
 	},
 }
 
+func shouldOpen(args []string) bool {
+	if !serviceURLMode && !all && len(args) == 1 {
+		return true
+	}
+	return false
+}
+
 func init() {
 	serviceCmd.Flags().StringVarP(&namespace, "namespace", "n", "default", "The service namespace")
 	serviceCmd.Flags().BoolVar(&serviceURLMode, "url", false, "Display the Kubernetes service URL in the CLI instead of opening it in the default browser")
+	serviceCmd.Flags().BoolVar(&all, "all", false, "Forwards all services in a namespace (defaults to \"false\")")
 	serviceCmd.Flags().BoolVar(&https, "https", false, "Open the service URL with https instead of http (defaults to \"false\")")
 	serviceCmd.Flags().IntVar(&wait, "wait", service.DefaultWait, "Amount of time to wait for a service in seconds")
 	serviceCmd.Flags().IntVar(&interval, "interval", service.DefaultInterval, "The initial time interval for each check that wait performs in seconds")
@@ -111,7 +168,7 @@ func init() {
 	serviceCmd.PersistentFlags().StringVar(&serviceURLFormat, "format", defaultServiceFormatTemplate, "Format to output service URL in. This format will be applied to each url individually and they will be printed one at a time.")
 }
 
-func startKicServiceTunnel(svc, configName, driverName string) {
+func startKicServiceTunnel(args []string, services service.URLs, configName, driverName string) {
 	ctrlC := make(chan os.Signal, 1)
 	signal.Notify(ctrlC, os.Interrupt)
 
@@ -120,34 +177,37 @@ func startKicServiceTunnel(svc, configName, driverName string) {
 		exit.Error(reason.InternalKubernetesClient, "error creating clientset", err)
 	}
 
-	port, err := oci.ForwardedPort(driverName, configName, 22)
-	if err != nil {
-		exit.Error(reason.DrvPortForward, "error getting ssh port", err)
-	}
-	sshPort := strconv.Itoa(port)
-	sshKey := filepath.Join(localpath.MiniPath(), "machines", configName, "id_rsa")
+	var data [][]string
+	for _, svc := range services {
+		port, err := oci.ForwardedPort(driverName, configName, 22)
+		if err != nil {
+			exit.Error(reason.DrvPortForward, "error getting ssh port", err)
+		}
+		sshPort := strconv.Itoa(port)
+		sshKey := filepath.Join(localpath.MiniPath(), "machines", configName, "id_rsa")
 
-	serviceTunnel := kic.NewServiceTunnel(sshPort, sshKey, clientset.CoreV1())
-	urls, err := serviceTunnel.Start(svc, namespace)
-	if err != nil {
-		exit.Error(reason.SvcTunnelStart, "error starting tunnel", err)
+		serviceTunnel := kic.NewServiceTunnel(sshPort, sshKey, clientset.CoreV1())
+		urls, err := serviceTunnel.Start(svc.Name, namespace)
+		if err != nil {
+			exit.Error(reason.SvcTunnelStart, "error starting tunnel", err)
+		}
+		defer serviceTunnel.Stop()
+		data = append(data, []string{namespace, svc.Name, "", strings.Join(urls, "\n")})
 	}
 
-	// wait for tunnel to come up
 	time.Sleep(1 * time.Second)
 
-	data := [][]string{{namespace, svc, "", strings.Join(urls, "\n")}}
-	service.PrintServiceList(os.Stdout, data)
+	if !serviceURLMode && serviceURLFormat != defaultServiceFormatTemplate && !all {
+		service.PrintServiceList(os.Stdout, data)
+	}
+
+	if shouldOpen(args) {
+		openURLs(services[0].Name, services[0].URLs)
+	}
 
-	openURLs(svc, urls)
 	out.WarningT("Because you are using a Docker driver on {{.operating_system}}, the terminal needs to be open to run it.", out.V{"operating_system": runtime.GOOS})
 
 	<-ctrlC
-
-	err = serviceTunnel.Stop()
-	if err != nil {
-		exit.Error(reason.SvcTunnelStop, "error stopping tunnel", err)
-	}
 }
 
 func openURLs(svc string, urls []string) {
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index 970e28faf..990341c76 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -188,7 +188,6 @@ func runStart(cmd *cobra.Command, args []string) {
 
 	validateSpecifiedDriver(existing)
 	validateKubernetesVersion(existing)
-	validateContainerRuntime(existing)
 
 	ds, alts, specified := selectDriver(existing)
 	if cmd.Flag(kicBaseImage).Changed {
@@ -271,7 +270,7 @@ func runStart(cmd *cobra.Command, args []string) {
 		exit.Error(reason.GuestStart, "failed to start node", err)
 	}
 
-	if err := showKubectlInfo(kubeconfig, starter.Node.KubernetesVersion, starter.Node.ContainerRuntime, starter.Cfg.Name); err != nil {
+	if err := showKubectlInfo(kubeconfig, starter.Node.KubernetesVersion, starter.Cfg.Name); err != nil {
 		klog.Errorf("kubectl info: %v", err)
 	}
 }
@@ -303,8 +302,7 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *
 	}
 
 	k8sVersion := getKubernetesVersion(existing)
-	rtime := getContainerRuntime(existing)
-	cc, n, err := generateClusterConfig(cmd, existing, k8sVersion, rtime, driverName)
+	cc, n, err := generateClusterConfig(cmd, existing, k8sVersion, driverName)
 	if err != nil {
 		return node.Starter{}, errors.Wrap(err, "Failed to generate config")
 	}
@@ -383,7 +381,6 @@ func startWithDriver(cmd *cobra.Command, starter node.Starter, existing *config.
 						Worker:            true,
 						ControlPlane:      false,
 						KubernetesVersion: starter.Cfg.KubernetesConfig.KubernetesVersion,
-						ContainerRuntime:  starter.Cfg.KubernetesConfig.ContainerRuntime,
 					}
 					out.Ln("") // extra newline for clarity on the command line
 					err := node.Add(starter.Cfg, n, viper.GetBool(deleteOnFailure))
@@ -442,15 +439,15 @@ func displayEnviron(env []string) {
 	}
 }
 
-func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion, rtime, machineName string) error {
+func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion, machineName string) error {
 	if k8sVersion == constants.NoKubernetesVersion {
 		register.Reg.SetStep(register.Done)
 		out.Step(style.Ready, "Done! minikube is ready without Kubernetes!")
 
 		// Runtime message.
 		boxConfig := box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}
-		switch rtime {
-		case constants.Docker:
+		switch viper.GetString(containerRuntime) {
+		case constants.DefaultContainerRuntime:
 			out.BoxedWithConfig(boxConfig, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node.
 - "minikube docker-env" to point your docker-cli to the docker inside minikube.
 - "minikube image" to build images without docker.`)
@@ -1186,10 +1183,9 @@ func validateFlags(cmd *cobra.Command, drvName string) {
 			exit.Message(reason.DrvUnsupportedProfile, "The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/", out.V{"name": drvName})
 		}
 
-		// default container runtime varies, starting with Kubernetes 1.24 - assume that only the default container runtime has been tested
-		rtime := viper.GetString(containerRuntime)
-		if rtime != constants.DefaultContainerRuntime && rtime != defaultRuntime(getKubernetesVersion(nil)) {
-			out.WarningT("Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!", out.V{"runtime": rtime})
+		runtime := viper.GetString(containerRuntime)
+		if runtime != "docker" {
+			out.WarningT("Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!", out.V{"runtime": runtime})
 		}
 
 		// conntrack is required starting with Kubernetes 1.18, include the release candidates for completion
@@ -1289,10 +1285,6 @@ func validateRuntime(rtime string) error {
 	// `crio` is accepted as an alternative spelling to `cri-o`
 	validOptions = append(validOptions, constants.CRIO)
 
-	if rtime == constants.DefaultContainerRuntime {
-		return nil
-	}
-
 	var validRuntime bool
 	for _, option := range validOptions {
 		if rtime == option {
@@ -1307,7 +1299,7 @@ func validateRuntime(rtime string) error {
 	}
 
 	if (rtime == "crio" || rtime == "cri-o") && (strings.HasPrefix(runtime.GOARCH, "ppc64") || detect.RuntimeArch() == "arm" || strings.HasPrefix(detect.RuntimeArch(), "arm/")) {
-		return errors.Errorf("The %s runtime is not compatible with the %s architecture. See https://github.com/cri-o/cri-o/issues/2467 for more details", rtime, runtime.GOARCH)
+		return errors.Errorf("The %s runtime is not compatible with the %s architecture. See https://github.com/cri-o/cri-o/issues/2467 for more details.", rtime, runtime.GOARCH)
 	}
 
 	if !validRuntime {
@@ -1316,31 +1308,9 @@ func validateRuntime(rtime string) error {
 	return nil
 }
 
-func getContainerRuntime(old *config.ClusterConfig) string {
-	paramRuntime := viper.GetString(containerRuntime)
-
-	// try to load the old version first if the user didn't specify anything
-	if paramRuntime == constants.DefaultContainerRuntime && old != nil {
-		paramRuntime = old.KubernetesConfig.ContainerRuntime
-	}
-
-	if paramRuntime == constants.DefaultContainerRuntime {
-		k8sVersion := getKubernetesVersion(old)
-		paramRuntime = defaultRuntime(k8sVersion)
-	}
-
-	return paramRuntime
-}
-
-// defaultRuntime returns the default container runtime
-func defaultRuntime(k8sVersion string) string {
-	// minikube default
-	return constants.Docker
-}
-
 // if container runtime is not docker, check that cni is not disabled
 func validateCNI(cmd *cobra.Command, runtime string) {
-	if runtime == constants.Docker {
+	if runtime == "docker" {
 		return
 	}
 	if cmd.Flags().Changed(cniFlag) && strings.ToLower(viper.GetString(cniFlag)) == "false" {
@@ -1488,7 +1458,6 @@ func createNode(cc config.ClusterConfig, kubeNodeName string, existing *config.C
 	if existing != nil {
 		cp, err := config.PrimaryControlPlane(existing)
 		cp.KubernetesVersion = getKubernetesVersion(&cc)
-		cp.ContainerRuntime = getContainerRuntime(&cc)
 		if err != nil {
 			return cc, config.Node{}, err
 		}
@@ -1498,7 +1467,6 @@ func createNode(cc config.ClusterConfig, kubeNodeName string, existing *config.C
 		nodes := []config.Node{}
 		for _, n := range existing.Nodes {
 			n.KubernetesVersion = getKubernetesVersion(&cc)
-			n.ContainerRuntime = getContainerRuntime(&cc)
 			nodes = append(nodes, n)
 		}
 		cc.Nodes = nodes
@@ -1509,7 +1477,6 @@ func createNode(cc config.ClusterConfig, kubeNodeName string, existing *config.C
 	cp := config.Node{
 		Port:              cc.KubernetesConfig.NodePort,
 		KubernetesVersion: getKubernetesVersion(&cc),
-		ContainerRuntime:  getContainerRuntime(&cc),
 		Name:              kubeNodeName,
 		ControlPlane:      true,
 		Worker:            true,
@@ -1559,23 +1526,12 @@ func validateKubernetesVersion(old *config.ClusterConfig) {
 	nvs, _ := semver.Make(strings.TrimPrefix(getKubernetesVersion(old), version.VersionPrefix))
 	oldestVersion := semver.MustParse(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix))
 	defaultVersion := semver.MustParse(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix))
-	newestVersion := semver.MustParse(strings.TrimPrefix(constants.NewestKubernetesVersion, version.VersionPrefix))
 	zeroVersion := semver.MustParse(strings.TrimPrefix(constants.NoKubernetesVersion, version.VersionPrefix))
 
 	if nvs.Equals(zeroVersion) {
 		klog.Infof("No Kuberentes version set for minikube, setting Kubernetes version to %s", constants.NoKubernetesVersion)
 		return
 	}
-	if nvs.Major > newestVersion.Major {
-		out.WarningT("Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}", out.V{"specifiedMajor": nvs.Major, "newestMajor": newestVersion.Major})
-		if !viper.GetBool(force) {
-			out.WarningT("You can force an unsupported Kubernetes version via the --force flag")
-		}
-		exitIfNotForced(reason.KubernetesTooNew, "Kubernetes {{.version}} is not supported by this release of minikube", out.V{"version": nvs})
-	}
-	if nvs.GT(newestVersion) {
-		out.WarningT("Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}", out.V{"specified": nvs, "newest": constants.NewestKubernetesVersion})
-	}
 	if nvs.LT(oldestVersion) {
 		out.WarningT("Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}", out.V{"specified": nvs, "oldest": constants.OldestKubernetesVersion})
 		if !viper.GetBool(force) {
@@ -1617,17 +1573,6 @@ func validateKubernetesVersion(old *config.ClusterConfig) {
 	}
 }
 
-// validateContainerRuntime ensures that the container runtime is reasonable
-func validateContainerRuntime(old *config.ClusterConfig) {
-	if old == nil || old.KubernetesConfig.ContainerRuntime == "" {
-		return
-	}
-
-	if err := validateRuntime(old.KubernetesConfig.ContainerRuntime); err != nil {
-		klog.Errorf("Error parsing old runtime %q: %v", old.KubernetesConfig.ContainerRuntime, err)
-	}
-}
-
 func isBaseImageApplicable(drv string) bool {
 	return registry.IsKIC(drv)
 }
diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go
index 3d8a69ce6..85fbd9ff8 100644
--- a/cmd/minikube/cmd/start_flags.go
+++ b/cmd/minikube/cmd/start_flags.go
@@ -160,7 +160,7 @@ func initMinikubeFlags() {
 	startCmd.Flags().String(kicBaseImage, kic.BaseImage, "The base image to use for docker/podman drivers. Intended for local development.")
 	startCmd.Flags().Bool(keepContext, false, "This will keep the existing kubectl context and will create a minikube context.")
 	startCmd.Flags().Bool(embedCerts, false, "if true, will embed the certs in kubeconfig.")
-	startCmd.Flags().String(containerRuntime, constants.DefaultContainerRuntime, fmt.Sprintf("The container runtime to be used. Valid options: %s (default: auto)", strings.Join(cruntime.ValidRuntimes(), ", ")))
+	startCmd.Flags().String(containerRuntime, constants.DefaultContainerRuntime, fmt.Sprintf("The container runtime to be used (%s).", strings.Join(cruntime.ValidRuntimes(), ", ")))
 	startCmd.Flags().Bool(createMount, false, "This will start the mount daemon and automatically mount files into minikube.")
 	startCmd.Flags().String(mountString, constants.DefaultMountDir+":/minikube-host", "The argument to pass the minikube mount command on start.")
 	startCmd.Flags().String(mount9PVersion, defaultMount9PVersion, mount9PVersionDescription)
@@ -274,7 +274,7 @@ func ClusterFlagValue() string {
 }
 
 // generateClusterConfig generate a config.ClusterConfig based on flags or existing cluster config
-func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k8sVersion string, rtime string, drvName string) (config.ClusterConfig, config.Node, error) {
+func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k8sVersion string, drvName string) (config.ClusterConfig, config.Node, error) {
 	var cc config.ClusterConfig
 	if existing != nil {
 		cc = updateExistingConfigFromFlags(cmd, existing)
@@ -286,7 +286,7 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
 		}
 	} else {
 		klog.Info("no existing cluster config was found, will generate one from the flags ")
-		cc = generateNewConfigFromFlags(cmd, k8sVersion, rtime, drvName)
+		cc = generateNewConfigFromFlags(cmd, k8sVersion, drvName)
 
 		cnm, err := cni.New(&cc)
 		if err != nil {
@@ -444,7 +444,7 @@ func getCNIConfig(cmd *cobra.Command) string {
 }
 
 // generateNewConfigFromFlags generate a config.ClusterConfig based on flags
-func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime string, drvName string) config.ClusterConfig {
+func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, drvName string) config.ClusterConfig {
 	var cc config.ClusterConfig
 
 	// networkPlugin cni deprecation warning
@@ -526,7 +526,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str
 			APIServerIPs:           apiServerIPs,
 			DNSDomain:              viper.GetString(dnsDomain),
 			FeatureGates:           viper.GetString(featureGates),
-			ContainerRuntime:       rtime,
+			ContainerRuntime:       viper.GetString(containerRuntime),
 			CRISocket:              viper.GetString(criSocket),
 			NetworkPlugin:          chosenNetworkPlugin,
 			ServiceCIDR:            viper.GetString(serviceCIDR),
@@ -549,7 +549,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str
 			exit.Message(reason.Usage, "Ensure your {{.driver_name}} is running and is healthy.", out.V{"driver_name": driver.FullName(drvName)})
 		}
 		if si.Rootless {
-			if cc.KubernetesConfig.ContainerRuntime == constants.Docker {
+			if cc.KubernetesConfig.ContainerRuntime == "docker" {
 				exit.Message(reason.Usage, "--container-runtime must be set to \"containerd\" or \"cri-o\" for rootless")
 			}
 			// KubeletInUserNamespace feature gate is essential for rootless driver.
@@ -729,9 +729,6 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
 	if cmd.Flags().Changed(kubernetesVersion) {
 		cc.KubernetesConfig.KubernetesVersion = getKubernetesVersion(existing)
 	}
-	if cmd.Flags().Changed(containerRuntime) {
-		cc.KubernetesConfig.ContainerRuntime = getContainerRuntime(existing)
-	}
 
 	if cmd.Flags().Changed("extra-config") {
 		cc.KubernetesConfig.ExtraOptions = getExtraOptions()
diff --git a/cmd/minikube/cmd/update-check.go b/cmd/minikube/cmd/update-check.go
index e0e271593..496ebb4ad 100644
--- a/cmd/minikube/cmd/update-check.go
+++ b/cmd/minikube/cmd/update-check.go
@@ -36,11 +36,11 @@ var updateCheckCmd = &cobra.Command{
 			exit.Error(reason.InetVersionUnavailable, "Unable to fetch latest version info", err)
 		}
 
-		if len(r.Releases) < 1 {
+		if len(r) < 1 {
 			exit.Message(reason.InetVersionEmpty, "Update server returned an empty list")
 		}
 
 		out.Ln("CurrentVersion: %s", version.GetVersion())
-		out.Ln("LatestVersion: %s", r.Releases[0].Name)
+		out.Ln("LatestVersion: %s", r[0].Name)
 	},
 }
diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl
index 170b4bc69..46ceac8bf 100644
--- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl
+++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl
@@ -12,655 +12,664 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# ref: https://github.com/kubernetes/ingress-nginx/blob/main/deploy/static/provider/kind/deploy.yaml
-
 apiVersion: v1
 kind: Namespace
 metadata:
+  name: ingress-nginx
   labels:
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+
 ---
+# Source: ingress-nginx/templates/controller-serviceaccount.yaml
 apiVersion: v1
-automountServiceAccountToken: true
 kind: ServiceAccount
 metadata:
   labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
   name: ingress-nginx
   namespace: ingress-nginx
+automountServiceAccountToken: true
 ---
+# Source: ingress-nginx/templates/controller-configmap.yaml
 apiVersion: v1
-kind: ServiceAccount
+kind: ConfigMap
 metadata:
   labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
+  name: ingress-nginx-controller
   namespace: ingress-nginx
+data:
+  # see https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md for all possible options and their description
+  hsts: "false"
+# see https://github.com/kubernetes/minikube/pull/12702#discussion_r727519180: 'allow-snippet-annotations' should be used only if strictly required by another part of the deployment
+#  allow-snippet-annotations: 'true'
 ---
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
+apiVersion: v1
+kind: ConfigMap
 metadata:
+  name: tcp-services
+  namespace: ingress-nginx
   labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx
-  namespace: ingress-nginx
-rules:
-- apiGroups:
-  - ""
-  resources:
-  - namespaces
-  verbs:
-  - get
-- apiGroups:
-  - ""
-  resources:
-  - configmaps
-  - pods
-  - secrets
-  - endpoints
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - services
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  {{- if eq .IngressAPIVersion "v1beta1"}}
-  - extensions
-  {{- end}}
-  - networking.k8s.io
-  resources:
-  - ingresses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  {{- if eq .IngressAPIVersion "v1beta1"}}
-  - extensions
-  {{- end}}
-  - networking.k8s.io
-  resources:
-  - ingresses/status
-  verbs:
-  - update
-- apiGroups:
-  - networking.k8s.io
-  resources:
-  - ingressclasses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resourceNames:
-  - ingress-controller-leader
-  resources:
-  - configmaps
-  verbs:
-  - get
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - configmaps
-  verbs:
-  - create
-- apiGroups:
-  - ""
-  resources:
-  - events
-  verbs:
-  - create
-  - patch
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
 ---
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
+apiVersion: v1
+kind: ConfigMap
 metadata:
+  name: udp-services
+  namespace: ingress-nginx
   labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
-  namespace: ingress-nginx
-rules:
-- apiGroups:
-  - ""
-  resources:
-  - secrets
-  verbs:
-  - get
-  - create
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
 ---
+# Source: ingress-nginx/templates/clusterrole.yaml
 apiVersion: rbac.authorization.k8s.io/v1
 kind: ClusterRole
 metadata:
   labels:
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
   name: ingress-nginx
 rules:
-- apiGroups:
-  - ""
-  resources:
-  - configmaps
-  - endpoints
-  - nodes
-  - pods
-  - secrets
-  - namespaces
-  verbs:
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - nodes
-  verbs:
-  - get
-- apiGroups:
-  - ""
-  resources:
-  - services
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  {{- if eq .IngressAPIVersion "v1beta1"}}
-  - extensions
-  {{- end}}
-  - networking.k8s.io
-  resources:
-  - ingresses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - events
-  verbs:
-  - create
-  - patch
-- apiGroups:
-  {{- if eq .IngressAPIVersion "v1beta1"}}
-  - extensions
-  {{- end}}
-  - networking.k8s.io
-  resources:
-  - ingresses/status
-  verbs:
-  - update
-- apiGroups:
-  - networking.k8s.io
-  resources:
-  - ingressclasses
-  verbs:
-  - get
-  - list
-  - watch
+  - apiGroups:
+      - ''
+    resources:
+      - configmaps
+      - endpoints
+      - nodes
+      - pods
+      - secrets
+    verbs:
+      - list
+      - watch
+  - apiGroups:
+      - ''
+    resources:
+      - nodes
+    verbs:
+      - get
+  - apiGroups:
+      - ''
+    resources:
+      - services
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      {{- if eq .IngressAPIVersion "v1beta1"}}
+      - extensions
+      {{- end}}
+      - networking.k8s.io
+    resources:
+      - ingresses
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      - ''
+    resources:
+      - events
+    verbs:
+      - create
+      - patch
+  - apiGroups:
+      {{- if eq .IngressAPIVersion "v1beta1"}}
+      - extensions
+      {{- end}}
+      - networking.k8s.io
+    resources:
+      - ingresses/status
+    verbs:
+      - update
+  - apiGroups:
+      - networking.k8s.io
+    resources:
+      - ingressclasses
+    verbs:
+      - get
+      - list
+      - watch
 ---
+# Source: ingress-nginx/templates/clusterrolebinding.yaml
 apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
+kind: ClusterRoleBinding
 metadata:
   labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
-rules:
-- apiGroups:
-  - admissionregistration.k8s.io
-  resources:
-  - validatingwebhookconfigurations
-  verbs:
-  - get
-  - update
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
-  labels:
-    app.kubernetes.io/component: controller
     app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
   name: ingress-nginx
-  namespace: ingress-nginx
 roleRef:
   apiGroup: rbac.authorization.k8s.io
-  kind: Role
+  kind: ClusterRole
   name: ingress-nginx
 subjects:
-- kind: ServiceAccount
-  name: ingress-nginx
-  namespace: ingress-nginx
+  - kind: ServiceAccount
+    name: ingress-nginx
+    namespace: ingress-nginx
 ---
+# Source: ingress-nginx/templates/controller-role.yaml
 apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
+kind: Role
 metadata:
   labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
-  namespace: ingress-nginx
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: Role
-  name: ingress-nginx-admission
-subjects:
-- kind: ServiceAccount
-  name: ingress-nginx-admission
-  namespace: ingress-nginx
----
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  labels:
     app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: ingress-nginx
-subjects:
-- kind: ServiceAccount
+    app.kubernetes.io/component: controller
   name: ingress-nginx
   namespace: ingress-nginx
+rules:
+  - apiGroups:
+      - ''
+    resources:
+      - namespaces
+    verbs:
+      - get
+  - apiGroups:
+      - ''
+    resources:
+      - configmaps
+      - pods
+      - secrets
+      - endpoints
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      - ''
+    resources:
+      - services
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      {{- if eq .IngressAPIVersion "v1beta1"}}
+      - extensions
+      {{- end}}
+      - networking.k8s.io
+    resources:
+      - ingresses
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      {{- if eq .IngressAPIVersion "v1beta1"}}
+      - extensions
+      {{- end}}
+      - networking.k8s.io
+    resources:
+      - ingresses/status
+    verbs:
+      - update
+  - apiGroups:
+      - networking.k8s.io
+    resources:
+      - ingressclasses
+    verbs:
+      - get
+      - list
+      - watch
+  - apiGroups:
+      - ''
+    resources:
+      - configmaps
+    resourceNames:
+      - ingress-controller-leader
+    verbs:
+      - get
+      - update
+  - apiGroups:
+      - ''
+    resources:
+      - configmaps
+    verbs:
+      - create
+  - apiGroups:
+      - ''
+    resources:
+      - events
+    verbs:
+      - create
+      - patch
 ---
+# Source: ingress-nginx/templates/controller-rolebinding.yaml
 apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
+kind: RoleBinding
 metadata:
   labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
+  name: ingress-nginx
+  namespace: ingress-nginx
 roleRef:
   apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: ingress-nginx-admission
+  kind: Role
+  name: ingress-nginx
 subjects:
-- kind: ServiceAccount
-  name: ingress-nginx-admission
-  namespace: ingress-nginx
+  - kind: ServiceAccount
+    name: ingress-nginx
+    namespace: ingress-nginx
 ---
+# Source: ingress-nginx/templates/controller-service-webhook.yaml
 apiVersion: v1
-data:
-  # see https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md for all possible options and their description
-  hsts: "false"
-  # see https://github.com/kubernetes/minikube/pull/12702#discussion_r727519180: 'allow-snippet-annotations' should be used only if strictly required by another part of the deployment
-#  allow-snippet-annotations: "true"
-kind: ConfigMap
-metadata:
-  labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-controller
-  namespace: ingress-nginx
----
-apiVersion: v1
-kind: ConfigMap
+kind: Service
 metadata:
-  name: tcp-services
-  namespace: ingress-nginx
   labels:
     app.kubernetes.io/name: ingress-nginx
     app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/component: controller
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: udp-services
+  name: ingress-nginx-controller-admission
   namespace: ingress-nginx
-  labels:
+spec:
+  type: ClusterIP
+  ports:
+    - name: https-webhook
+      port: 443
+      targetPort: webhook
+      {{- if eq .IngressAPIVersion "v1"}}
+      appProtocol: https
+      {{- end}}
+  selector:
     app.kubernetes.io/name: ingress-nginx
     app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/component: controller
 ---
+# Source: ingress-nginx/templates/controller-service.yaml
 apiVersion: v1
 kind: Service
 metadata:
+  annotations:
   labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
   name: ingress-nginx-controller
   namespace: ingress-nginx
 spec:
+  type: NodePort
   {{- if and (eq .IngressAPIVersion "v1") (not .PreOneTwentyKubernetes)}}
-  ipFamilies:
-  - IPv4
   ipFamilyPolicy: SingleStack
+  ipFamilies:
+    - IPv4
   {{- end}}
   ports:
-  - name: http
-    port: 80
-    protocol: TCP
-    targetPort: http
-    {{- if eq .IngressAPIVersion "v1"}}
-    appProtocol: http
-    {{- end}}
-  - name: https
-    port: 443
-    protocol: TCP
-    targetPort: https
-    {{- if eq .IngressAPIVersion "v1"}}
-    appProtocol: https
-    {{- end}}
+    - name: http
+      port: 80
+      protocol: TCP
+      targetPort: http
+      {{- if eq .IngressAPIVersion "v1"}}
+      appProtocol: http
+      {{- end}}
+    - name: https
+      port: 443
+      protocol: TCP
+      targetPort: https
+      {{- if eq .IngressAPIVersion "v1"}}
+      appProtocol: https
+      {{- end}}
   selector:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
-  type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app.kubernetes.io/component: controller
     app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-controller-admission
-  namespace: ingress-nginx
-spec:
-  ports:
-  - name: https-webhook
-    port: 443
-    targetPort: webhook
-    {{- if eq .IngressAPIVersion "v1"}}
-    appProtocol: https
-    {{- end}}
-  selector:
     app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  type: ClusterIP
 ---
+# Source: ingress-nginx/templates/controller-deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
   name: ingress-nginx-controller
   namespace: ingress-nginx
 spec:
-  minReadySeconds: 0
-  revisionHistoryLimit: 10
   selector:
     matchLabels:
-      app.kubernetes.io/component: controller
-      app.kubernetes.io/instance: ingress-nginx
       app.kubernetes.io/name: ingress-nginx
-  strategy:
-    rollingUpdate:
-      maxUnavailable: 1
-    type: RollingUpdate
+      app.kubernetes.io/instance: ingress-nginx
+      app.kubernetes.io/component: controller
+  revisionHistoryLimit: 10
+  minReadySeconds: 0
   template:
     metadata:
       labels:
-        app.kubernetes.io/component: controller
-        app.kubernetes.io/instance: ingress-nginx
         app.kubernetes.io/name: ingress-nginx
+        app.kubernetes.io/instance: ingress-nginx
+        app.kubernetes.io/component: controller
         gcp-auth-skip-secret: "true"
     spec:
-      containers:
-      - args:
-        - /nginx-ingress-controller
-        - --election-id=ingress-controller-leader
-        {{- if eq .IngressAPIVersion "v1"}}
-        - --controller-class=k8s.io/ingress-nginx
-        - --watch-ingress-without-class=true
-        {{- end}}
-        {{- if eq .IngressAPIVersion "v1beta1"}}
-        - --ingress-class=nginx
-        {{- end}}
-        - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
-        - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
-        - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
-        - --validating-webhook=:8443
-        - --validating-webhook-certificate=/usr/local/certificates/cert
-        - --validating-webhook-key=/usr/local/certificates/key
-        {{- if .CustomIngressCert}}
-        - --default-ssl-certificate={{ .CustomIngressCert }}
-        {{- end}}
-        env:
-        - name: POD_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.name
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        - name: LD_PRELOAD
-          value: /usr/local/lib/libmimalloc.so
-        image: {{.CustomRegistries.IngressController | default .ImageRepository | default .Registries.IngressController}}{{.Images.IngressController}}
-        imagePullPolicy: IfNotPresent
-        lifecycle:
-          preStop:
-            exec:
-              command:
-              - /wait-shutdown
-        livenessProbe:
-          failureThreshold: 5
-          httpGet:
-            path: /healthz
-            port: 10254
-            scheme: HTTP
-          initialDelaySeconds: 10
-          periodSeconds: 10
-          successThreshold: 1
-          timeoutSeconds: 1
-        name: controller
-        ports:
-        - containerPort: 80
-          hostPort: 80
-          name: http
-          protocol: TCP
-        - containerPort: 443
-          hostPort: 443
-          name: https
-          protocol: TCP
-        - containerPort: 8443
-          name: webhook
-          protocol: TCP
-        readinessProbe:
-          failureThreshold: 3
-          httpGet:
-            path: /healthz
-            port: 10254
-            scheme: HTTP
-          initialDelaySeconds: 10
-          periodSeconds: 10
-          successThreshold: 1
-          timeoutSeconds: 1
-        resources:
-          requests:
-            cpu: 100m
-            memory: 90Mi
-        securityContext:
-          allowPrivilegeEscalation: true
-          capabilities:
-            add:
-            - NET_BIND_SERVICE
-            drop:
-            - ALL
-          runAsUser: 101
-        volumeMounts:
-        - mountPath: /usr/local/certificates/
-          name: webhook-cert
-          readOnly: true
       dnsPolicy: ClusterFirst
-      nodeSelector:
-        minikube.k8s.io/primary: "true"
-        kubernetes.io/os: linux
+      containers:
+        - name: controller
+          image: {{.CustomRegistries.IngressController | default .ImageRepository | default .Registries.IngressController}}{{.Images.IngressController}}
+          imagePullPolicy: IfNotPresent
+          lifecycle:
+            preStop:
+              exec:
+                command:
+                  - /wait-shutdown
+          args:
+            - /nginx-ingress-controller
+            - --election-id=ingress-controller-leader
+            {{- if eq .IngressAPIVersion "v1"}}
+            - --controller-class=k8s.io/ingress-nginx
+            - --watch-ingress-without-class=true
+            {{- end}}
+            {{- if eq .IngressAPIVersion "v1beta1"}}
+            - --ingress-class=nginx
+            {{- end}}
+            - --publish-status-address=localhost
+            - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
+            - --report-node-internal-ip-address
+            - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
+            - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
+            - --validating-webhook=:8443
+            - --validating-webhook-certificate=/usr/local/certificates/cert
+            - --validating-webhook-key=/usr/local/certificates/key
+            {{- if .CustomIngressCert}}
+            - --default-ssl-certificate={{ .CustomIngressCert }} 
+            {{- end}}
+          securityContext:
+            capabilities:
+              drop:
+                - ALL
+              add:
+                - NET_BIND_SERVICE
+            runAsUser: 101
+            allowPrivilegeEscalation: true
+          env:
+            - name: POD_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+            - name: LD_PRELOAD
+              value: /usr/local/lib/libmimalloc.so
+          livenessProbe:
+            failureThreshold: 5
+            httpGet:
+              path: /healthz
+              port: 10254
+              scheme: HTTP
+            initialDelaySeconds: 10
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 1
+          readinessProbe:
+            failureThreshold: 3
+            httpGet:
+              path: /healthz
+              port: 10254
+              scheme: HTTP
+            initialDelaySeconds: 10
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 1
+          ports:
+            - name: http
+              containerPort: 80
+              protocol: TCP
+              hostPort: 80
+            - name: https
+              containerPort: 443
+              protocol: TCP
+              hostPort: 443
+            - name: webhook
+              containerPort: 8443
+              protocol: TCP
+          volumeMounts:
+            - name: webhook-cert
+              mountPath: /usr/local/certificates/
+              readOnly: true
+          resources:
+            requests:
+              cpu: 100m
+              memory: 90Mi
       serviceAccountName: ingress-nginx
-      terminationGracePeriodSeconds: 0
-      tolerations:
-      - effect: NoSchedule
-        key: node-role.kubernetes.io/master
-        operator: Equal
       volumes:
-      - name: webhook-cert
-        secret:
-          secretName: ingress-nginx-admission
+        - name: webhook-cert
+          secret:
+            secretName: ingress-nginx-admission
 ---
-apiVersion: batch/v1
-kind: Job
+{{- if eq .IngressAPIVersion "v1"}}
+# Source: ingress-nginx/templates/controller-ingressclass.yaml
+# We don't support namespaced ingressClass yet
+# So a ClusterRole and a ClusterRoleBinding is required
+apiVersion: networking.k8s.io/v1
+kind: IngressClass
+metadata:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: controller
+  name: nginx
+  namespace: ingress-nginx
+  annotations:
+    ingressclass.kubernetes.io/is-default-class: "true"
+spec:
+  controller: k8s.io/ingress-nginx
+---
+{{- end}}
+# Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml
+# before changing this value, check the required kubernetes version
+# https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
 metadata:
   labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
     app.kubernetes.io/component: admission-webhook
+  name: ingress-nginx-admission
+webhooks:
+  - name: validate.nginx.ingress.kubernetes.io
+    matchPolicy: Equivalent
+    rules:
+      - apiGroups:
+          - networking.k8s.io
+        apiVersions:
+          - {{.IngressAPIVersion}}
+        operations:
+          - CREATE
+          - UPDATE
+        resources:
+          - ingresses
+    failurePolicy: Fail
+    sideEffects: None
+    admissionReviewVersions:
+      - v1
+      {{- if eq .IngressAPIVersion "v1beta1"}}
+      - v1beta1
+      {{- end}}
+    clientConfig:
+      service:
+        namespace: ingress-nginx
+        name: ingress-nginx-controller-admission
+        path: /networking/{{.IngressAPIVersion}}/ingresses
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: ingress-nginx-admission
+  namespace: ingress-nginx
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
     app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: ingress-nginx-admission
+  annotations:
+  labels:
     app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
+rules:
+  - apiGroups:
+      - admissionregistration.k8s.io
+    resources:
+      - validatingwebhookconfigurations
+    verbs:
+      - get
+      - update
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: ingress-nginx-admission
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: ingress-nginx-admission
+subjects:
+  - kind: ServiceAccount
+    name: ingress-nginx-admission
+    namespace: ingress-nginx
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: ingress-nginx-admission
+  namespace: ingress-nginx
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
+rules:
+  - apiGroups:
+      - ''
+    resources:
+      - secrets
+    verbs:
+      - get
+      - create
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+  name: ingress-nginx-admission
+  namespace: ingress-nginx
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: ingress-nginx-admission
+subjects:
+  - kind: ServiceAccount
+    name: ingress-nginx-admission
+    namespace: ingress-nginx
+---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
   name: ingress-nginx-admission-create
   namespace: ingress-nginx
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
 spec:
   template:
     metadata:
+      name: ingress-nginx-admission-create
       labels:
-        app.kubernetes.io/component: admission-webhook
-        app.kubernetes.io/instance: ingress-nginx
         app.kubernetes.io/name: ingress-nginx
-      name: ingress-nginx-admission-create
+        app.kubernetes.io/instance: ingress-nginx
+        app.kubernetes.io/component: admission-webhook
     spec:
       containers:
-      - args:
-        - create
-        - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
-        - --namespace=$(POD_NAMESPACE)
-        - --secret-name=ingress-nginx-admission
-        env:
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        image: {{.CustomRegistries.KubeWebhookCertgenCreate | default .ImageRepository | default .Registries.KubeWebhookCertgenCreate }}{{.Images.KubeWebhookCertgenCreate}}
-        imagePullPolicy: IfNotPresent
-        name: create
-        securityContext:
-          allowPrivilegeEscalation: false
-      nodeSelector:
-        minikube.k8s.io/primary: "true"
-        kubernetes.io/os: linux
+        - name: create
+          image: {{.CustomRegistries.KubeWebhookCertgenCreate | default .ImageRepository | default .Registries.KubeWebhookCertgenCreate }}{{.Images.KubeWebhookCertgenCreate}}
+          imagePullPolicy: IfNotPresent
+          args:
+            - create
+            - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
+            - --namespace=$(POD_NAMESPACE)
+            - --secret-name=ingress-nginx-admission
+          env:
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
       restartPolicy: OnFailure
+      serviceAccountName: ingress-nginx-admission
       securityContext:
         runAsNonRoot: true
         runAsUser: 2000
-      serviceAccountName: ingress-nginx-admission
 ---
+# Source: ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml
 apiVersion: batch/v1
 kind: Job
 metadata:
-  labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
   name: ingress-nginx-admission-patch
   namespace: ingress-nginx
+  annotations:
+  labels:
+    app.kubernetes.io/name: ingress-nginx
+    app.kubernetes.io/instance: ingress-nginx
+    app.kubernetes.io/component: admission-webhook
 spec:
   template:
     metadata:
+      name: ingress-nginx-admission-patch
       labels:
-        app.kubernetes.io/component: admission-webhook
-        app.kubernetes.io/instance: ingress-nginx
         app.kubernetes.io/name: ingress-nginx
-      name: ingress-nginx-admission-patch
+        app.kubernetes.io/instance: ingress-nginx
+        app.kubernetes.io/component: admission-webhook
     spec:
       containers:
-      - args:
-        - patch
-        - --webhook-name=ingress-nginx-admission
-        - --namespace=$(POD_NAMESPACE)
-        - --patch-mutating=false
-        - --secret-name=ingress-nginx-admission
-        - --patch-failure-policy=Fail
-        env:
-        - name: POD_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        image: {{.CustomRegistries.KubeWebhookCertgenPatch | default .ImageRepository | default .Registries.KubeWebhookCertgenPatch }}{{.Images.KubeWebhookCertgenPatch}}
-        imagePullPolicy: IfNotPresent
-        name: patch
-        securityContext:
-          allowPrivilegeEscalation: false
-      nodeSelector:
-        minikube.k8s.io/primary: "true"
-        kubernetes.io/os: linux
+        - name: patch
+          image: {{.CustomRegistries.KubeWebhookCertgenPatch | default .ImageRepository | default .Registries.KubeWebhookCertgenPatch }}{{.Images.KubeWebhookCertgenPatch}}
+          imagePullPolicy: IfNotPresent
+          args:
+            - patch
+            - --webhook-name=ingress-nginx-admission
+            - --namespace=$(POD_NAMESPACE)
+            - --patch-mutating=false
+            - --secret-name=ingress-nginx-admission
+            - --patch-failure-policy=Fail
+          env:
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
       restartPolicy: OnFailure
+      serviceAccountName: ingress-nginx-admission
       securityContext:
         runAsNonRoot: true
         runAsUser: 2000
-      serviceAccountName: ingress-nginx-admission
----
-{{- if eq .IngressAPIVersion "v1"}}
-apiVersion: networking.k8s.io/v1
-kind: IngressClass
-metadata:
-  annotations:
-    ingressclass.kubernetes.io/is-default-class: "true"
-  labels:
-    app.kubernetes.io/component: controller
-    app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  name: nginx
-spec:
-  controller: k8s.io/ingress-nginx
----
-{{- end}}
-apiVersion: admissionregistration.k8s.io/v1
-kind: ValidatingWebhookConfiguration
-metadata:
-  labels:
-    app.kubernetes.io/component: admission-webhook
-    app.kubernetes.io/instance: ingress-nginx
-    app.kubernetes.io/name: ingress-nginx
-  name: ingress-nginx-admission
-webhooks:
-- admissionReviewVersions:
-  - v1
-  {{- if eq .IngressAPIVersion "v1beta1"}}
-  - v1beta1
-  {{- end}}
-  clientConfig:
-    service:
-      name: ingress-nginx-controller-admission
-      namespace: ingress-nginx
-      path: /networking/{{.IngressAPIVersion}}/ingresses
-  failurePolicy: Fail
-  matchPolicy: Equivalent
-  name: validate.nginx.ingress.kubernetes.io
-  rules:
-  - apiGroups:
-    - networking.k8s.io
-    apiVersions:
-    - {{.IngressAPIVersion}}
-    operations:
-    - CREATE
-    - UPDATE
-    resources:
-    - ingresses
-  sideEffects: None
diff --git a/deploy/addons/istio-provisioner/istio-operator.yaml.tmpl b/deploy/addons/istio-provisioner/istio-operator.yaml.tmpl
index 5ba677d36..270c73752 100644
--- a/deploy/addons/istio-provisioner/istio-operator.yaml.tmpl
+++ b/deploy/addons/istio-provisioner/istio-operator.yaml.tmpl
@@ -30,12 +30,6 @@ spec:
   scope: Namespaced
   versions:
   - name: v1alpha1
-    subresources:
-      status: {}
-    schema:
-      openAPIV3Schema:
-        type: object
-        x-kubernetes-preserve-unknown-fields: true
     served: true
     storage: true
     subresources:
diff --git a/deploy/iso/minikube-iso/package/Config.in b/deploy/iso/minikube-iso/package/Config.in
index 549129c0e..954fbac17 100644
--- a/deploy/iso/minikube-iso/package/Config.in
+++ b/deploy/iso/minikube-iso/package/Config.in
@@ -6,7 +6,6 @@ menu "System tools"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crictl-bin/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/automount/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/docker-bin/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cri-dockerd/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cni/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cni-plugins/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/package/hyperv-daemons/Config.in"
diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/Config.in b/deploy/iso/minikube-iso/package/cri-dockerd/Config.in
deleted file mode 100644
index 460971d04..000000000
--- a/deploy/iso/minikube-iso/package/cri-dockerd/Config.in
+++ /dev/null
@@ -1,8 +0,0 @@
-config BR2_PACKAGE_CRI_DOCKERD
-	bool "cri-dockerd"
-	default y
-	depends on BR2_x86_64
-	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
-	depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	select BR2_PACKAGE_DOCKER_BIN
diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.hash b/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.hash
deleted file mode 100644
index 1693e1b9d..000000000
--- a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.hash
+++ /dev/null
@@ -1,3 +0,0 @@
-sha256 4acd7605a0cb95a6ad50314d1f2497b92ee0f07382062d0c18a5434c1a3b9513 542e27dee12db61d6e96d2a83a20359474a5efa2.tar.gz
-sha256 b2a082a8846ac74b8482ee6353d480cea0dec017bbec2b59b16e3f91efa2f5ca eb0c48ef49856f7d098ec005ddebcae197e08e49.tar.gz
-sha256 ceb99430633f75f354c0e9fea1f3cf0e5138ac5ee3c2691a1a70811fd2feeeef a4d1895a2659ea9974bd7528a706592ab8b74181.tar.gz
diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk b/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk
deleted file mode 100644
index cd961b6e2..000000000
--- a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-################################################################################
-#
-# cri-dockerd
-#
-################################################################################
-
-# As of 2022-02-03
-CRI_DOCKERD_VER = 0.2.0
-CRI_DOCKERD_REV = a4d1895
-CRI_DOCKERD_VERSION = a4d1895a2659ea9974bd7528a706592ab8b74181
-CRI_DOCKERD_SITE = https://github.com/Mirantis/cri-dockerd/archive
-CRI_DOCKERD_SOURCE = $(CRI_DOCKERD_VERSION).tar.gz
-
-CRI_DOCKERD_DEPENDENCIES = host-go
-
-CRI_DOCKERD_GOPATH = $(@D)/_output
-CRI_DOCKERD_ENV = \
-	$(GO_TARGET_ENV) \
-	CGO_ENABLED=0 \
-	GO111MODULE=on \
-	GOPATH="$(CRI_DOCKERD_GOPATH)" \
-	GOBIN="$(CRI_DOCKERD_GOPATH)/bin" \
-	PATH=$(CRI_DOCKERD_GOPATH)/bin:$(BR_PATH)
-
-CRI_DOCKERD_COMPILE_SRC = $(CRI_DOCKERD_GOPATH)/src/github.com/Mirantis/cri-dockerd
-CRI_DOCKERD_BUILDFLAGS = "-ldflags '-X github.com/Mirantis/cri-dockerd/version.Version=$(CRI_DOCKERD_VER) -X github.com/Mirantis/cri-dockerd/version.GitCommit=$(CRI_DOCKERD_REV)'"
-
-define CRI_DOCKERD_BUILD_CMDS
-	$(CRI_DOCKERD_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) LDFLAGS=$(CRI_DOCKERD_BUILDFLAGS) GO_VERSION=$(GO_VERSION) -C $(@D) VERSION=$(CRI_DOCKERD_VER) REVISION=$(CRI_DOCKERD_REV) static-linux
-endef
-
-define CRI_DOCKERD_INSTALL_TARGET_CMDS
-	$(INSTALL) -Dm755 \
-		$(@D)/packaging/static/build/linux/cri-dockerd/cri-dockerd \
-		$(TARGET_DIR)/usr/bin/cri-dockerd
-endef
-
-define CRI_DOCKERD_INSTALL_INIT_SYSTEMD
-	$(INSTALL) -Dm644 \
-		$(@D)/packaging/systemd/cri-docker.service \
-		$(TARGET_DIR)/usr/lib/systemd/system/cri-docker.service
-	$(INSTALL) -Dm644 \
-		$(@D)/packaging/systemd/cri-docker.socket \
-		$(TARGET_DIR)/usr/lib/systemd/system/cri-docker.socket
-endef
-
-$(eval $(generic-package))
diff --git a/deploy/iso/minikube-iso/package/crio-bin/02-crio.conf b/deploy/iso/minikube-iso/package/crio-bin/02-crio.conf
deleted file mode 100644
index cfeb6ed70..000000000
--- a/deploy/iso/minikube-iso/package/crio-bin/02-crio.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[crio.image]
-# pause_image = ""
-
-[crio.network]
-# cni_default_network = ""
-
-[crio.runtime]
-# cgroup_manager = ""
diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk
index 3d87e44ae..af437fca4 100644
--- a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk
+++ b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk
@@ -39,7 +39,6 @@ endef
 define CRIO_BIN_INSTALL_TARGET_CMDS
 	mkdir -p $(TARGET_DIR)/usr/share/containers/oci/hooks.d
 	mkdir -p $(TARGET_DIR)/etc/containers/oci/hooks.d
-	mkdir -p $(TARGET_DIR)/etc/crio/crio.conf.d
 
 	$(INSTALL) -Dm755 \
 		$(@D)/bin/crio \
@@ -56,9 +55,6 @@ define CRIO_BIN_INSTALL_TARGET_CMDS
 	$(INSTALL) -Dm644 \
 		$(CRIO_BIN_PKGDIR)/registries.conf \
 		$(TARGET_DIR)/etc/containers/registries.conf
-	$(INSTALL) -Dm644 \
-		$(CRIO_BIN_PKGDIR)/02-crio.conf \
-		$(TARGET_DIR)/etc/crio/crio.conf.d/02-crio.conf
 
 	mkdir -p $(TARGET_DIR)/etc/sysconfig
 	echo 'CRIO_OPTIONS="--log-level=debug"' > $(TARGET_DIR)/etc/sysconfig/crio
diff --git a/deploy/kicbase/02-crio.conf b/deploy/kicbase/02-crio.conf
deleted file mode 100644
index cfeb6ed70..000000000
--- a/deploy/kicbase/02-crio.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[crio.image]
-# pause_image = ""
-
-[crio.network]
-# cni_default_network = ""
-
-[crio.runtime]
-# cgroup_manager = ""
diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile
index 4de80bc80..8ffca0f6a 100644
--- a/deploy/kicbase/Dockerfile
+++ b/deploy/kicbase/Dockerfile
@@ -28,8 +28,8 @@ RUN cd ./cmd/auto-pause/ && go build
 # cri-dockerd static
 FROM golang:1.16
 RUN git clone -n https://github.com/Mirantis/cri-dockerd && \
-    cd cri-dockerd && git checkout a4d1895a2659ea9974bd7528a706592ab8b74181 && \
-    cd src && env CGO_ENABLED=0 go build -ldflags '-X github.com/Mirantis/cri-dockerd/version.GitCommit=a4d1895' -o cri-dockerd
+    cd cri-dockerd && git checkout 542e27dee12db61d6e96d2a83a20359474a5efa2 && \
+    cd src && env CGO_ENABLED=0 go build -o cri-dockerd
 
 # start from ubuntu 20.04, this image is reasonably small as a starting point
 # for a kubernetes node image, it doesn't contain much we don't need
@@ -43,7 +43,6 @@ ARG CRIO_VERSION="1.22"
 # copy in static files (configs, scripts)
 COPY deploy/kicbase/10-network-security.conf /etc/sysctl.d/10-network-security.conf
 COPY deploy/kicbase/11-tcp-mtu-probing.conf /etc/sysctl.d/11-tcp-mtu-probing.conf
-COPY deploy/kicbase/02-crio.conf /etc/crio/crio.conf.d/02-crio.conf
 COPY deploy/kicbase/clean-install /usr/local/bin/clean-install
 COPY deploy/kicbase/entrypoint /usr/local/bin/entrypoint
 COPY --from=0 /src/cmd/auto-pause/auto-pause /bin/auto-pause
diff --git a/deploy/minikube/releases-beta-v2.json b/deploy/minikube/releases-beta-v2.json
deleted file mode 100644
index 3a372d48d..000000000
--- a/deploy/minikube/releases-beta-v2.json
+++ /dev/null
@@ -1,34 +0,0 @@
-[
-{
-      "name": "v1.24.0-beta.0",
-      "checksums": {
-          "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e",
-          "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716",
-          "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3"
-      }
-  },
-  {
-      "name": "v1.22.0-beta.0",
-      "checksums": {
-          "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94",
-          "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5",
-          "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1"
-      }
-  },
-  {
-      "name": "v1.21.0-beta.0",
-      "checksums": {
-          "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6",
-          "linux": "41a26190c6774e1f3cc568986d4043431022d5dff4a619f131e9bb49d13e2874",
-          "windows": "e7d41c8c40e33633d47976047a48600ff23657c824db7e60fe5a4f2d2daeb135"
-      }
-  },
-  {
-      "name": "v1.20.0-beta.0",
-      "checksums": {
-          "darwin": "686f8d7c06c93f28543f982ec56a68544ab2ad6c7f70b39ede5174d7bac29651",
-          "linux": "fe0796852c9ef266597fc93fa4b7a88d2cab9ba7008f0e9f644b633c51d269a1",
-          "windows": "84a0686c90ab88d04a0aab57b8cadacf9197d3ea6b467f9f807d071efe7fad3c"
-      }
-  }
-]
diff --git a/deploy/minikube/releases-v2.json b/deploy/minikube/releases-v2.json
deleted file mode 100644
index 8263f3847..000000000
--- a/deploy/minikube/releases-v2.json
+++ /dev/null
@@ -1,780 +0,0 @@
-[
-    {
-        "checksums": {
-            "darwin": "7b0ecea078e370d26f45ee51b60d322f46f9f3df54b92f81d342244ffcfa14d9",
-            "linux": "1a69a286e9846438778a712297d1daec44d2c702c5f4540d97b3269fdb2b4e3d",
-            "windows": "7c12564a00b74704d43c347584615633d6de158f82c48c04fac909d7487bf6c2"
-        },
-        "name": "v1.25.1"
-    },
-    {
-        "checksums": {
-            "darwin": "55f14e4f411370da18d7b9432ae4edd128f4f047bbc87a278e08ba256ff6f669",
-            "linux": "3bc218476cf205acf11b078d45210a4882e136d24a3cbb7d8d645408e423b8fe",
-            "windows": "bb729590e111652d5f444fa66b66196491fa21c0713e4ff29f6e5360ab13a02c"
-        },
-        "name": "v1.24.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cf2971d4b83b9c5e359d644410dcca9bba6933ee08427967302e6767f6628086",
-            "linux": "752d91414793b6a88b309c806b65841ffa62a3bf07383146bd54afbf15de80b4",
-            "windows": "994e806468425e23aadcf86b99f0341fa1848a9a70456f09111c071f769c552d"
-        },
-        "name": "v1.23.2"
-    },
-    {
-        "checksums": {
-            "darwin": "2b6addab443e384fec975b9f4d35a931b1988961f6a9e87f10768596e23eb70e",
-            "linux": "fc23f94e870b18c2fc015af18fe2dee00452059100e42a5483b9440da1a5fba2",
-            "windows": "4050b6c97b18c6c25e1d760ff2d93333af7fe1f69d3eb29b5a20e60d6ef3f766"
-        },
-        "name": "v1.23.1"
-    },
-    {
-        "checksums": {
-            "darwin": "943f522393e04879bb83d0e484d608dd4086e92c58a0161b4f29dc9691a9ec80",
-            "linux": "a34f1e46151f3e302b7d92dee680a0cceaba5c5d6ab79baaf695b17c4a61df38",
-            "windows": "7b7f4c7be4fd954037dbb0f05ef5631f1b453d0d08c8de7c4d402261816b50ac"
-        },
-        "name": "v1.23.0"
-    },
-    {
-        "checksums": {
-            "darwin": "932a278393cdcb90bff79c4e49d72c1c34910a71010f1466ce92f51d8332fb58",
-            "linux": "7579e5763a4e441500e5709eb058384c9cfe9c9dd888b39905b2cdf3d30fbf36",
-            "windows": "8764ca0e290b4420c5ec82371bcc1b542990a93bdf771578623554be32319d08"
-        },
-        "name": "v1.22.0"
-    },
-    {
-        "checksums": {
-            "darwin": "e2043883ca993b2a65396d379823dab6404dd842d0cc2a81348d247b01785070",
-            "linux": "5d423a00a24fdfbb95627a3fadbf58540fc4463be2338619257c529f93cf061b",
-            "windows": "74c961877798531ab8e53e2590bfae3cee7690d0c2e0614fdb44339e065124b5"
-        },
-        "name": "v1.21.0"
-    },
-    {
-        "checksums": {
-            "darwin": "5185b7a4156671444dc7ad33b013b90f8a0ffb5186fc5c1a084e7c1cb6cd0788",
-            "linux": "87e5260afcba82dfcb7681b542c3e15665113b6d388faebe77bb0a784737dd13",
-            "windows": "ab3239792c89225b9f1b6f70cebe2fd6f6afd95d3755a4b708937a8ed876042f"
-        },
-        "name": "v1.20.0"
-    },
-    {
-        "checksums": {
-            "darwin": "8111d393424aaf141ad4dc6c520979ca6e1ba39249d07df3979c9a6152adf9e6",
-            "linux": "e4df939a230d6eb35aafd2971d0bb6ec27f4e0ebee9a41cb8cf5ae144de97af8",
-            "windows": "5ebfff08582aa7b4a9aa75517bedc3fbde4e0dca3a412f1f9001b29eacef1ae1"
-        },
-        "name": "v1.19.0"
-    },
-    {
-        "checksums": {
-            "darwin": "afca0cf5063e8b444b2201808fde3b95a8c59c509bd3e77574111697adb51315",
-            "linux": "86f65235361ebe4916350d988c756fcb2f27fc1bd3e2d84912462b39bb660dfe",
-            "windows": "db7d701cc737baa8daff58fb68e038f7d06324e972429444767f3514ea38c790"
-        },
-        "name": "v1.18.1"
-    },
-    {
-        "checksums": {
-            "darwin": "a8c78a01fb129a7c66bad25bace89dc59e912b7fc0a8456de3321f9adce7a01e",
-            "linux": "7a330bcd45c96633c14aabcae74b3308eacf6e552a5f6ccd565a03e2f293785f",
-            "windows": "264b8bd9062d73b7570a26455f646fbfbce9b7bfaf375cf5642ae17937e1f79a"
-        },
-        "name": "v1.18.0"
-    },
-    {
-        "checksums": {
-            "darwin": "c9361152a0a4aaed23d212b792f1907454f5fdd950f0cf9ac65c789744acf5ac",
-            "linux": "03a6d6cccecb7a33a09afc6dae40d8d76ccfe168aa4aba1a18c1f45bbab120c2",
-            "windows": "5e1d57379aa729b0a9247d5be6617906ebb7e934105df06eb6b24dda08899d3e"
-        },
-        "name": "v1.17.1"
-    },
-    {
-        "checksums": {
-            "darwin": "ad2b4de4b3f8863c2cfa9f5072cdc787141b0587fb9855dd645242253489fab3",
-            "linux": "e312901e12c347d0e4eec74d94b8d75512943eb62479b441bb1332f05cde0d09",
-            "windows": "dcae6ee972a49c4389d5e3ea81039b826cda55fefbe23b9273eeb46514abe244"
-        },
-        "name": "v1.17.0"
-    },
-    {
-        "checksums": {
-            "darwin": "546329a1a2448e1e8a483241c23a3ca272bd795df5a78bd6bf922699d3a75823",
-            "linux": "af29a48b2d79075f9d57be3a28724eef2cd628bb87283ed58dd72cbe1f8967c4",
-            "windows": "8928ad4ddcbcf203bf688be6fac826d12483116b4ac0625f28dbb8ab6a278979"
-        },
-        "name": "v1.16.0"
-    },
-    {
-        "checksums": {
-            "darwin": "ab47a4e3ff742db8a88d7bf0fe9cb9c6805e6f1df2545d8888f196c46b96f714",
-            "linux": "88c3bfac3880e897e4d032801b02f02fdda642b75d76ebeb5df545cd90eee409",
-            "windows": "89e34d6137bba7a59b74e138af28746b883bb605cbf2d37c1ff29dce008050e8"
-        },
-        "name": "v1.15.1"
-    },
-    {
-        "checksums": {
-            "darwin": "a744ed7fb5c317ef06b2c5ae0d94cec1d41e1d5c2ea40b5ece28e7a340abbad3",
-            "linux": "0b287e1cafc911ea6e39879f13ea302eeed5f6679bc77c719bfe21870056f3ca",
-            "windows": "a9e3e52c262b8832f3a83cbef4cbfc3e4c9e9e14baab819b43af040def7a447f"
-        },
-        "name": "v1.15.0"
-    },
-    {
-        "checksums": {
-            "darwin": "5d72bea6159e41f30865492298aa0e37af164ef22e56165ac78be179947d3b9d",
-            "linux": "f38f8da05a940589989eb0e85492edfe146caf57f9cfbb4ebb06de877f828f2e",
-            "windows": "cafd7a10a950d3c63425758b1afb3eaad12a4a5abd586fb83afc27a832a2c62b"
-        },
-        "name": "v1.14.2"
-    },
-    {
-        "checksums": {
-            "darwin": "d07db8343d06caa484a645bdd84d72d9babba81a18a7a50729616571b5e6702a",
-            "linux": "a7ad2b00389146a5b1833a35a96e50a224e7b382d072ee771b425eb6719bf109",
-            "windows": "71217e883e2d1c17b64415fbabef6bf199c7b03f88f66478c659d199c315e315"
-        },
-        "name": "v1.14.1"
-    },
-    {
-        "checksums": {
-            "darwin": "71dee6241a93945b40ea7188ad15459e50e7b65eab09fed7302d8cacdc58585c",
-            "linux": "8727635489be895d9b9cfaa5cb599f45799a28fb07e0a2aac351a9aa1c4b46c1",
-            "windows": "0317e6c338da23ccf0aba698668c6d919f22e1482340a09d1269220063937aeb"
-        },
-        "name": "v1.14.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cc7eaadea2becc48eee78136f8d569df55a28c46d58d1c8bb434895382aced78",
-            "linux": "3564b685f8d797df78ebfa2f5b34c99b3c77b0d1f49eab6aab37500f1ba61d98",
-            "windows": "0d315ec21ca8a34eff5fa4cc478c09ed2d48ae88b3c5d586df9de111ac414d44"
-        },
-        "name": "v1.13.1"
-    },
-    {
-        "checksums": {
-            "darwin": "5a51ad5147e7152801fce7215676d241989a915b346cf80c814c80f732b172ba",
-            "linux": "08d1522475e425188863cc2ab664bac8b1df3fa29e87edb6cba17aea82b63fbb",
-            "windows": "969121a5e932d279451d777fb7a844835949e00f2004d3f92f027ae86dc3acb1"
-        },
-        "name": "v1.13.0"
-    },
-    {
-        "checksums": {
-            "darwin": "060275cd2129fbf3ce38f245a85651a6f050dff25a3ed0454241e1319ea1ab08",
-            "linux": "664ebef01166ef6c6b13ff1d70faecca9292e2fcdc85766e8ebd2c607488711c",
-            "windows": "994e7a232c57b6b917c20ad2e40e88a6b8e80e057212b14def3307e4b22ebbe6"
-        },
-        "name": "v1.12.3"
-    },
-    {
-        "checksums": {
-            "darwin": "2d71dea18e8dd415b3c0306d91b53d9ca889e45ac3f090e4b8bff8ec7e744bcc",
-            "linux": "a314c57cfacd034da303bf00406c9ffae2880aaf98a7dc48d9cd92d2caa23237",
-            "windows": "c3b561a33a64ddd7b0122a8398d2364cdef66e8de76ad876be93946638bd8d36"
-        },
-        "name": "v1.12.2"
-    },
-    {
-        "checksums": {
-            "darwin": "81a69450b8baaa1abbe88d11c58c2a40e552da4d9052d9e123bdbea3e5607146",
-            "linux": "a0d8f9d71623e8c66723547fede7df95c12e2a8827fef408b640a6f62bafd57b",
-            "windows": "db7365266ebb00cd79ae5fc9c854fcf611ad1c6abd152f272727f6691ea8a4ad"
-        },
-        "name": "v1.12.1"
-    },
-    {
-        "checksums": {
-            "darwin": "7f6c6eeca19d6b16c9043cfc96a42408bbdec8ba90c01bd025249ca855a1362c",
-            "linux": "3501b6c2be48183affa9497e7db6d751d92e1536267268b73ad1a936a2977122",
-            "windows": "a5f8666d762146cc7d85916bcb2d6b7246162e4706f10e5c12a795b9d07ea6c4"
-        },
-        "name": "v1.12.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cc1b8a3327661be6a5d4dc1d6f9891aeeca40f7d9a389aaaffd8d4a1abbe294b",
-            "linux": "0b07a295d5110dc70907e4660429b8f9b3e8c05119e42f73e192b5313695a913",
-            "windows": "e94991292f4a0c5b91ef165f826c6a615a122513e8771c8f9ce5b7ec96ab9df0"
-        },
-        "name": "v1.11.0"
-    },
-    {
-        "checksums": {
-            "darwin": "9c51656f6855b4dff9a6f0bf1136255c18bc07c467ff67b32257da921e879246",
-            "linux": "acc67ea2ff1ca261269a702a6d998367f65c86d9024c20bbf5ac3922bfca1aaa",
-            "windows": "60d4db87a834509a69b70ac253de040eabfb9e96aaf3cee159f73c3d5f37e81a"
-        },
-        "name": "v1.10.1"
-    },
-    {
-        "checksums": {
-            "darwin": "aff7d9e273aff53f8b3ab0e0bc3fdfff76daa19b4a0f5480679ba52fc688eae1",
-            "linux": "9d34cb50bc39f80d39f92d1fb7cb23a271504b519f5e805574894d395ce3e7b3",
-            "windows": "9c3410ff03ed0d114e98cbd8cb1b14a3a131e69d92bd964b114ce07fa8385e70"
-        },
-        "name": "v1.10.0"
-    },
-    {
-        "checksums": {
-            "darwin": "f27016246850b3145e1509e98f7ed060fd9575ac4d455c7bdc15277734372e85",
-            "linux": "3121f933bf8d608befb24628a045ce536658738c14618504ba46c92e656ea6b5",
-            "windows": "426586f33d88a484fdc5a3b326b0651d57860e9305a4f9d4180640e3beccaf6b"
-        },
-        "name": "v1.9.2"
-    },
-    {
-        "checksums": {
-            "darwin": "ac8855ea54e798fa6f00e8c251b55c3d2a54e3b80e896162958a5ac7b0e3f60b",
-            "linux": "7174c881289a7302a05d477c67cc1ef5b48153e825089d6c0d0bcfaebe33d42a",
-            "windows": "91d15b2ef8f357aa463ae16de59f6e018120398f492ba4e35cd77f21acb27d5c"
-        },
-        "name": "v1.9.1"
-    },
-    {
-        "checksums": {
-            "darwin": "2a074b0d842e3d9272444990374c6ffc51878c2d11c0434f54e15269b59593f9",
-            "linux": "81d77d1babe63be393e0a3204aac7825eb35e0fdf58ffefd9f66508a43864866",
-            "windows": "d11a957704c23670eac453a47897449a2aaab13b7dcd6424307f8932ac9f81bb"
-        },
-        "name": "v1.9.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cbd1ff4dd239180b417bcd496fe0a31dbe8f212586765c040fdd20991ca13d50",
-            "linux": "0b21b50a8064aaea816cc7495cbbe324ab126284b0dbbb15c9f4df5ac72c22fb",
-            "windows": "076ccf11e8238647101e26d327adb0880fdac63cbd6e12bd0bb1420f09a85b9c"
-        },
-        "name": "v1.8.2"
-    },
-    {
-        "checksums": {
-            "darwin": "a19ab670ca81f11a82b6868e2995b5ab178fe121f6638bf40ec7d49c266f3d32",
-            "linux": "028bfb3aa0e5a1d1de49b13e4550d3d2885f2d0bb572f76a72372aba93fff22c",
-            "windows": "3d4daf04ac2addcc52b529bdebe50488867c5ce63d4e94083b0030be1e1e7b91"
-        },
-        "name": "v1.8.1"
-    },
-    {
-        "checksums": {
-            "darwin": "deb72f43ac361607e86a1b78668b19225e7d0956499fee6e3ed7d92b6b562451",
-            "linux": "e26af291482c6793cff4e35dc154922bcf0d4bca60a593c90fab891f602839ad",
-            "windows": "ee2162b0a2e3d1a1217400d34a2de2ab82a0c51e14236acb2b36faa3cdde3185"
-        },
-        "name": "v1.8.0"
-    },
-    {
-        "checksums": {
-            "darwin": "e8d762357123773f6c4dc300f8bccec3cdf2326c94f03a8aeb934e4e73fd59b8",
-            "linux": "575adc22884b49ecce9c9d289a7127b64f2759f639cb894c3040890bee1939c5",
-            "windows": "0fdc0d60e36001c021b6cc09e699e2a38b4070661cf7e78badf750ee84340afa"
-        },
-        "name": "v1.7.3"
-    },
-    {
-        "checksums": {
-            "darwin": "fcfb05f44620e54ce81fe8ac415196230ceb42c4007171533ef2049b7d4e8646",
-            "linux": "9f543f464b4d93a259f7d5a7578edff1316370d45b5a0679b86ed7a61b01634d",
-            "windows": "cbbe30445baffa9a3d77834d4e24c1ec595ecc2b7933db21109aa90aa79eaddd"
-        },
-        "name": "v1.7.2"
-    },
-    {
-        "checksums": {
-            "darwin": "ac6b1eb8ff6a98f0f4a8f26fddd7a9fd8dbdd7a5029cf87a9315399d31e4f6ce",
-            "linux": "1313da4fce807f2d5cd4664d8a59422067a3377ddd37fa66df9aa0bb228e154b",
-            "windows": "640ad4ba69926be2ea64140a5d6d80122f030c8bf75ae4afeca11eeff865feac"
-        },
-        "name": "v1.7.1"
-    },
-    {
-        "checksums": {
-            "darwin": "1f3785e9521eabe241df0481fa41887a6a3873307bac8a89fd0e48aa7612be29",
-            "linux": "f1fcab9f161a64f19b618a901e50488ed6f1c6ab20695c82623586a701d2d261",
-            "windows": "2f4448f32e505bf38ba52cd3678c73622a6bb452c63a4179d590f6da26520c68"
-        },
-        "name": "v1.7.0"
-    },
-    {
-        "checksums": {
-            "darwin": "5ea5168a80597ee6221bf50a524429a24a37f0c0f36725e6b297dc5a7a6a2105",
-            "linux": "eabd027438953d29a4b0f7b810c801919cc13bef3ebe7aff08c9534ac2b091ab",
-            "windows": "79d66c874cfe3497656e9ba191680cc95abd92d2f722b10de38f00b76ef82393"
-        },
-        "name": "v1.6.2"
-    },
-    {
-        "checksums": {
-            "darwin": "bcfc181ade08bd2a87fca70f0aa59f9f4b23c893fc2b335b3cb8f05b84ae2d34",
-            "linux": "cbd526d64531266d42f02667339d3c53e5a399e3abebda63c96b0bbd6b7e935d",
-            "windows": "1d7372fcf099d583d4140a4ce4aa8f5c2752d3bd0d143e53647aee6221dcb663"
-        },
-        "name": "v1.6.1"
-    },
-    {
-        "checksums": {
-            "darwin": "fd1af02f0fc11fb0bec35b9ae1f6bf2d157f51948155d8b1ddc899521642fc32",
-            "linux": "48738607ecdb0b00815599230a2a2b17dc90bd3bbcb1b217bace043f78370db3",
-            "windows": "20e7db220308f06913acd10addb1ec01c87b74245cebc70fa18a979c1b323f34"
-        },
-        "name": "v1.6.0"
-    },
-    {
-        "checksums": {
-            "darwin": "734306019f837a6aee9cb7a0245839f98ea7688ee2cde387099334cb9356c2c4",
-            "linux": "1972a9a96de85e480012f6d2c9b8a88fd29217b99b1a973ed5e199386659f7e9",
-            "windows": "9f012922fd8d701070ef3951b0df77b720805a204d4d0dfa15d11899fda8a2d0"
-        },
-        "name": "v1.5.2"
-    },
-    {
-        "checksums": {
-            "darwin": "7ba345034e176566930d873acd0f38366dd14fdafd038febe600ea38c24c4208",
-            "linux": "5aed23a876770c92d0162fcf7862d855dc306516614be78ac6fbc47b5cba55e6",
-            "windows": "5a7bd914b0ae57e0853d72a06b7fb72e645417f2f3cd86d0f1bc4f636a04d160"
-        },
-        "name": "v1.5.1"
-    },
-    {
-        "checksums": {
-            "darwin": "eb716c176f404bb555966ff3947d5d9c5fb63eb902d11c83839fda492ff4b1fc",
-            "linux": "ca50dcc7c83d4dde484d650a5a1934ea1bef692340af3aa831d34c6e847b2770",
-            "windows": "bdd61e446f49570428848ad15337264edfecc55d1dd4aed4499d559f9c8383b9"
-        },
-        "name": "v1.5.0"
-    },
-    {
-        "checksums": {
-            "darwin": "ae19f66c8f4a5716a1c22125af1bcf3d41d1b81cfa5fe7fc76a50c0c46e2c409",
-            "linux": "e63b8007c2d39fd037587adff2ec5360a910b51f427f0d1521fce5f3cac5e0fd",
-            "windows": "cd77fbe1b5892de2697161483f44f4ef6833c1418b53e913c2edef3ac95e7475"
-        },
-        "name": "v1.4.0"
-    },
-    {
-        "checksums": {
-            "darwin": "5947abe57fa390fcfd96849ac87fc9319f026d4b13f944b6beecc3615e3668be",
-            "linux": "057a4f4ca36ff51ecad59509d94d3694543b874949e805e2b79792ceef21f983",
-            "windows": "be1999452b166de72f946aac17ca7c40d53b8a5c8f59dad912c2413f7cc42563"
-        },
-        "name": "v1.3.1"
-    },
-    {
-        "checksums": {
-            "darwin": "5bda29e2d990bb8ac9da1767143e228772adc45507d22a49b5af70b03e7db682",
-            "linux": "5aa7c5f0b6dd09348f7e2435b9618f6a916fbb573580619b393b514258771eab",
-            "windows": "d808b6e42e6f53c9338d135a352bebd4469634f33646d06e7cad3569330225cb"
-        },
-        "name": "v1.3.0"
-    },
-    {
-        "checksums": {
-            "darwin": "183d017d094b7783c938dc709dbdfc9a48f92299178234f89047dfbb083a592c",
-            "linux": "123fc9f5656333fb2927cf91666a91cd5b28ef97503418ac2a90a2109e518ed9",
-            "windows": "f6c30cb88ec61bc6fe17532a3ef56e4f1fcef2473e3d73fc56f352b44784490d"
-        },
-        "name": "v1.2.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cf6b2c0397147fa998a5c4e36ed7ad045d67f929daa3e46a1d01656b5ab7cac5",
-            "linux": "4596c0daabfe637912e2372c41cc11116ca053a1f7045af8a731265e45f9ca83",
-            "windows": "e86e9c7c1c25cfd251f010b62e83fdf2ee2eefc3e73b4b1f7fa18971577150be"
-        },
-        "name": "v1.1.1"
-    },
-    {
-        "checksums": {
-            "darwin": "3f635089d93ba7bd193b8f015bfa9434b810256daa8ced03816c7f0df7b06a96",
-            "linux": "43ce88a10c7b57f5e4f83e5a1485e13e4ad537bfb20f7d57364f66450b872634",
-            "windows": "2a8e95fbe4ec9b32c603767f16b731b5f09ddd04c3e43f6bbe7fffd22afbf811"
-        },
-        "name": "v1.1.0"
-    },
-    {
-        "checksums": {
-            "darwin": "0af8a3f582c9284ffe10e99444b60a75241325f2bc9ab43ec758802f2b89e1db",
-            "linux": "7b56374955990ef2dd0289e6ecb62cf2b4587cab2b481d95f58de5db56799868",
-            "windows": "58abb5fb3e694a451102963e04ce13ea0cea46b7bf5c7947f40fdfc673282ac9"
-        },
-        "name": "v1.0.1"
-    },
-    {
-        "checksums": {
-            "darwin": "865bd3a13c1ad3b7732b2bea35b26fef150f2b3cbfc257c5d1835527d1b331e9",
-            "linux": "a315869f81aae782ecc6ff2a6de4d0ab3a17ca1840d1d8e6eea050a8dd05907f",
-            "windows": "a9e629911498ce774681504abe1797c1957e29d100d40c80c26ac54e22716a85"
-        },
-        "name": "v1.0.0"
-    },
-    {
-        "checksums": {
-            "darwin": "9fb0ce4decb0f40b1b2ee11cad0aa89e13e2d5c46ff0d35875a0a65788dee6b4",
-            "linux": "e161995604c42c37a797fd11fac5d545f8b75f0796afc3b10679253bf229ff3d",
-            "windows": "748c9087e876491332897d8dc937eeea92f9fda9003443ef668dc75f5638ed5b"
-        },
-        "name": "v0.35.0"
-    },
-    {
-        "checksums": {
-            "darwin": "54b865528ff14a4cfa479bd7c5630db81e0695c3b4b85939b0735dc1203541d3",
-            "linux": "8db7e8a128de48ebeb1cb8cacb457f60b5420706e08c190e466f4e9b971fd8f3",
-            "windows": "90fdaddd3ffe62beef2503e59295b15124b454b795324a8dcb54dd0cc7ba3296"
-        },
-        "name": "v0.34.1"
-    },
-    {
-        "checksums": {
-            "darwin": "8932ee06a8db3fae696d97bfefa2d7ad2168ffa3046e0729f39164cf11a78911",
-            "linux": "97a871bc4d62287b167db1feb1ef167925e2b51d7a0fb4bfe3ac215402e10deb",
-            "windows": "89e8f10ab97f3440c5dad47f6be96ed49cf9d7dc3a15849f682440a0a3649ea1"
-        },
-        "name": "v0.34.0"
-    },
-    {
-        "checksums": {
-            "darwin": "ff5aee67920e9615aef804ed0db9d0dfaebfb9f54ca093ddc16c67b3834baaf0",
-            "linux": "8a5effbbe6a847eb61e676b6ad62883d9c19abe75452d766043f41a59248f191",
-            "windows": "bf8cd98dec45725cb4b4123be59a54751d0b65c435573b8a19f2c439a91f1a4b"
-        },
-        "name": "v0.33.1"
-    },
-    {
-        "checksums": {
-            "darwin": "bfa1b27ef6ad3912a24917c07237409db033e1454fe9c8df063c1fb1180b3b7a",
-            "linux": "8a2eb70571993efbd5b44eda7ed3b04853ef877973bfe1a2c768ce649f8e5af5",
-            "windows": "1ea3386fc15dc96577ce6a2f2f2193d1f4e63673146c3528970c8f4d49c0304b"
-        },
-        "name": "v0.33.0"
-    },
-    {
-        "checksums": {
-            "darwin": "d5b21adacd4b6bad9006816e4bdb29f39318a60919e7a6bb5e388a6299fffd0f",
-            "linux": "3298d3183deacd9ddd3032dab113a64d863df7648d6d24693284ba4193e95b49",
-            "windows": "31668f64f6be25644b22d0465e0f72d745a027804b2c8685e040b8147bacfba1"
-        },
-        "name": "v0.32.0"
-    },
-    {
-        "checksums": {
-            "darwin": "621189b5ec9cbb55003ee3577d480e847c0f80a9ed58f4fb3ed567bb7be623a1",
-            "linux": "5926978aee75776af0867d112a77334b10ec65f687d734f238bfd88960c983c2",
-            "windows": "1ae607a849569664f6c5d87f969b1f9a096524515a6524be07fd364b7d405f6c"
-        },
-        "name": "v0.31.0"
-    },
-    {
-        "checksums": {
-            "darwin": "e09789c4eb751969f712947a43effd79cf73488163563e79d98bc3d15d06831e",
-            "linux": "f6fcd916adbdabc84fceb4ff3cadd58586f0ef6e576233b1bd03ead1f8f04afa",
-            "windows": "8f09d63c64a2a0c4810c492066b16ccd4bd63e2f3c2d0eb55e49c51c915493f6"
-        },
-        "name": "v0.30.0"
-    },
-    {
-        "checksums": {
-            "darwin": "196b2cbf4003ccc3574ba105437ae675bcd9cf80e6f8396b5581d40c35c6070d",
-            "linux": "0f8890d4a0869e6e80a62e63ad08336caf75e38111307e8fe57773d706c4142d",
-            "windows": "78aeb9ccff70121bc8dd0d6fb8a9c9438a39da806104d1be09923f369f496c32"
-        },
-        "name": "v0.29.0"
-    },
-    {
-        "checksums": {
-            "darwin": "dca43053510f5e8987ff89abf601594eaf58bc5d447d74f9a08e300f3d92133f",
-            "linux": "3c84872ffa5ddbce472062fb548f9b3a25af72587d35243e12f18d86aaa6a085",
-            "windows": "1f9840a3a54d793b60ff1b9c7ef1c87269ee24d118f7ef47667d9f7a0ef7861a"
-        },
-        "name": "v0.28.2"
-    },
-    {
-        "checksums": {
-            "darwin": "7d9b67c4c716184d6a854fb91b08b99094356a44b51e315659b254fbd74022cc",
-            "linux": "af261082d0ba9eb2dc3836a4cd903a449bafcb8647c5d5cb555c4e9144093627",
-            "windows": "e94d8d597e1c876dc45d6f63254e296bc95ee5c98c0a06b28050f59dad7d90c7"
-        },
-        "name": "v0.28.1"
-    },
-    {
-        "checksums": {
-            "darwin": "bfde769dc3e1bf050a079927fdcd646723ae73d13dda3505eea6a80acc27cb57",
-            "linux": "dfe361f86288a4cedcdc3bffbbe5b4716c7ee19cbb82d70696b0f20596a15c65",
-            "windows": "4ee548642184648b5dfb1380dc08a3541d3b665446c602830253126123ae5be5"
-        },
-        "name": "v0.28.0"
-    },
-    {
-        "checksums": {
-            "darwin": "d335f7a6a03d7aead5cb95867ecdb96b845b3520593df16688e6dfac7d4717c1",
-            "linux": "7c03650d33e029f1dbf810d27dc1fc197ad9b889f645a4d5c353bb1c46d3ff2a",
-            "windows": "c714aa1667cd7d73807e23904c37a9b696e50e8143f5705660c0f1147d8307e8"
-        },
-        "name": "v0.27.0"
-    },
-    {
-        "checksums": {
-            "darwin": "8cabcaa244a7d62697ad8f4393e3661c9e9cd598a75df79a8d1ffe803f80b209",
-            "linux": "3c956459ee8dad9452c97d54463f982d1d511a9afaa0f3851d88320bd5dcf58a",
-            "windows": "498f9f090972c047836fcb1580bb6fcee53fe920955377569d903ba72a0c425e"
-        },
-        "name": "v0.26.1"
-    },
-    {
-        "checksums": {
-            "darwin": "0b2c63c6f5a00525e679b01948edffcb16e3bdb37ea0db3ed89431dd0e4c3b3c",
-            "linux": "65dcc26a595c73b5bd2a3e47c3d5aa3bbdef81fe603f8d56f947d37cb12c74fc",
-            "windows": "a7d8edb6713b819a8f44b732314a1b8fe5b77a4397693c633f641592fe6e32f1"
-        },
-        "name": "v0.26.0"
-    },
-    {
-        "checksums": {
-            "darwin": "0d85ecc1cd064bae04ea4a8ef634d4fdc80318b65a2b8d14d105f1e15fcbced0",
-            "linux": "5676f2d4f37f1c6f9cf99d56c7e1a3016976d657f9715e8cb255667a0c5803c1",
-            "windows": "de2cbda425ae76ec7240d4543d8642598974fa558727bee10b7866ceb72c3fd9"
-        },
-        "name": "v0.25.0"
-    },
-    {
-        "checksums": {
-            "darwin": "f89abc1caaf73f3a623c6c5b792833fab2e0667cd0d1ebaffc05918b3b81c164",
-            "linux": "1261de09386fd1f4ee7a4645958757c2c9e69f419a2a4ca8aff475017a7e036e",
-            "windows": "61e1aa977ffdfd5373158820f8d57a8f4af7c43e78b8598651dea65be59b8bab"
-        },
-        "name": "v0.24.1"
-    },
-    {
-        "checksums": {
-            "darwin": "7db2045495db05a885c3ad9a0e5e7ff017ae1f2f1a835d9151142df0c6f1d192",
-            "linux": "fb624bfda432c764d19212fcaab2a368db8bb0e8427b7ff04b5b684faab0b463",
-            "windows": "46510a457658e7aee492cc0f1807b3b57c61b1d7154e7ee5b4da607fe681347f"
-        },
-        "name": "v0.24.0"
-    },
-    {
-        "checksums": {
-            "darwin": "3d0c5581cd14f85637fb888c1e2e124152c4c9643a257ba90c8cd929d2c2b8b3",
-            "linux": "cd9c6c640a1632e8c44d9b335e68db869da28442b6ab0642a2b7adbc1e4ef334",
-            "windows": "ddee80b2505447197994377f40e574061e1d59203019b587361be2b28762fd61"
-        },
-        "name": "v0.23.0"
-    },
-    {
-        "checksums": {
-            "darwin": "62483f95b55fc14e6cd3898bbfdd637a0ad921e5f1a632b5e367d74af5e36f24",
-            "linux": "7d85e6ca06943376fe3235663857bf51b4d3fe0d59b6ef645821bf212301244b",
-            "windows": "0a7037cb510bfbd9f78b85a80910a43bb8f6e7a9de89cd4323fea3ff52fce524"
-        },
-        "name": "v0.22.3"
-    },
-    {
-        "checksums": {
-            "darwin": "d59ca57fece491fee8b47a5c092ac297e807ca47584ac2b65078d070ed5d3f48",
-            "linux": "cddba4a49d522afe3b556bc251ca57017b060859d25a55d9fade294432982515",
-            "windows": "fffa980120ab40716fc83f525bc230574cd636581126b9473bd50ea9a40c89e4"
-        },
-        "name": "v0.22.2"
-    },
-    {
-        "checksums": {
-            "darwin": "a5bf0deacfce70a7f19f5955da14bb02871fee724185f76ad95657a5f35d96ce",
-            "linux": "0b61a7b7ca21e2c9bda5ab18d60c6c3fdf7a40d62db23b49de29617a6439c6fb",
-            "windows": "fc86f53768b6f77b425bcb330de7f5b6fe541ff96796228a4567b183b04793af"
-        },
-        "name": "v0.22.1"
-    },
-    {
-        "checksums": {
-            "darwin": "389c4cbbef69e760e8c5e226035d5afcad05540e2dd1d77439f903be119873f4",
-            "linux": "aaa439aee636a01e6340a1104721942af43c3fb481a5a32e112ccd8a37d8a1e9",
-            "windows": "06f7db04dae2e126958bd822fdbee1f10039a673f4b67c332373093b06a67d03"
-        },
-        "name": "v0.22.0"
-    },
-    {
-        "checksums": {
-            "darwin": "2a6960cfa2b5aed9fec8d8cbe357fa8f5776761ee5efa3dd26abccc894f4b453",
-            "linux": "c5dc6e8d85f96d4bfba321bdca93b2a828a714162653a55a9b3a6d527f517e82",
-            "windows": "ef6f5566eca0c20bc87391c0cd6e7103d6e3c6a05211ed6157ed143f9b956686"
-        },
-        "name": "v0.21.0"
-    },
-    {
-        "checksums": {
-            "darwin": "591737b728745dbf01f634bf714353c416c2e56c39e2e0431910fa51783b7a19",
-            "linux": "f7d51f0b94f88650ced3ddb6e079f560e7ef142b8e4d53a5aee511ca1c2e3df4",
-            "windows": "d4be02e5e7075943d6b4efca44c0ff56286f72236e2640d82010b944646612b7"
-        },
-        "name": "v0.20.0"
-    },
-    {
-        "checksums": {
-            "darwin": "efe27dd4f791403b90eefab8c1f6ea3c7f3115a7609f41e3189517f088e20f0e",
-            "linux": "1b3447b307fa256378c9541731cfc5d5b06128f88dab04b3cfc9deeeceddb2bf",
-            "windows": "105fa416fbda1fc8f4ad6c2e9a7883733d5f11ae247ef6cfd15e9fbc6dd5dd56"
-        },
-        "name": "v0.19.0"
-    },
-    {
-        "checksums": {
-            "darwin": "301dc5f47cccface80769bd3a03d58ba80893f6ede75f2a7ec22f1bc56666deb",
-            "linux": "212fbf52a6d601deb383271e2af756982f9b72715e1f7a3d65770d04387d8c8d",
-            "windows": "302bfe9747882291e686ecf6f337e78836f7bb0e1783fc6d8bf1f3482fb2badf"
-        },
-        "name": "v0.18.0"
-    },
-    {
-        "checksums": {
-            "darwin": "b175c355d377a6ce2fefdd19201c865a7e628581261ac949fffb725af459c389",
-            "linux": "54f9e24b5622f540a6d5edd7450ce546cf6f57f9feff21fd5d92d0d2f552ac31",
-            "windows": "86a713ced29399c736d14bf19be7aead96a22b03374441d99a457a4c44df9d53"
-        },
-        "name": "v0.17.1"
-    },
-    {
-        "checksums": {
-            "darwin": "d12fb4f8d9ff538c5563e1dcdf29495dc47b64a3fe108d7190fa37bf94a09a21",
-            "linux": "086d3438a9c2f324f494cf6dd4c422c27e93b19dd874c77d093d8ff91709a659",
-            "windows": "3d349978704791596a03237715ad502f5ab5bbd76014b761e579e859a5eaf4c1"
-        },
-        "name": "v0.17.0"
-    },
-    {
-        "checksums": {
-            "darwin": "1de0dda591d23c01aa52f6e7b6c85bec7e4811a007a5a939eb2d1bed6fa84144",
-            "linux": "119a687ce949f48cc7cc0ed3827bcd182d7769968023a0561bf93290ff265d5a",
-            "windows": "e3f21e866fc2b241c69b0836ebf9ac2d4a7eae3a234aa5c1b1447073e3e0804a"
-        },
-        "name": "v0.16.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cc76cb68c9dfbe0317701e5d264ecf03cb3177a3a77906d901960c7adff6fc4a",
-            "linux": "0396080f87469b2bae0e9b23477156f32d25119b6b712f7e82a25a82d41ed3bc",
-            "windows": "11b6499c3b8079a7b7c74482c119db244d2585332a649de1edd0cc9bc85ce1b9"
-        },
-        "name": "v0.15.0"
-    },
-    {
-        "checksums": {
-            "darwin": "950805a1e1929dc41ef27698a0325b981f99f4a45df121521861fcd696e35f28",
-            "linux": "a9e8423474de6046c672db5b035475fc034223652b081d1accba89af7da5a5e0",
-            "windows": "5d6ef16842ea17aeaa715e5966edbc4f5ad220eaca15c070c1a191bb2360677b"
-        },
-        "name": "v0.14.0"
-    },
-    {
-        "checksums": {
-            "darwin": "77bc72679ca1beb09ad7f26ec8ba8b286283ddf7bee4e68163b88c5a439bc049",
-            "linux": "52706da92b6cf9a5eb4f59fe6034f119e3eb442c3fc57bf181d01db929e1289f",
-            "windows": "5bbb30feb34f09a1d7cee5051bb3b28103eef719ae828bfd8fddb11efc56a5c7"
-        },
-        "name": "v0.13.1"
-    },
-    {
-        "checksums": {
-            "darwin": "bf04827735c1f8b7dd51548fbd01ef3a2f84a2db64b235a794020241c3ccf996",
-            "linux": "453c2e3e55afb258bd7ca7ca9ba1da3f59d0131eb9bb73cf46cce7bb5bc0fbb4",
-            "windows": "1f5d09f7d9442e2d861eaed3a8403c7db029f076d69773d9ffdd177b3af14b6f"
-        },
-        "name": "v0.13.0"
-    },
-    {
-        "checksums": {
-            "darwin": "5f818be5235d606ec5241ac1eea0dc92e6328d56841617c51e4595a0abc4300c",
-            "linux": "ace8dcaf9418ed0e4eb07e7737b0af41036f6aaa05f784386725feb041463a74",
-            "windows": "1768aea06220946f22e88d294f02984135a77799b88373fc6b1a98b3da6802ef"
-        },
-        "name": "v0.12.2"
-    },
-    {
-        "checksums": {
-            "darwin": "d1f4ae5ef298ffbd50f56f7da7fb6215bd79795a5db90b07d9d57468e8485a3c",
-            "linux": "e767236598d619ac93d4fa2782a5534c7107068f3b46ecee69e92ab8d9f0a3d1",
-            "windows": "67a6146011f6c90274b0f509f7dff18bd3a6f423dc9ba3bcce933ac9b25c2891"
-        },
-        "name": "v0.12.1"
-    },
-    {
-        "checksums": {
-            "darwin": "a96d6e1d53a7999503d00bcd41b4ccaa80f5d57f798608f03e3f4d63a42f9991",
-            "linux": "1315a334e701c1558740e4140f8e28985d7734e8a53e4af2153076c2586c3c7d",
-            "windows": "373e3e2e1d9e000044711dfafe3a88fdb9620c3050a6b5f9e8ed0eb3e7ffd12e"
-        },
-        "name": "v0.12.0"
-    },
-    {
-        "checksums": {
-            "darwin": "7fe7ce35eda959d91071d065141d040053b945d5af0d57f98eb18afb93a4c921",
-            "linux": "f654835e3610fc746060ffdcdba5df68ca39231a4c6d5c6c9d9caffb10c25da1",
-            "windows": "4ba3e7a08cf3cc2b0f50e454a48d67022e8ca78b9363cd743644eb7b5f03a3b5"
-        },
-        "name": "v0.11.0"
-    },
-    {
-        "checksums": {
-            "darwin": "fc7552b5475d0c20ad96057fb88d686e226d09bd1034269d5078b33ba7d7cc8e",
-            "linux": "f905af9b2ef1e954d0633680ab5a8914d628b9104cce54de7e42509d89d2c541",
-            "windows": "93b0e1fabeab79da2b61c9237076893dacf3cc147294298d50cb48ca7cd2a86f"
-        },
-        "name": "v0.10.0"
-    },
-    {
-        "checksums": {
-            "darwin": "4415e7f3a30ace7cf0e5ad023f979509e6b25ded1bfb55368f918fc25098307e",
-            "linux": "76b341aa377c274c7147e203483f117ef01151a8e33bb232e29872ad20f6effc",
-            "windows": "98cb96fef863c9a4acac210eea910c2d239a87b13a6e2ac10ffe35244880e203"
-        },
-        "name": "v0.9.0"
-    },
-    {
-        "checksums": {
-            "darwin": "cc7439fc8e8e8e957246908f99314abeeb8513745b8d30ed64bf480227ec2607",
-            "linux": "8f9a8a41ba4a89ec847d998591ab24a8989c27852fce5193c5bdba23139223b7",
-            "windows": "3f384df76a24d2f3d70d7fc4b2c41dfb833ce0f02fb7be5bd39928d647094bc1"
-        },
-        "name": "v0.8.0"
-    },
-    {
-        "checksums": {
-            "darwin": "fc8365148be19bd020432d8ddc85c06b7aab3953300b16b24f20fcd8393de449",
-            "linux": "461c09753505e8c06a55b59633abbaa4daa89190374e4c737fe4d4d1107b9f1b",
-            "windows": "cb065787e1ade5761f3be8be407714e0a0dfa23aa1080f33dcccd13655c857a2"
-        },
-        "name": "v0.7.1"
-    },
-    {
-        "checksums": {
-            "darwin": "67af90d31c02e26bdb5a1af96a67b00feb288f20f96b4a67f7c4f1a40b382e99",
-            "linux": "374c813dcfc23a49cf48a73361088251aa6f85e8cd06b42c9e6d43c1dfb4def4",
-            "windows": "83d5b8c67d6535b6c156feb0e3b3485b54114436f6338dbdc86b4f92c8cecf43"
-        },
-        "name": "v0.7.0"
-    },
-    {
-        "name": "v0.6.0"
-    },
-    {
-        "name": "v0.5.0"
-    },
-    {
-        "name": "v0.4.0"
-    },
-    {
-        "name": "v0.3.0"
-    },
-    {
-        "name": "v0.2.0"
-    },
-    {
-        "name": "v0.1.0"
-    }
-]
diff --git a/deploy/minikube/schema-v2.json b/deploy/minikube/schema-v2.json
deleted file mode 100644
index b74eec55e..000000000
--- a/deploy/minikube/schema-v2.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "$schema": "https://json-schema.org/draft/2020-12/schema",
-  "type": "array",
-  "items": {
-    "type": "object",
-    "properties": {
-      "name": {
-        "type": "string"
-      },
-      "checksums": {
-        "type": "object",
-        "properties": {
-          "darwin": { "$ref": "#/$defs/sha" },
-          "linux": { "$ref": "#/$defs/sha" },
-          "windows": { "$ref": "#/$defs/sha" },
-	  "amd64": { "$ref": "#/$defs/arch" },
-	  "arm": { "$ref": "#/$defs/arch" },
-	  "arm64": { "$ref": "#/$defs/arch" },
-	  "ppc64le": { "$ref": "#/$defs/arch" },
-	  "s390x": { "$ref": "#/$defs/arch" }
-        },
-        "required": ["darwin", "linux", "windows"]
-      }
-    },
-    "required": [
-      "name"
-    ]
-  },
-  "$defs": {
-    "sha": {
-      "type": "string",
-      "pattern": "^[A-Fa-f0-9]{64}$"
-    },
-    "arch": {
-      "type": "object",
-      "properties": {
-        "darwin": { "$ref": "#/$defs/sha" },
-	"linux": { "$ref": "#/$defs/sha" },
-	"windows": { "$ref": "#/$defs/sha" }
-      }
-    }
-  }
-}
diff --git a/deploy/minikube/schema.json b/deploy/minikube/schema.json
index 4b95c6987..79c6ad112 100644
--- a/deploy/minikube/schema.json
+++ b/deploy/minikube/schema.json
@@ -1,5 +1,5 @@
 {
-  "$schema": "https://json-schema.org/draft/2020-12/schema",
+  "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "array",
   "items": {
     "type": "object",
@@ -10,9 +10,18 @@
       "checksums": {
         "type": "object",
         "properties": {
-          "darwin": { "$ref": "#/$defs/sha" },
-          "linux": { "$ref": "#/$defs/sha" },
-          "windows": { "$ref": "#/$defs/sha" }
+          "darwin": {
+            "type": "string",
+            "pattern": "^[A-Fa-f0-9]{64}$"
+          },
+          "linux": {
+            "type": "string",
+            "pattern": "^[A-Fa-f0-9]{64}$"
+          },
+          "windows": {
+            "type": "string",
+            "pattern": "^[A-Fa-f0-9]{64}$"
+          }
         },
         "required": ["darwin", "linux", "windows"]
       }
@@ -20,11 +29,5 @@
     "required": [
       "name"
     ]
-  },
-  "$defs": {
-    "sha": {
-      "type": "string",
-      "pattern": "^[A-Fa-f0-9]{64}$"
-    }
   }
 }
diff --git a/deploy/minikube/schema_check.go b/deploy/minikube/schema_check.go
index b92c15eb4..4b54d493b 100644
--- a/deploy/minikube/schema_check.go
+++ b/deploy/minikube/schema_check.go
@@ -17,43 +17,39 @@ limitations under the License.
 package main
 
 import (
-	"encoding/json"
 	"fmt"
-	"io/ioutil"
-	"log"
 	"os"
+	"path/filepath"
 
-	"github.com/santhosh-tekuri/jsonschema/v5"
+	"github.com/xeipuuv/gojsonschema"
 )
 
 func main() {
 	validateSchema("deploy/minikube/schema.json", "deploy/minikube/releases.json")
-	validateSchema("deploy/minikube/schema.json", "deploy/minikube/releases-beta.json")
-	validateSchema("deploy/minikube/schema-v2.json", "deploy/minikube/releases-v2.json")
-	validateSchema("deploy/minikube/schema-v2.json", "deploy/minikube/releases-beta-v2.json")
 	os.Exit(0)
 }
 
-func validateSchema(schemaPathString, docPathString string) {
-	sch, err := jsonschema.Compile(schemaPathString)
-	if err != nil {
-		log.Fatal(err)
-	}
+func validateSchema(schemaPathString string, docPathString string) {
+	schemaPath, _ := filepath.Abs(schemaPathString)
+	schemaSrc := "file://" + schemaPath
+	schemaLoader := gojsonschema.NewReferenceLoader(schemaSrc)
 
-	data, err := ioutil.ReadFile(docPathString)
-	if err != nil {
-		log.Fatal(err)
-	}
+	docPath, _ := filepath.Abs(docPathString)
+	docSrc := "file://" + docPath
+	docLoader := gojsonschema.NewReferenceLoader(docSrc)
 
-	var v interface{}
-	if err := json.Unmarshal(data, &v); err != nil {
-		log.Fatal(err)
+	result, err := gojsonschema.Validate(schemaLoader, docLoader)
+	if err != nil {
+		panic(err.Error())
 	}
 
-	if err = sch.Validate(v); err != nil {
-		fmt.Printf("The document %s is invalid, see errors:\n%#v", docPathString, err)
-		return
+	if result.Valid() {
+		fmt.Printf("The document %s is valid\n", docPathString)
+	} else {
+		fmt.Printf("The document %s is not valid. see errors :\n", docPathString)
+		for _, desc := range result.Errors() {
+			fmt.Printf("- %s\n", desc)
+		}
+		os.Exit(1)
 	}
-
-	fmt.Printf("The document %s is valid\n", docPathString)
 }
diff --git a/go.mod b/go.mod
index e93b5a221..4efc02a5e 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module k8s.io/minikube
 go 1.17
 
 require (
-	cloud.google.com/go/storage v1.20.0
+	cloud.google.com/go/storage v1.19.0
 	contrib.go.opencensus.io/exporter/stackdriver v0.13.10
 	github.com/Delta456/box-cli-maker/v2 v2.2.2
 	github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2
@@ -19,7 +19,7 @@ require (
 	github.com/cloudevents/sdk-go/v2 v2.8.0
 	github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
 	github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect
-	github.com/docker/docker v20.10.12+incompatible
+	github.com/docker/docker v20.10.11+incompatible
 	github.com/docker/go-units v0.4.0
 	github.com/docker/machine v0.16.2
 	github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e
@@ -64,10 +64,11 @@ require (
 	github.com/pmezard/go-difflib v1.0.0
 	github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 // indirect
 	github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect
-	github.com/shirou/gopsutil/v3 v3.22.1
+	github.com/shirou/gopsutil/v3 v3.21.12
 	github.com/spf13/cobra v1.3.0
 	github.com/spf13/pflag v1.0.5
 	github.com/spf13/viper v1.10.1
+	github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f
 	github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
 	go.opencensus.io v0.23.0
 	go.opentelemetry.io/otel v1.0.0-RC1
@@ -79,11 +80,11 @@ require (
 	golang.org/x/mod v0.5.1
 	golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8
 	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
-	golang.org/x/sys v0.0.0-20220114195835-da31bd327af9
+	golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e
 	golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72
 	golang.org/x/text v0.3.7
 	gonum.org/v1/plot v0.10.0
-	google.golang.org/api v0.66.0
+	google.golang.org/api v0.65.0
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
 	gopkg.in/yaml.v2 v2.4.0
 	k8s.io/api v0.22.4
@@ -98,8 +99,6 @@ require (
 	sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
 )
 
-require github.com/santhosh-tekuri/jsonschema/v5 v5.0.0
-
 require (
 	cloud.google.com/go v0.100.2 // indirect
 	cloud.google.com/go/compute v0.1.0 // indirect
@@ -186,6 +185,8 @@ require (
 	github.com/tklauser/go-sysconf v0.3.9 // indirect
 	github.com/tklauser/numcpus v0.3.0 // indirect
 	github.com/ulikunitz/xz v0.5.8 // indirect
+	github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
+	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
 	github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
 	github.com/yusufpapurcu/wmi v1.2.2 // indirect
 	go.uber.org/atomic v1.7.0 // indirect
@@ -196,7 +197,7 @@ require (
 	golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
 	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44 // indirect
+	google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 // indirect
 	google.golang.org/grpc v1.43.0 // indirect
 	google.golang.org/protobuf v1.27.1 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
diff --git a/go.sum b/go.sum
index 255604fea..97a588b66 100644
--- a/go.sum
+++ b/go.sum
@@ -58,8 +58,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
 cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
 cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-cloud.google.com/go/storage v1.20.0 h1:kv3rQ3clEQdxqokkCCgQo+bxPqcuXiROjxvnKb8Oqdk=
-cloud.google.com/go/storage v1.20.0/go.mod h1:TiC1o6FxNCG8y5gB7rqCsFZCIYPMPZCO81ppOoEPLGI=
+cloud.google.com/go/storage v1.19.0 h1:XOQSnPJD8hRtZJ3VdCyK0mBZsGGImrzPAMbSWcHSe6Q=
+cloud.google.com/go/storage v1.19.0/go.mod h1:6rgiTRjOqI/Zd9YKimub5TIB4d+p3LH33V3ZE1DMuUM=
 cloud.google.com/go/trace v1.0.0 h1:laKx2y7IWMjguCe5zZx6n7qLtREk4kyE69SXVC0VSN8=
 cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.10 h1:a9+GZPUe+ONKUwULjlEOucMMG0qfSCCenlji0Nhqbys=
@@ -375,8 +375,8 @@ github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc
 github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker v17.12.0-ce-rc1.0.20190115220918-5ec31380a5d3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v20.10.12+incompatible h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U=
-github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v20.10.11+incompatible h1:OqzI/g/W54LczvhnccGqniFoQghHx3pklbLuhfXpqGo=
+github.com/docker/docker v20.10.11+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ=
 github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
 github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
@@ -1031,16 +1031,14 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb
 github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
 github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig=
 github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM=
-github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE=
-github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/sayboras/dockerclient v1.0.0 h1:awHcxOzTP07Gl1SJAhkTCTagyJwgA6f/Az/Z4xMP2yg=
 github.com/sayboras/dockerclient v1.0.0/go.mod h1:mUmEoqt0b+uQg57s006FsvL4mybi+N5wINLDBGtaPTY=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
 github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/shirou/gopsutil/v3 v3.22.1 h1:33y31Q8J32+KstqPfscvFwBlNJ6xLaBy4xqBXzlYV5w=
-github.com/shirou/gopsutil/v3 v3.22.1/go.mod h1:WapW1AOOPlHyXr+yOyw3uYx36enocrtSoSBy0L5vUHY=
+github.com/shirou/gopsutil/v3 v3.21.12 h1:VoGxEW2hpmz0Vt3wUvHIl9fquzYLNpVpgNNB7pGJimA=
+github.com/shirou/gopsutil/v3 v3.21.12/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA=
 github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
 github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
@@ -1134,8 +1132,11 @@ github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17
 github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
 github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
 github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
+github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=
 github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
+github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
+github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f h1:mvXjJIHRZyhNuGassLTcXTwjiWq7NmjdavZsUnmFybQ=
 github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
@@ -1494,13 +1495,12 @@ golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1643,8 +1643,8 @@ google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3h
 google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw=
 google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
 google.golang.org/api v0.64.0/go.mod h1:931CdxA8Rm4t6zqTFGSsgwbAEZ2+GMYurbndwSimebM=
-google.golang.org/api v0.66.0 h1:CbGy4LEiXCVCiNEDFgGpWOVwsDT7E2Qej1ZvN1P7KPg=
-google.golang.org/api v0.66.0/go.mod h1:I1dmXYpX7HGwz/ejRxwQp2qj5bFAz93HiCU1C1oYd9M=
+google.golang.org/api v0.65.0 h1:MTW9c+LIBAbwoS1Gb+YV7NjFBt2f7GtAS5hIzh2NjgQ=
+google.golang.org/api v0.65.0/go.mod h1:ArYhxgGadlWmqO1IqVujw6Cs8IdD33bTmzKo2Sh+cbg=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -1729,10 +1729,10 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6
 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
 google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
 google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
 google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20220114231437-d2e6a121cae0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44 h1:0UVUC7VWA/mIU+5a4hVWH6xa234gLcRX8ZcrFKmWWKA=
-google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 h1:zzNejm+EgrbLfDZ6lu9Uud2IVvHySPl8vQzf04laR5Q=
+google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
 google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
diff --git a/hack/jenkins/release_update_releases_json.go b/hack/jenkins/release_update_releases_json.go
index 577ec0337..c2ccd6f50 100644
--- a/hack/jenkins/release_update_releases_json.go
+++ b/hack/jenkins/release_update_releases_json.go
@@ -53,43 +53,29 @@ func (r *releases) UnmarshalJSON(p []byte) error {
 }
 
 func main() {
-	legacy := flag.Bool("legacy", false, "Updated the releases file using the legacy format")
 	releasesFile := flag.String("releases-file", "", "The path to the releases file")
 	version := flag.String("version", "", "The version of minikube to create the entry for")
 	flag.Parse()
 
 	if *releasesFile == "" || *version == "" {
-		fmt.Println("The releases-file & version flags are required and cannot be empty")
+		fmt.Println("All flags are required and cannot be empty")
 		flag.PrintDefaults()
 		os.Exit(1)
 	}
 
-	if *legacy {
-		if err := updateReleasesLegacy(*releasesFile, *version); err != nil {
-			log.Fatal(err)
-		}
-		return
-	}
-
-	if err := updateReleases(*releasesFile, *version); err != nil {
-		log.Fatal(err)
-	}
-}
-
-func updateReleases(releasesFile, version string) error {
-	r, err := getReleases(releasesFile)
+	r, err := getReleases(*releasesFile)
 	if err != nil {
-		return err
+		log.Fatal(err)
 	}
 
-	e := createBareRelease(version)
+	e := createBareRelease(*version)
 
 	shaMap := getSHAMap(&e.Checksums)
 	for os, archs := range shaMap {
 		for arch, sumVars := range archs {
 			sha, err := getSHA(os, arch)
 			if err != nil {
-				return err
+				log.Fatal(err)
 			}
 			for _, sumVar := range sumVars {
 				*sumVar = sha
@@ -100,10 +86,9 @@ func updateReleases(releasesFile, version string) error {
 
 	r.Releases = append([]release{e}, r.Releases...)
 
-	if err := updateJSON(releasesFile, r); err != nil {
-		return err
+	if err := updateJSON(*releasesFile, r); err != nil {
+		log.Fatal(err)
 	}
-	return nil
 }
 
 func getReleases(path string) (releases, error) {
@@ -177,94 +162,3 @@ func updateJSON(path string, r releases) error {
 	}
 	return nil
 }
-
-type releaseLegacy struct {
-	Checksums *operatingSystems `json:"checksums,omitempty"`
-	Name      string            `json:"name"`
-}
-
-type releasesLegacy struct {
-	Releases []releaseLegacy
-}
-
-func (r *releasesLegacy) UnmarshalJSON(p []byte) error {
-	return json.Unmarshal(p, &r.Releases)
-}
-
-func updateReleasesLegacy(releasesFile, version string) error {
-	r, err := getReleasesLegacy(releasesFile)
-	if err != nil {
-		return err
-	}
-
-	e := createBareReleaseLegacy(version)
-
-	shaMap := getSHAMapLegacy(e.Checksums)
-	for os, archs := range shaMap {
-		for arch, sumVars := range archs {
-			sha, err := getSHA(os, arch)
-			if err != nil {
-				return err
-			}
-			for _, sumVar := range sumVars {
-				*sumVar = sha
-			}
-
-		}
-	}
-
-	r.Releases = append([]releaseLegacy{e}, r.Releases...)
-
-	if err := updateJSONLegacy(releasesFile, r); err != nil {
-		return err
-	}
-	return nil
-}
-
-func getReleasesLegacy(path string) (releasesLegacy, error) {
-	r := releasesLegacy{}
-
-	b, err := os.ReadFile(path)
-	if err != nil {
-		return r, fmt.Errorf("failed to read in releases file %q: %v", path, err)
-	}
-
-	if err := json.Unmarshal(b, &r); err != nil {
-		return r, fmt.Errorf("failed to unmarshal releases file: %v", err)
-	}
-
-	return r, nil
-}
-
-func createBareReleaseLegacy(name string) releaseLegacy {
-	return releaseLegacy{
-		Checksums: &operatingSystems{},
-		Name:      name,
-	}
-}
-
-func getSHAMapLegacy(c *operatingSystems) map[string]map[string][]*string {
-	return map[string]map[string][]*string{
-		"darwin": {
-			"amd64": {&c.Darwin},
-		},
-		"linux": {
-			"amd64": {&c.Linux},
-		},
-		"windows": {
-			"amd64": {&c.Windows},
-		},
-	}
-}
-
-func updateJSONLegacy(path string, r releasesLegacy) error {
-	b, err := json.MarshalIndent(r.Releases, "", "    ")
-	if err != nil {
-		return fmt.Errorf("failed to marshal releases to JSON: %v", err)
-	}
-
-	if err := os.WriteFile(path, b, 0644); err != nil {
-		return fmt.Errorf("failed to write JSON to file: %v", err)
-	}
-	return nil
-}
diff --git a/hack/jenkins/release_update_releases_json.sh b/hack/jenkins/release_update_releases_json.sh
index ea17bd31f..a8fc98d0d 100755
--- a/hack/jenkins/release_update_releases_json.sh
+++ b/hack/jenkins/release_update_releases_json.sh
@@ -40,37 +40,33 @@ git checkout -b "jenkins-releases.json-${TAGNAME}"
 git status
 
 if ! [[ "${VERSION_BUILD}" =~ ^[0-9]+$ ]]; then
-  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases-beta.json --version "$TAGNAME" --legacy
-  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases-beta-v2.json --version "$TAGNAME"
+  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases-beta.json --version "$TAGNAME"
 
   git add -A
-  git commit -m "Update releases-beta.json & releases-beta-v2.json to include ${TAGNAME}"
+  git commit -m "Update releases-beta.json to include ${TAGNAME}"
   git remote add minikube-bot git@github.com:minikube-bot/minikube.git
   git push -f minikube-bot jenkins-releases.json-${TAGNAME}
 
   # Send PR from minikube-bot/minikube to kubernetes/minikube
-  curl -X POST -u minikube-bot:${BOT_PASSWORD} -k   -d "{\"title\": \"update releases-beta.json & releases-beta-v2.json to include ${TAGNAME}\",\"head\": \"minikube-bot:jenkins-releases.json-${TAGNAME}\",\"base\": \"master\"}" https://api.github.com/repos/kubernetes/minikube/pulls
+  curl -X POST -u minikube-bot:${BOT_PASSWORD} -k   -d "{\"title\": \"update releases-beta.json to include ${TAGNAME}\",\"head\": \"minikube-bot:jenkins-releases.json-${TAGNAME}\",\"base\": \"master\"}" https://api.github.com/repos/kubernetes/minikube/pulls
 
   # Upload file to GCS so that minikube can see the new version
   gsutil cp deploy/minikube/releases-beta.json gs://minikube/releases-beta.json
-  gsutil cp deploy/minikube/releases-beta-v2.json gs://minikube/releases-beta-v2.json
 else
-  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases.json --version "$TAGNAME" --legacy
-  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases-v2.json --version "$TAGNAME"
+  go run "${DIR}/release_update_releases_json.go" --releases-file deploy/minikube/releases.json --version "$TAGNAME"
 
   #Update the front page of our documentation
   now=$(date +"%b %d, %Y")
   sed -i "s/Latest Release: .* (/Latest Release: ${TAGNAME} - ${now} (/" site/content/en/docs/_index.md
 
   git add -A
-  git commit -m "Update releases.json & releases-v2.json to include ${TAGNAME}"
+  git commit -m "Update releases.json to include ${TAGNAME}"
   git remote add minikube-bot git@github.com:minikube-bot/minikube.git
   git push -f minikube-bot jenkins-releases.json-${TAGNAME}
 
   # Send PR from minikube-bot/minikube to kubernetes/minikube
-  curl -X POST -u minikube-bot:${BOT_PASSWORD} -k   -d "{\"title\": \"update releases.json & releases-v2.json to include ${TAGNAME}\",\"head\": \"minikube-bot:jenkins-releases.json-${TAGNAME}\",\"base\": \"master\"}" https://api.github.com/repos/kubernetes/minikube/pulls
+  curl -X POST -u minikube-bot:${BOT_PASSWORD} -k   -d "{\"title\": \"update releases.json to include ${TAGNAME}\",\"head\": \"minikube-bot:jenkins-releases.json-${TAGNAME}\",\"base\": \"master\"}" https://api.github.com/repos/kubernetes/minikube/pulls
 
   # Upload file to GCS so that minikube can see the new version
   gsutil cp deploy/minikube/releases.json gs://minikube/releases.json
-  gsutil cp deploy/minikube/releases-v2.json gs://minikube/releases-v2.json
 fi
diff --git a/pkg/drivers/kic/kic.go b/pkg/drivers/kic/kic.go
index c0f94908b..90c1e2e44 100644
--- a/pkg/drivers/kic/kic.go
+++ b/pkg/drivers/kic/kic.go
@@ -158,7 +158,7 @@ func (d *Driver) Create() error {
 		} else {
 			// The conflicting container name was not created by minikube
 			// user has a container that conflicts with minikube profile name, will not delete users container.
-			return errors.Wrapf(err, "user has a conflicting container name %q with minikube container. Needs to be deleted by user's consent", params.Name)
+			return errors.Wrapf(err, "user has a conflicting container name %q with minikube container. Needs to be deleted by user's consent.", params.Name)
 		}
 	}
 
diff --git a/pkg/drivers/kic/oci/oci.go b/pkg/drivers/kic/oci/oci.go
index 5f5a84ce8..bde043037 100644
--- a/pkg/drivers/kic/oci/oci.go
+++ b/pkg/drivers/kic/oci/oci.go
@@ -58,8 +58,8 @@ func DeleteContainersByLabel(ociBin string, label string) []error {
 		// only try to delete if docker/podman inspect returns
 		// if it doesn't it means docker daemon is stuck and needs restart
 		if err != nil {
-			deleteErrs = append(deleteErrs, errors.Wrapf(err, "delete container %s: %s daemon is stuck. please try again", c, ociBin))
-			klog.Errorf("%s daemon seems to be stuck. please try restarting your %s :%v", ociBin, ociBin, err)
+			deleteErrs = append(deleteErrs, errors.Wrapf(err, "delete container %s: %s daemon is stuck. please try again!", c, ociBin))
+			klog.Errorf("%s daemon seems to be stuck. Please try restarting your %s. :%v", ociBin, ociBin, err)
 			continue
 		}
 		if err := ShutDown(ociBin, c); err != nil {
diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go
index a4b4d3e62..ff6406c17 100644
--- a/pkg/drivers/kic/types.go
+++ b/pkg/drivers/kic/types.go
@@ -24,13 +24,13 @@ import (
 
 const (
 	// Version is the current version of kic
-	Version = "v0.0.29-1644344181-13531"
+	Version = "v0.0.29"
 	// SHA of the kic base image
-	baseImageSHA = "02c921df998f95e849058af14de7045efc3954d90320967418a0d1f182bbc0b2"
+	baseImageSHA = "be897edc9ed473a9678010f390a0092f488f6a1c30865f571c3b6388f9f56f9b"
 	// The name of the GCR kicbase repository
-	gcrRepo = "gcr.io/k8s-minikube/kicbase-builds"
+	gcrRepo = "gcr.io/k8s-minikube/kicbase"
 	// The name of the Dockerhub kicbase repository
-	dockerhubRepo = "docker.io/kicbase/build"
+	dockerhubRepo = "docker.io/kicbase/stable"
 )
 
 var (
diff --git a/pkg/drivers/kvm/domain.go b/pkg/drivers/kvm/domain.go
index 360ae038a..31e68b9b4 100644
--- a/pkg/drivers/kvm/domain.go
+++ b/pkg/drivers/kvm/domain.go
@@ -46,7 +46,7 @@ func (d *Driver) getDomain() (*libvirt.Domain, *libvirt.Connect, error) {
 func getConnection(connectionURI string) (*libvirt.Connect, error) {
 	conn, err := libvirt.NewConnect(connectionURI)
 	if err != nil {
-		return nil, errors.Wrap(err, "connecting to libvirt socket")
+		return nil, errors.Wrap(err, "error connecting to libvirt socket.")
 	}
 
 	return conn, nil
diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go
index 172be0426..40464b973 100755
--- a/pkg/minikube/assets/addons.go
+++ b/pkg/minikube/assets/addons.go
@@ -238,11 +238,11 @@ var Addons = map[string]*Addon{
 			"ingress-deploy.yaml",
 			"0640"),
 	}, false, "ingress", "", map[string]string{
-		// https://github.com/kubernetes/ingress-nginx/blob/fc38b9f2aa2d68ee00c417cf97e727b77a00c175/deploy/static/provider/kind/deploy.yaml#L331
-		"IngressController": "ingress-nginx/controller:v1.1.1@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de",
-		// https://github.com/kubernetes/ingress-nginx/blob/fc38b9f2aa2d68ee00c417cf97e727b77a00c175/deploy/static/provider/kind/deploy.yaml#L621
+		// https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L330
+		"IngressController": "ingress-nginx/controller:v1.1.0@sha256:f766669fdcf3dc26347ed273a55e754b427eb4411ee075a53f30718b4499076a",
+		// https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L620
 		"KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660",
-		// https://github.com/kubernetes/ingress-nginx/blob/fc38b9f2aa2d68ee00c417cf97e727b77a00c175/deploy/static/provider/kind/deploy.yaml#L673
+		// https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L670
 		"KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660",
 	}, map[string]string{
 		"IngressController": "k8s.gcr.io",
diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
index 820627aee..ee9a77fe1 100644
--- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
+++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go
@@ -715,11 +715,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error {
 
 	// This can fail during upgrades if the old pods have not shut down yet
 	addonPhase := func() error {
-		addons := "all"
-		if cfg.KubernetesConfig.ExtraOptions.Exists("kubeadm.skip-phases=addon/kube-proxy") {
-			addons = "coredns"
-		}
-		_, err := k.c.RunCmd(exec.Command("/bin/bash", "-c", fmt.Sprintf("%s phase addon %s --config %s", baseCmd, addons, conf)))
+		_, err := k.c.RunCmd(exec.Command("/bin/bash", "-c", fmt.Sprintf("%s phase addon all --config %s", baseCmd, conf)))
 		return err
 	}
 	if err = retry.Expo(addonPhase, 100*time.Microsecond, 30*time.Second); err != nil {
@@ -979,7 +975,6 @@ func kubectlPath(cfg config.ClusterConfig) string {
 }
 
 // applyNodeLabels applies minikube labels to all the nodes
-// but it's currently called only from kubeadm.StartCluster (via kubeadm.init) where there's only one - first node
 func (k *Bootstrapper) applyNodeLabels(cfg config.ClusterConfig) error {
 	// time cluster was created. time format is based on ISO 8601 (RFC 3339)
 	// converting - and : to _ because of Kubernetes label restriction
@@ -988,19 +983,12 @@ func (k *Bootstrapper) applyNodeLabels(cfg config.ClusterConfig) error {
 	commitLbl := "minikube.k8s.io/commit=" + version.GetGitCommitID()
 	nameLbl := "minikube.k8s.io/name=" + cfg.Name
 
-	// ensure that "primary" label is applied only to the 1st node in the cluster (used eg for placing ingress there)
-	// this is used to uniquely distinguish that from other nodes in multi-master/multi-control-plane cluster config
-	primaryLbl := "minikube.k8s.io/primary=false"
-	if len(cfg.Nodes) <= 1 {
-		primaryLbl = "minikube.k8s.io/primary=true"
-	}
-
 	ctx, cancel := context.WithTimeout(context.Background(), applyTimeoutSeconds*time.Second)
 	defer cancel()
 	// example:
 	// sudo /var/lib/minikube/binaries/<version>/kubectl label nodes minikube.k8s.io/version=<version> minikube.k8s.io/commit=aa91f39ffbcf27dcbb93c4ff3f457c54e585cf4a-dirty minikube.k8s.io/name=p1 minikube.k8s.io/updated_at=2020_02_20T12_05_35_0700 --all --overwrite --kubeconfig=/var/lib/minikube/kubeconfig
 	cmd := exec.CommandContext(ctx, "sudo", kubectlPath(cfg),
-		"label", "nodes", verLbl, commitLbl, nameLbl, createdAtLbl, primaryLbl, "--all", "--overwrite",
+		"label", "nodes", verLbl, commitLbl, nameLbl, createdAtLbl, "--all", "--overwrite",
 		fmt.Sprintf("--kubeconfig=%s", path.Join(vmpath.GuestPersistentDir, "kubeconfig")))
 
 	if _, err := k.c.RunCmd(cmd); err != nil {
diff --git a/pkg/minikube/cni/cni.go b/pkg/minikube/cni/cni.go
index e648a20e0..127afc8ef 100644
--- a/pkg/minikube/cni/cni.go
+++ b/pkg/minikube/cni/cni.go
@@ -155,7 +155,7 @@ func chooseDefault(cc config.ClusterConfig) Manager {
 		return KindNet{cc: cc}
 	}
 
-	if cc.KubernetesConfig.ContainerRuntime != constants.Docker {
+	if cc.KubernetesConfig.ContainerRuntime != "docker" {
 		if driver.IsKIC(cc.Driver) {
 			klog.Infof("%q driver + %s runtime found, recommending kindnet", cc.Driver, cc.KubernetesConfig.ContainerRuntime)
 			return KindNet{cc: cc}
diff --git a/pkg/minikube/cni/disabled.go b/pkg/minikube/cni/disabled.go
index 5c273ef12..0832798fc 100644
--- a/pkg/minikube/cni/disabled.go
+++ b/pkg/minikube/cni/disabled.go
@@ -19,7 +19,6 @@ package cni
 import (
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/pkg/minikube/config"
-	"k8s.io/minikube/pkg/minikube/constants"
 	"k8s.io/minikube/pkg/minikube/driver"
 )
 
@@ -35,7 +34,7 @@ func (c Disabled) String() string {
 
 // Apply enables the CNI
 func (c Disabled) Apply(r Runner) error {
-	if driver.IsKIC(c.cc.Driver) && c.cc.KubernetesConfig.ContainerRuntime != constants.Docker {
+	if driver.IsKIC(c.cc.Driver) && c.cc.KubernetesConfig.ContainerRuntime != "docker" {
 		klog.Warningf("CNI is recommended for %q driver and %q runtime - expect networking issues", c.cc.Driver, c.cc.KubernetesConfig.ContainerRuntime)
 	}
 
diff --git a/pkg/minikube/config/profile.go b/pkg/minikube/config/profile.go
index 55b163d80..155dd891b 100644
--- a/pkg/minikube/config/profile.go
+++ b/pkg/minikube/config/profile.go
@@ -63,7 +63,6 @@ func PrimaryControlPlane(cc *ClusterConfig) (Node, error) {
 		IP:                cc.KubernetesConfig.NodeIP,
 		Port:              cc.KubernetesConfig.NodePort,
 		KubernetesVersion: cc.KubernetesConfig.KubernetesVersion,
-		ContainerRuntime:  cc.KubernetesConfig.ContainerRuntime,
 		ControlPlane:      true,
 		Worker:            true,
 	}
diff --git a/pkg/minikube/config/types.go b/pkg/minikube/config/types.go
index 513a61ded..63822793c 100644
--- a/pkg/minikube/config/types.go
+++ b/pkg/minikube/config/types.go
@@ -136,7 +136,6 @@ type Node struct {
 	IP                string
 	Port              int
 	KubernetesVersion string
-	ContainerRuntime  string
 	ControlPlane      bool
 	Worker            bool
 }
diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go
index 2b6d14f29..7fd53a87e 100644
--- a/pkg/minikube/constants/constants.go
+++ b/pkg/minikube/constants/constants.go
@@ -34,10 +34,10 @@ var (
 const (
 	// DefaultKubernetesVersion is the default Kubernetes version
 	// dont update till #10545 is solved
-	DefaultKubernetesVersion = "v1.23.3"
+	DefaultKubernetesVersion = "v1.23.2"
 	// NewestKubernetesVersion is the newest Kubernetes version to test against
 	// NOTE: You may need to update coreDNS & etcd versions in pkg/minikube/bootstrapper/images/images.go
-	NewestKubernetesVersion = "v1.23.4-rc.0"
+	NewestKubernetesVersion = "v1.23.3-rc.0"
 	// OldestKubernetesVersion is the oldest Kubernetes version to test against
 	OldestKubernetesVersion = "v1.16.0"
 	// NoKubernetesVersion is the version used when users does NOT want to install kubernetes
@@ -60,10 +60,8 @@ const (
 	Containerd = "containerd"
 	// CRIO is the default name and spelling for the cri-o container runtime
 	CRIO = "crio"
-	// Docker is the default name and spelling for the docker container runtime
-	Docker = "docker"
 	// DefaultContainerRuntime is our default container runtime
-	DefaultContainerRuntime = ""
+	DefaultContainerRuntime = "docker"
 
 	// APIServerName is the default API server name
 	APIServerName = "minikubeCA"
diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go
index e8bb1567f..9cf694766 100644
--- a/pkg/minikube/cruntime/containerd.go
+++ b/pkg/minikube/cruntime/containerd.go
@@ -168,7 +168,7 @@ func (r *Containerd) Version() (string, error) {
 	c := exec.Command("containerd", "--version")
 	rr, err := r.Runner.RunCmd(c)
 	if err != nil {
-		return "", errors.Wrapf(err, "containerd check version")
+		return "", errors.Wrapf(err, "containerd check version.")
 	}
 	version, err := parseContainerdVersion(rr.Stdout.String())
 	if err != nil {
@@ -194,7 +194,7 @@ func (r *Containerd) Active() bool {
 func (r *Containerd) Available() error {
 	c := exec.Command("which", "containerd")
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "check containerd availability")
+		return errors.Wrap(err, "check containerd availability.")
 	}
 	return nil
 }
@@ -232,7 +232,7 @@ func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semve
 	}
 	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo mkdir -p %s && printf %%s \"%s\" | base64 -d | sudo tee %s", path.Dir(cPath), base64.StdEncoding.EncodeToString(b.Bytes()), cPath))
 	if _, err := cr.RunCmd(c); err != nil {
-		return errors.Wrap(err, "generate containerd cfg")
+		return errors.Wrap(err, "generate containerd cfg.")
 	}
 	return nil
 }
@@ -425,7 +425,7 @@ func (r *Containerd) BuildImage(src string, file string, tag string, push bool,
 	c.Stdout = os.Stdout
 	c.Stderr = os.Stderr
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "buildctl build")
+		return errors.Wrap(err, "buildctl build.")
 	}
 	return nil
 }
diff --git a/pkg/minikube/cruntime/crio.go b/pkg/minikube/cruntime/crio.go
index 9cbcc5238..85ea766b2 100644
--- a/pkg/minikube/cruntime/crio.go
+++ b/pkg/minikube/cruntime/crio.go
@@ -41,7 +41,7 @@ import (
 
 const (
 	// CRIOConfFile is the path to the CRI-O configuration
-	crioConfigFile = "/etc/crio/crio.conf.d/02-crio.conf"
+	crioConfigFile = "/etc/crio/crio.conf"
 )
 
 // CRIO contains CRIO runtime state
@@ -57,9 +57,9 @@ type CRIO struct {
 func generateCRIOConfig(cr CommandRunner, imageRepository string, kv semver.Version) error {
 	pauseImage := images.Pause(kv, imageRepository)
 
-	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo sed -e 's|^.*pause_image = .*$|pause_image = \"%s\"|' -i %s", pauseImage, crioConfigFile))
+	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo sed -e 's|^pause_image = .*$|pause_image = \"%s\"|' -i %s", pauseImage, crioConfigFile))
 	if _, err := cr.RunCmd(c); err != nil {
-		return errors.Wrap(err, "generateCRIOConfig")
+		return errors.Wrap(err, "generateCRIOConfig.")
 	}
 
 	if cni.Network != "" {
@@ -73,7 +73,8 @@ func generateCRIOConfig(cr CommandRunner, imageRepository string, kv semver.Vers
 }
 
 func (r *CRIO) forceSystemd() error {
-	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo sed -e 's|^.*cgroup_manager = .*$|cgroup_manager = \"systemd\"|' -i %s", crioConfigFile))
+	// remove `cgroup_manager` since cri-o defaults to `systemd` if nothing set
+	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo sed -e 's|^cgroup_manager = .*$||' -i %s", crioConfigFile))
 	if _, err := r.Runner.RunCmd(c); err != nil {
 		return errors.Wrap(err, "force systemd")
 	}
@@ -96,7 +97,7 @@ func (r *CRIO) Version() (string, error) {
 	c := exec.Command("crio", "--version")
 	rr, err := r.Runner.RunCmd(c)
 	if err != nil {
-		return "", errors.Wrap(err, "crio version")
+		return "", errors.Wrap(err, "crio version.")
 	}
 
 	// crio version 1.13.0
@@ -117,7 +118,7 @@ func (r *CRIO) SocketPath() string {
 func (r *CRIO) Available() error {
 	c := exec.Command("which", "crio")
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrapf(err, "check crio available")
+		return errors.Wrapf(err, "check crio available.")
 	}
 	return nil
 }
diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go
index b7745ee3d..fc23019c3 100644
--- a/pkg/minikube/cruntime/docker.go
+++ b/pkg/minikube/cruntime/docker.go
@@ -254,7 +254,7 @@ func (r *Docker) LoadImage(path string) error {
 	klog.Infof("Loading image: %s", path)
 	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo cat %s | docker load", path))
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "loadimage docker")
+		return errors.Wrap(err, "loadimage docker.")
 	}
 	return nil
 }
@@ -267,7 +267,7 @@ func (r *Docker) PullImage(name string) error {
 	}
 	c := exec.Command("docker", "pull", name)
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "pull image docker")
+		return errors.Wrap(err, "pull image docker.")
 	}
 	return nil
 }
@@ -277,7 +277,7 @@ func (r *Docker) SaveImage(name string, path string) error {
 	klog.Infof("Saving image %s: %s", name, path)
 	c := exec.Command("/bin/bash", "-c", fmt.Sprintf("docker save '%s' | sudo tee %s >/dev/null", name, path))
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "saveimage docker")
+		return errors.Wrap(err, "saveimage docker.")
 	}
 	return nil
 }
@@ -290,7 +290,7 @@ func (r *Docker) RemoveImage(name string) error {
 	}
 	c := exec.Command("docker", "rmi", name)
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "remove image docker")
+		return errors.Wrap(err, "remove image docker.")
 	}
 	return nil
 }
@@ -300,7 +300,7 @@ func (r *Docker) TagImage(source string, target string) error {
 	klog.Infof("Tagging image %s: %s", source, target)
 	c := exec.Command("docker", "tag", source, target)
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "tag image docker")
+		return errors.Wrap(err, "tag image docker.")
 	}
 	return nil
 }
@@ -326,14 +326,14 @@ func (r *Docker) BuildImage(src string, file string, tag string, push bool, env
 	c.Stdout = os.Stdout
 	c.Stderr = os.Stderr
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "buildimage docker")
+		return errors.Wrap(err, "buildimage docker.")
 	}
 	if tag != "" && push {
 		c := exec.Command("docker", "push", tag)
 		c.Stdout = os.Stdout
 		c.Stderr = os.Stderr
 		if _, err := r.Runner.RunCmd(c); err != nil {
-			return errors.Wrap(err, "pushimage docker")
+			return errors.Wrap(err, "pushimage docker.")
 		}
 	}
 	return nil
@@ -344,7 +344,7 @@ func (r *Docker) PushImage(name string) error {
 	klog.Infof("Pushing image: %s", name)
 	c := exec.Command("docker", "push", name)
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "push image docker")
+		return errors.Wrap(err, "push image docker.")
 	}
 	return nil
 }
@@ -422,7 +422,7 @@ func (r *Docker) KillContainers(ids []string) error {
 	args := append([]string{"rm", "-f"}, ids...)
 	c := exec.Command("docker", args...)
 	if _, err := r.Runner.RunCmd(c); err != nil {
-		return errors.Wrap(err, "killing containers docker")
+		return errors.Wrap(err, "Killing containers docker.")
 	}
 	return nil
 }
diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go
index 386ec54c6..08f4042ba 100644
--- a/pkg/minikube/download/iso.go
+++ b/pkg/minikube/download/iso.go
@@ -40,7 +40,7 @@ const fileScheme = "file"
 // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order
 func DefaultISOURLs() []string {
 	v := version.GetISOVersion()
-	isoBucket := "minikube-builds/iso/13531"
+	isoBucket := "minikube/iso"
 	return []string{
 		fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", isoBucket, v),
 		fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s.iso", v, v),
diff --git a/pkg/minikube/extract/extract.go b/pkg/minikube/extract/extract.go
index 7c3c1e96f..3c0d1caf4 100644
--- a/pkg/minikube/extract/extract.go
+++ b/pkg/minikube/extract/extract.go
@@ -48,11 +48,6 @@ var exclude = []string{
 	"    - {{.profile}}",
 	"test/integration",
 	"pkg/minikube/reason/exitcodes.go",
-	"{{.err}}",
-	"{{.extra_option_component_name}}.{{.key}}={{.value}}",
-	"{{ .name }}: {{ .rejection }}",
-	"127.0.0.1",
-	"- {{.logPath}}",
 }
 
 // ErrMapFile is a constant to refer to the err_map file, which contains the Advice strings.
diff --git a/pkg/minikube/machine/fix.go b/pkg/minikube/machine/fix.go
index 20cd80175..dcd3d74a1 100644
--- a/pkg/minikube/machine/fix.go
+++ b/pkg/minikube/machine/fix.go
@@ -59,7 +59,7 @@ func fixHost(api libmachine.API, cc *config.ClusterConfig, n *config.Node) (*hos
 
 	h, err := api.Load(config.MachineName(*cc, *n))
 	if err != nil {
-		return h, errors.Wrap(err, "error loading existing host. Please try running [minikube delete], then run [minikube start] again")
+		return h, errors.Wrap(err, "Error loading existing host. Please try running [minikube delete], then run [minikube start] again.")
 	}
 	defer postStartValidations(h, cc.Driver)
 
diff --git a/pkg/minikube/notify/constants.go b/pkg/minikube/notify/constants.go
index a7bfbc798..c1af50e86 100644
--- a/pkg/minikube/notify/constants.go
+++ b/pkg/minikube/notify/constants.go
@@ -18,9 +18,9 @@ package notify
 
 const (
 	// GithubMinikubeReleasesURL is the URL of the minikube github releases JSON file
-	GithubMinikubeReleasesURL = "https://storage.googleapis.com/minikube/releases-v2.json"
+	GithubMinikubeReleasesURL = "https://storage.googleapis.com/minikube/releases.json"
 	// GithubMinikubeBetaReleasesURL is the URL of the minikube Github beta releases JSON file
-	GithubMinikubeBetaReleasesURL = "https://storage.googleapis.com/minikube/releases-beta-v2.json"
+	GithubMinikubeBetaReleasesURL = "https://storage.googleapis.com/minikube/releases-beta.json"
 
 	// GithubMinikubeReleasesAliyunURL is the URL of the minikube github releases JSON file from Aliyun Mirror
 	GithubMinikubeReleasesAliyunURL = "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases.json"
diff --git a/pkg/minikube/notify/notify.go b/pkg/minikube/notify/notify.go
index f3a891259..9c8e3aaae 100644
--- a/pkg/minikube/notify/notify.go
+++ b/pkg/minikube/notify/notify.go
@@ -130,33 +130,14 @@ func shouldCheckURLBetaVersion(filePath string) bool {
 	return shouldCheckURLVersion(filePath)
 }
 
-type operatingSystems struct {
-	Darwin  string `json:"darwin,omitempty"`
-	Linux   string `json:"linux,omitempty"`
-	Windows string `json:"windows,omitempty"`
-}
-
-type checksums struct {
-	AMD64   *operatingSystems `json:"amd64,omitempty"`
-	ARM     *operatingSystems `json:"arm,omitempty"`
-	ARM64   *operatingSystems `json:"arm64,omitempty"`
-	PPC64LE *operatingSystems `json:"ppc64le,omitempty"`
-	S390X   *operatingSystems `json:"s390x,omitempty"`
-	operatingSystems
-}
-
+// Release represents a release
 type Release struct {
-	Checksums checksums `json:"checksums"`
-	Name      string    `json:"name"`
+	Name      string
+	Checksums map[string]string
 }
 
-type Releases struct {
-	Releases []Release
-}
-
-func (r *Releases) UnmarshalJSON(p []byte) error {
-	return json.Unmarshal(p, &r.Releases)
-}
+// Releases represents several release
+type Releases []Release
 
 func getJSON(url string, target *Releases) error {
 	client := &http.Client{}
@@ -184,7 +165,7 @@ var latestVersionFromURL = func(url string) (semver.Version, error) {
 	if err != nil {
 		return semver.Version{}, err
 	}
-	return semver.Make(strings.TrimPrefix(r.Releases[0].Name, version.VersionPrefix))
+	return semver.Make(strings.TrimPrefix(r[0].Name, version.VersionPrefix))
 }
 
 // AllVersionsFromURL get all versions from a JSON URL
@@ -194,7 +175,7 @@ func AllVersionsFromURL(url string) (Releases, error) {
 	if err := getJSON(url, &releases); err != nil {
 		return releases, errors.Wrap(err, "Error getting json from minikube version url")
 	}
-	if len(releases.Releases) == 0 {
+	if len(releases) == 0 {
 		return releases, errors.Errorf("There were no json releases at the url specified: %s", url)
 	}
 	return releases, nil
diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go
index b2fece017..a15710837 100644
--- a/pkg/minikube/reason/reason.go
+++ b/pkg/minikube/reason/reason.go
@@ -436,8 +436,6 @@ var (
 	KubernetesInstallFailedRuntimeNotRunning = Kind{ID: "K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING", ExitCode: ExRuntimeNotRunning}
 	// an outdated Kubernetes version was specified for minikube to use
 	KubernetesTooOld = Kind{ID: "K8S_OLD_UNSUPPORTED", ExitCode: ExControlPlaneUnsupported}
-	// a too new Kubernetes version was specified for minikube to use
-	KubernetesTooNew = Kind{ID: "K8S_NEW_UNSUPPORTED", ExitCode: ExControlPlaneUnsupported}
 	// minikube was unable to safely downgrade installed Kubernetes version
 	KubernetesDowngrade = Kind{
 		ID:       "K8S_DOWNGRADE_UNSUPPORTED",
diff --git a/pkg/minikube/registry/drvs/virtualbox/virtualbox.go b/pkg/minikube/registry/drvs/virtualbox/virtualbox.go
index 8f275a51e..ba5e68106 100644
--- a/pkg/minikube/registry/drvs/virtualbox/virtualbox.go
+++ b/pkg/minikube/registry/drvs/virtualbox/virtualbox.go
@@ -20,7 +20,6 @@ import (
 	"context"
 	"fmt"
 	"os/exec"
-	"strconv"
 	"strings"
 	"time"
 
@@ -32,13 +31,11 @@ import (
 	"k8s.io/minikube/pkg/minikube/download"
 	"k8s.io/minikube/pkg/minikube/driver"
 	"k8s.io/minikube/pkg/minikube/localpath"
-	"k8s.io/minikube/pkg/minikube/out"
 	"k8s.io/minikube/pkg/minikube/registry"
 )
 
 const (
-	docURL                    = "https://minikube.sigs.k8s.io/docs/reference/drivers/virtualbox/"
-	vboxSupportedMajorVersion = 5
+	docURL = "https://minikube.sigs.k8s.io/docs/reference/drivers/virtualbox/"
 )
 
 func init() {
@@ -88,52 +85,31 @@ func status() registry.State {
 	ctx, cancel := context.WithTimeout(context.Background(), 4*time.Second)
 	defer cancel()
 
-	version := ""
-	cmd := exec.CommandContext(ctx, path, "--version")
-	stdout, verr := cmd.Output()
+	cmd := exec.CommandContext(ctx, path, "list", "hostinfo")
+	err = cmd.Run()
+
 	// Basic timeout
 	if ctx.Err() == context.DeadlineExceeded {
 		klog.Warningf("%q timed out. ", strings.Join(cmd.Args, " "))
 		return registry.State{Error: err, Installed: true, Running: false, Healthy: false, Fix: "Restart VirtualBox", Doc: docURL}
 	}
 
-	if verr != nil {
-		klog.Warningf("unable to get virtualbox version, returned: %v", err)
+	if exitErr, ok := err.(*exec.ExitError); ok {
+		stderr := strings.TrimSpace(string(exitErr.Stderr))
 		return registry.State{
 			Installed: true,
-			Error:     fmt.Errorf(`%q returned: %v`, strings.Join(cmd.Args, " "), err),
+			Error:     fmt.Errorf(`%q returned: %v: %s`, strings.Join(cmd.Args, " "), exitErr, stderr),
 			Fix:       "Restart VirtualBox, or upgrade to the latest version of VirtualBox",
 			Doc:       docURL,
 		}
 	}
 
-	version = string(stdout)
-	// some warnings related to VirtualBox configs are always printed along with version string
-	// ex:
-	// WARNING: The character device /dev/vboxdrv does not exist.
-	// Please install the virtualbox-dkms package and the appropriate
-	// headers, most likely linux-headers-generic.
-	// You will not be able to start VMs until this problem is fixed.
-	// 6.1.26_Ubuntur145957
-	tempSlice := strings.Split(version, "\n")
-	if len(tempSlice) > 2 {
+	if err != nil {
 		return registry.State{
 			Installed: true,
-			Error:     fmt.Errorf(`warning from virtualbox %s`, version),
-			Fix:       "Read the docs for resolution",
-			Doc:       docURL,
+			Error:     fmt.Errorf("%s failed: %v", strings.Join(cmd.Args, " "), err),
 		}
 	}
 
-	majorVers := (strings.Split(version, "."))[0]
-	majorVersInt, cerr := strconv.Atoi(majorVers)
-	if cerr != nil {
-		klog.Warningf("unable to convert major version: %s of vbox to an int %v", majorVers, cerr)
-	} else if majorVersInt < vboxSupportedMajorVersion {
-		out.WarningT("Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}", out.V{"vers": vboxSupportedMajorVersion, "cvers": majorVersInt})
-	}
-
-	klog.Infof("virtual box version: %s", version)
-
-	return registry.State{Installed: true, Healthy: true, Version: version}
+	return registry.State{Installed: true, Healthy: true}
 }
diff --git a/pkg/minikube/registry/registry.go b/pkg/minikube/registry/registry.go
index 3174c0370..3deb18e12 100644
--- a/pkg/minikube/registry/registry.go
+++ b/pkg/minikube/registry/registry.go
@@ -80,10 +80,9 @@ type State struct {
 	NeedsImprovement bool // healthy but could be improved
 	Error            error
 
-	Reason  string // A reason ID, propagated to reason.Kind.ID
-	Fix     string
-	Doc     string
-	Version string // Provider version
+	Reason string // A reason ID, propagated to reason.Kind.ID
+	Fix    string
+	Doc    string
 }
 
 // DriverDef defines how to initialize and load a machine driver
diff --git a/pkg/minikube/tunnel/kic/service_tunnel.go b/pkg/minikube/tunnel/kic/service_tunnel.go
index e48cc2de5..65eb8d194 100644
--- a/pkg/minikube/tunnel/kic/service_tunnel.go
+++ b/pkg/minikube/tunnel/kic/service_tunnel.go
@@ -73,11 +73,9 @@ func (t *ServiceTunnel) Start(svcName, namespace string) ([]string, error) {
 }
 
 // Stop ...
-func (t *ServiceTunnel) Stop() error {
+func (t *ServiceTunnel) Stop() {
 	err := t.sshConn.stop()
 	if err != nil {
-		return errors.Wrap(err, "stopping ssh tunnel")
+		klog.Warningf("Failed to stop ssh tunnel", err)
 	}
-
-	return nil
 }
diff --git a/pkg/minikube/tunnel/kic/ssh_conn.go b/pkg/minikube/tunnel/kic/ssh_conn.go
index 2dc1c2131..60e6dcd4d 100644
--- a/pkg/minikube/tunnel/kic/ssh_conn.go
+++ b/pkg/minikube/tunnel/kic/ssh_conn.go
@@ -18,6 +18,7 @@ package kic
 
 import (
 	"fmt"
+	"os"
 	"os/exec"
 	"runtime"
 
@@ -159,7 +160,12 @@ func (c *sshConn) stop() error {
 	if c.activeConn {
 		c.activeConn = false
 		out.Step(style.Stopping, "Stopping tunnel for service {{.service}}.", out.V{"service": c.service})
-		return c.cmd.Process.Kill()
+		err := c.cmd.Process.Kill()
+		if err == os.ErrProcessDone {
+			// No need to return an error here
+			return nil
+		}
+		return err
 	}
 	out.Step(style.Stopping, "Stopped tunnel for service {{.service}}.", out.V{"service": c.service})
 	return nil
diff --git a/site/content/en/docs/commands/image.md b/site/content/en/docs/commands/image.md
index 68486bf39..36893944b 100644
--- a/site/content/en/docs/commands/image.md
+++ b/site/content/en/docs/commands/image.md
@@ -124,11 +124,11 @@ minikube image help [command] [flags]
 
 ## minikube image load
 
-Load an image into minikube
+Load a image into minikube
 
 ### Synopsis
 
-Load an image into minikube
+Load a image into minikube
 
 ```shell
 minikube image load IMAGE | ARCHIVE | - [flags]
diff --git a/site/content/en/docs/commands/service.md b/site/content/en/docs/commands/service.md
index 8de8c06a0..9741425b8 100644
--- a/site/content/en/docs/commands/service.md
+++ b/site/content/en/docs/commands/service.md
@@ -20,6 +20,7 @@ minikube service [flags] SERVICE
 ### Options
 
 ```
+      --all                Prints URL and port-forwards (if needed) all services in a namespace
       --format string      Format to output service URL in. This format will be applied to each url individually and they will be printed one at a time. (default "http://{{.IP}}:{{.Port}}")
       --https              Open the service URL with https instead of http (defaults to "false")
       --interval int       The initial time interval for each check that wait performs in seconds (default 1)
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index 495449d9b..75476d07e 100644
--- a/site/content/en/docs/commands/start.md
+++ b/site/content/en/docs/commands/start.md
@@ -26,12 +26,12 @@ minikube start [flags]
       --apiserver-names strings           A set of apiserver names which are used in the generated certificate for kubernetes.  This can be used if you want to make the apiserver available from outside the machine
       --apiserver-port int                The apiserver listening port (default 8443)
       --auto-update-drivers               If set, automatically updates drivers to the latest version. Defaults to true. (default true)
-      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.29-1644344181-13531@sha256:02c921df998f95e849058af14de7045efc3954d90320967418a0d1f182bbc0b2")
+      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase:v0.0.29@sha256:be897edc9ed473a9678010f390a0092f488f6a1c30865f571c3b6388f9f56f9b")
       --binary-mirror string              Location to fetch kubectl, kubelet, & kubeadm binaries from.
       --cache-images                      If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true)
       --cert-expiration duration          Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s)
       --cni string                        CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)
-      --container-runtime string          The container runtime to be used. Valid options: docker, cri-o, containerd (default: auto)
+      --container-runtime string          The container runtime to be used (docker, cri-o, containerd). (default "docker")
       --cpus string                       Number of CPUs allocated to Kubernetes. Use "max" to use the maximum number of CPUs. (default "2")
       --cri-socket string                 The cri socket path to be used.
       --delete-on-failure                 If set, delete the current cluster if start fails and try again. Defaults to false.
@@ -68,9 +68,9 @@ minikube start [flags]
       --insecure-registry strings         Insecure Docker registries to pass to the Docker daemon.  The default service CIDR range will automatically be added.
       --install-addons                    If set, install addons. Defaults to true. (default true)
       --interactive                       Allow user prompts for more information (default true)
-      --iso-url strings                   Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/13531/minikube-v1.25.0-1644344644-13531.iso,https://github.com/kubernetes/minikube/releases/download/v1.25.0-1644344644-13531/minikube-v1.25.0-1644344644-13531.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.25.0-1644344644-13531.iso])
+      --iso-url strings                   Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.25.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.25.0/minikube-v1.25.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.25.0.iso])
       --keep-context                      This will keep the existing kubectl context and will create a minikube context.
-      --kubernetes-version string         The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.23.3, 'latest' for v1.23.4-rc.0). Defaults to 'stable'.
+      --kubernetes-version string         The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.23.2, 'latest' for v1.23.3-rc.0). Defaults to 'stable'.
       --kvm-gpu                           Enable experimental NVIDIA GPU support in minikube
       --kvm-hidden                        Hide the hypervisor signature from the guest in minikube (kvm2 driver only)
       --kvm-network string                The KVM default network name. (kvm2 driver only) (default "default")
diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md
index b6ab67ce8..4b26b4a3c 100644
--- a/site/content/en/docs/contrib/errorcodes.en.md
+++ b/site/content/en/docs/contrib/errorcodes.en.md
@@ -537,9 +537,6 @@ minikube failed to update the Kubernetes cluster because the container runtime w
 "K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported)  
 an outdated Kubernetes version was specified for minikube to use  
 
-"K8S_NEW_UNSUPPORTED" (Exit code ExControlPlaneUnsupported)  
-a too new Kubernetes version was specified for minikube to use  
-
 "K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported)  
 minikube was unable to safely downgrade installed Kubernetes version  
 
diff --git a/site/content/en/docs/drivers/docker.md b/site/content/en/docs/drivers/docker.md
index 9b4bfd63f..e00b58c76 100644
--- a/site/content/en/docs/drivers/docker.md
+++ b/site/content/en/docs/drivers/docker.md
@@ -42,6 +42,7 @@ Start a cluster using the rootless docker driver:
 ```shell
 dockerd-rootless-setuptool.sh install -f
 docker context use rootless
+
 minikube start --driver=docker --container-runtime=containerd
 ```
 
diff --git a/site/content/en/docs/drivers/vmware.md b/site/content/en/docs/drivers/vmware.md
index 12d7a60d9..5172a9c1d 100644
--- a/site/content/en/docs/drivers/vmware.md
+++ b/site/content/en/docs/drivers/vmware.md
@@ -11,7 +11,7 @@ The vmware driver supports virtualization across all VMware based hypervisors.
 
 {{% tabs %}}
 {{% mactab %}}
-{{% readfile file="/docs/drivers/includes/vmware_macos_usage.inc" %}}
+{{% readfile file="/docs/drivers/includes/vmware_macos_usage.inc" %}} vmware_windows_usage.inc
 {{% /mactab %}}
 {{% linuxtab %}}
 No documentation is available yet.
diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md
index 701da92a7..53e5a200c 100644
--- a/site/content/en/docs/faq/_index.md
+++ b/site/content/en/docs/faq/_index.md
@@ -31,7 +31,44 @@ minikube profiles are meant to be isolated from one another, with their own sett
 
 ## Can I use minikube as a Docker Desktop replacement?
 
-Yes! Follow our tutorial on [Using minikube as a Docker Desktop Replacement]({{< ref "/docs/tutorials/docker_desktop_replacement" >}}).
+minikube's VM includes a Docker daemon running inside Linux for free, so you can use 
+`minikube docker-env` to point your terminal's Docker CLI to the Docker inside minikube.
+
+{{% tabs %}}
+{{% tab "bash/zsh" %}}
+```
+eval $(minikube -p <profile> docker-env)
+```
+{{% /tab %}}
+{{% tab PowerShell %}}
+```
+& minikube -p <profile> docker-env --shell powershell | Invoke-Expression
+```
+{{% /tab %}}
+{{% tab cmd %}}
+```
+@FOR /f "tokens=*" %i IN ('minikube -p <profile> docker-env --shell cmd') DO @%i
+```
+{{% /tab %}}
+{{% tab fish %}}
+```
+minikube -p <profile> docker-env | source
+```
+{{% /tab %}}
+{{% tab tcsh %}}
+```
+eval `minikube -p <profile> docker-env`
+```
+{{% /tab %}}
+{{% /tabs %}}
+
+Note: this only works with the "docker" container runtime, not with e.g. "containerd"
+
+You would need to start minikube with a VM driver, instead of docker, such as hyperkit on macOS and Hyper-V on Windows.
+```
+minikube start --container-runtime=docker --vm=true
+```
+Alternatively, you can use `minikube image build`  instead of `minikube docker-env` and `docker build`.
 
 ## Can I start minikube without Kubernetes running?
 
diff --git a/site/content/en/docs/handbook/config.md b/site/content/en/docs/handbook/config.md
index 476641b6a..b10533cc2 100644
--- a/site/content/en/docs/handbook/config.md
+++ b/site/content/en/docs/handbook/config.md
@@ -89,7 +89,7 @@ minikube start --extra-config=kubeadm.ignore-preflight-errors=SystemVerification
 
 ## Runtime configuration
 
-The default container runtime in minikube varies. You can select one explicitly by using:
+The default container runtime in minikube is Docker. You can select it explicitly by using:
 
 ```shell
 minikube start --container-runtime=docker
@@ -100,8 +100,6 @@ Other options available are:
 * [containerd](https://github.com/containerd/containerd)
 * [cri-o](https://github.com/cri-o/cri-o)
 
-See <https://kubernetes.io/docs/setup/production-environment/container-runtimes/>
-
 ## Environment variables
 
 minikube supports passing environment variables instead of flags for every value listed in `minikube config`.  This is done by passing an environment variable with the prefix `MINIKUBE_`.
diff --git a/site/content/en/docs/tutorials/docker_desktop_replacement.md b/site/content/en/docs/tutorials/docker_desktop_replacement.md
deleted file mode 100644
index 1ef5eea6f..000000000
--- a/site/content/en/docs/tutorials/docker_desktop_replacement.md
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: "Using minikube as Docker Desktop Replacement"                     
-linkTitle: "Using minikube as Docker Desktop Replacement"
-weight: 1
-date: 2022-02-02
----
-
-## Overview
-
-- This guide will show you how to use minikube as a Docker Desktop replacement.
-
-## Before You Begin
-- This only works with the `docker` container runtime, not with `containerd` or `crio`.
-
-- You need to start minikube with a VM driver instead of `docker`, such as `hyperkit` on macOS and `hyperv` on Windows.
-
-- Alternatively, you can use the [`minikube image build`]({{< ref "/docs/commands/image#minikube-image-build" >}}) command instead of `minikube docker-env` and `docker build`.
-
-## Steps
-<h2 class="step"><span class="fa-stack fa-1x"><i class="fa fa-circle fa-stack-2x"></i><strong class="fa-stack-1x text-primary">1</strong></span>Install the Docker CLI</h2>
-{{% tabs %}}
-{{% tab macOS %}}
-1. Download the static binary archive. Go to https://download.docker.com/mac/static/stable/ and select `x86_64` (for Mac on Intel chip) or `aarch64` (for Mac on Apple silicon), and then download the `.tgz` file relating to the version of Docker Engine you want to install.
-
-2. Extract the archive using the `tar` utility. The `docker` binary is extracted.
-```shell
-tar xzvf /path/to/<FILE>.tar.gz
-```
-
-3. Clear the extended attributes to allow it run.
-```shell
-sudo xattr -rc docker
-```
-
-4. Move the binary to a directory on your executable path, such as `/usr/local/bin/`.
-```shell
-sudo cp docker/docker /usr/local/bin/
-```
-{{% /tab %}}
-{{% tab Windows %}}
-1. Download the static binary archive. Go to https://download.docker.com/win/static/stable/x86_64 and select the latest version from the list.
-
-2. Run the following PowerShell commands to install and extract the archive to your program files:
-```shell
-Expand-Archive /path/to/<FILE>.zip -DestinationPath $Env:ProgramFiles
-```
-
-3. Add the path to the Docker CLI binary (`C:\Program Files\Docker`) to the `PATH` environment variable, [guide to setting environment variables in Windows](https://www.architectryan.com/2018/08/31/how-to-change-environment-variables-on-windows-10/).
-
-4. Restart Windows for the `PATH` change to take effect.
-{{% /tab %}}
-{{% /tabs %}}
-
-<h2 class="step"><span class="fa-stack fa-1x"><i class="fa fa-circle fa-stack-2x"></i><strong class="fa-stack-1x text-primary">2</strong></span>Start minikube</h2>
-Start minikube with a VM driver and `docker` container runtime if not already running.
-
-```shell
-minikube start --container-runtime=docker --vm=true
-```
-
-<h2 class="step"><span class="fa-stack fa-1x"><i class="fa fa-circle fa-stack-2x"></i><strong class="fa-stack-1x text-primary">3</strong></span>Point Docker CLI to minikube</h2>
-Use the `minikube docker-env` command to point your terminal's Docker CLI to the Docker instance inside minikube.
-
-{{% tabs %}}
-{{% tab "bash/zsh" %}}
-```
-eval $(minikube -p <profile> docker-env)
-```
-{{% /tab %}}
-{{% tab PowerShell %}}
-```
-& minikube -p <profile> docker-env --shell powershell | Invoke-Expression
-```
-{{% /tab %}}
-{{% tab cmd %}}
-```
-@FOR /f "tokens=*" %i IN ('minikube -p <profile> docker-env --shell cmd') DO @%i
-```
-{{% /tab %}}
-{{% tab fish %}}
-```
-minikube -p <profile> docker-env | source
-```
-{{% /tab %}}
-{{% tab tcsh %}}
-```
-eval `minikube -p <profile> docker-env`
-```
-{{% /tab %}}
-{{% /tabs %}}
diff --git a/translations/de.json b/translations/de.json
index 4f68d42fe..7366a058f 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -17,6 +17,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "Stellen Sie sicher, dass der {{.driver_name}} Daemon genug CPU/RAM Resourcen zur Verfügung hat.",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- Unnötige {{.driver_name}} Images, Volumes, Netzwerke und nicht mehr verwendete Container aufräumen.\n\n\t\t\t\t{{.driver_name}} system prune --volumes",
 	"- Restart your {{.driver_name}} service": "Starten Sie den {{.driver_name}} Service neu",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "--container-runtime muss für rootless auf \\\"containerd\\\" oder \\\"cri-o\\\" gesetzt sein",
 	"--kvm-numa-count range is 1-8": "Der Wertebereich für --kvm-numa-count ist 1-8",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "Der Parameter --network kann nur mit dem docker/podman und den KVM Treibern verwendet werden, er wird ignoriert werden",
@@ -25,6 +26,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Klicken Sie auf das \"Docker für Desktop\" Menu Icon\n\t\t\t2. Klicken Sie auf \"Einstellungen\"\n\t\t\t3. Klicken Sie auf \"Resourcen\"\n\t\t\t4. Erhöhen Sie den Wert von \"Speicher\" auf {{.recommend}} oder mehr\n\t\t\t5. Klicken Sie auf \"Anwenden \u0026 Neustarten\"",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "1. Öffnen Sie \"Docker Desktop\" indem Sie das Docker Icon im System Tray anklicken\n\t\t2. Klicken Sie auf \"Einstellungen\"\n\t\t3. Klicken Sie auf \"Resourcen\"\n\t\t4. Erhöhen Sie den Wert von \"CPUs\" auf 2 oder mehr\n\t\t\t5. Klicken Sie auf \"Anwenden \u0026 Neustarten\"",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "\"1. Öffnen Sie \\\"Docker Desktop\\\" indem Sie das Docker Icon im System Tray anklicken\\n\\t\\t2. Klicken Sie auf \"Einstellungen\"\n\t\t\t3. Klicken Sie auf \"Resourcen\"\n\t\t\t4. Erhöhen Sie den Wert von \"Speicher\" auf {{.recommend}} oder mehr\n\t\t\t5. Klicken Sie auf \"Anwenden \u0026 Neustarten\"",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "==\u003e Letzter Start \u003c==",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "Ein VPN oder eine Firewall beeinflussen den HTTP Zugriff zur Minikube VM. Versuchen Sie alternativ einen anderen VM Treiber zu verwenden: https://minikube.sigs.k8s.io/docs/start/",
@@ -385,7 +387,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "Zeige alle Standard-Werte für PROPERTY_NAME",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "Zeige alle Minikube Profilel und erkenne alle möglicherweise ungültigen Profile.",
 	"Lists the URLs for the services in your local cluster": "Zeigt die URLs für die Services in ihrem lokalen Cluster",
-	"Load an image into minikube": "Lade ein Image in Minikube",
+	"Load a image into minikube": "Lade ein Image in Minikube",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Lokale Ordner, die über NFS-Bereitstellungen für Gast freigegeben werden (nur Hyperkit-Treiber)",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "Lokaler Proxy ignoriert: reiche {{.name}}={{.value}} an docker env weiter.",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "Speicherort des VPNKit-Sockets, der für das Netzwerk verwendet wird. Wenn leer, wird Hyperkit VPNKitSock deaktiviert. Wenn 'auto' die Docker for Mac VPNKit-Verbindung verwendet, wird andernfalls der angegebene VSock verwendet (nur Hyperkit-Treiber).",
@@ -396,7 +398,6 @@
 	"Log into the minikube environment (for debugging)": "In die Minikube Umgebung einloggen (fürs Debugging)",
 	"Manage images": "Images verwalten",
 	"Message Size: {{.size}}": "Message Größe: {{.size}}",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "Persistente Konfigurations-Werte anpassen",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "Mehr Informationen: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "Die meisten Benutzer sollten den neuen 'docker' Treiber verwenden, welcher keinen root-Zugriff benötigt!",
@@ -580,8 +581,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "Entschuldigung, {{.driver}} erlaubt es nicht, dass Mounts nach dem Erstellen des Containers geändert werden (vorheriger Mount: '{{.old}}, neuer Mount: '{{.new}}'",
 	"Source {{.path}} can not be empty": "Quelle {{.path}} kann nicht leer sein",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "Die angegebene Kubernetes Version {{.specified}} ist kleiner als die älteste unterstütze Version: {{.oldest}}",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "Gebe die --kubernetes-version in folgender Form an: v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e Beispiel: 'v1.1.14'",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "Gebe einen alternativen --host-only-cidr Wert an, z.B. 172.16.0.1/24",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "Spezifiziere arbiträre Flags, die an den Docker-Daemon übergeben werden. (Format: Schlüssel = Wert)",
@@ -695,7 +694,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "Der Pfad auf dem Dateisystem auf dem die Test-Dokumente in Markdown gespeichert werden müssen",
 	"The podman service within '{{.cluster}}' is not active": "Der Podman Service im Cluster '{{.cluster}}' ist nicht aktiv",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "Der Befehl podman-env ist inkompatibel mit multi-node Clustern. Verwende das 'registry' Addon: https://minikube.sigs.k8s.io/docs/handbook/registry/",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "Die angeforderte Speicherzuweisung von {{.requested}}MiB lässt nicht genug Speicher für das System (Gesamt-System-Speicher: {{.system_limit}}MiB). Dies könnte zu Stabilitätsproblemen führen.",
 	"The service namespace": "Der Namespace des Service",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "Der Service/Ingress {{.resource}} benötigt, dass priviligierte Ports verwendet werden können: {{.ports}}",
@@ -978,6 +976,7 @@
 	"zsh completion failed": "zsh completion fehlgeschlagen",
 	"zsh completion.": "",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "{{ .name }}: Vorschlag: {{ .suggestion}}",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "{{.Driver}} verwendet derzeit den {{.StorageDriver}} Storage Treiber, erwäge zu overlay2 zu wechseln für bessere Performance",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "{{.count}} Node{{if get .count 1}}s{{end}} angehalten.",
 	"{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} fehlt, wird neu erstellt.",
@@ -985,6 +984,8 @@
 	"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "{{.driver_name}} verfügt über weniger als 2 CPUs, aber Kubernetes benötigt mindestens 2 verfügbare CPUs",
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "{{.driver_name}} hat nur {{.container_limit}}MB Speicher aber spezifiziert wurden {{.specified_memory}}MB",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "{{.driver}} hat nur {{.size}}MiB verfügbar, weniger als die für Kubernetes notwendigen {{.req}}MiB",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "{{.name}} hat keine Images.",
 	"{{.name}} has following images:": "{{.name}} hat die folgenden Images:",
 	"{{.name}} has no available configuration options": "{{.name}} hat keine verfügbaren Konfigurations-Optionen",
diff --git a/translations/es.json b/translations/es.json
index 435f1725d..32c69bfee 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -18,6 +18,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "Garantiza que {{.driver_name}} posee suficientes recursos de CPU/Memoria",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- Recorta las imágenes, volumenes, redes y contenedores abandonados de {{.driver_name}}.\n\n\t\t\t\t{{.driver_name}} system prune --volumes",
 	"- Restart your {{.driver_name}} service": "- Reinicia el servicio {{.driver_name}}",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "--container-runtime debe ser configurado a \\\"containerd\\\" o \\\"crio-o\\\" para no usar usuario root",
 	"--kvm-numa-count range is 1-8": "--kvm-numa-count el rango es 1-8",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "el flag --network es válido solamente con docker/podman y KVM, será ignorado",
@@ -26,6 +27,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "Una VPN o cortafuegos está interfiriendo con el acceso HTTP a la máquina virtual de minikube. Alternativamente prueba otro controlador: https://minikube.sigs.k8s.io/docs/start/",
@@ -394,7 +396,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "",
 	"Lists the URLs for the services in your local cluster": "",
-	"Load an image into minikube": "",
+	"Load a image into minikube": "",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Carpetas locales que se compartirán con el invitado mediante activaciones de NFS (solo con el controlador de hyperkit)",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "Ubicación del socket de VPNKit que se utiliza para ofrecer funciones de red. Si se deja en blanco, se inhabilita VPNKitSock de Hyperkit; si se define como \"auto\", se utiliza Docker para las conexiones de VPNKit en Mac. Con cualquier otro valor, se utiliza el VSock especificado (solo con el controlador de hyperkit)",
@@ -405,7 +407,6 @@
 	"Log into the minikube environment (for debugging)": "",
 	"Manage images": "",
 	"Message Size: {{.size}}": "",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "",
@@ -588,8 +589,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "Permite indicar marcas arbitrarias que se transferirán al daemon de Docker (el formato es \"clave=valor\").",
@@ -703,7 +702,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -992,6 +990,8 @@
 	"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "",
 	"{{.name}} has following images:": "",
 	"{{.name}} has no available configuration options": "",
diff --git a/translations/fr.json b/translations/fr.json
index 1d668452c..0acc3a645 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -374,7 +374,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "Répertorie toutes les valeurs par défaut valides pour PROPERTY_NAME",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "Répertorie tous les profils minikube valides et détecte tous les profils invalides possibles.",
 	"Lists the URLs for the services in your local cluster": "Répertorie les URL des services de votre cluster local",
-	"Load an image into minikube": "Charger une image dans minikube",
+	"Load a image into minikube": "Charger une image dans minikube",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Dossiers locaux à partager avec l'invité par des installations NFS (pilote hyperkit uniquement).",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "Proxy local ignoré : ne pas passer {{.name}}={{.value}} à docker env.",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "Emplacement du socket VPNKit exploité pour la mise en réseau. Si la valeur est vide, désactive Hyperkit VPNKitSock. Si la valeur affiche \"auto\", utilise la connexion VPNKit de Docker pour Mac. Sinon, utilise le VSock spécifié (pilote hyperkit uniquement).",
@@ -384,7 +384,6 @@
 	"Log into the minikube environment (for debugging)": "Connectez-vous à l'environnement minikube (pour le débogage)",
 	"Manage images": "Gérer les images",
 	"Message Size: {{.size}}": "Taille du message : {{.size}}",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "Modifier les valeurs de configuration persistantes",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "Plus d'informations: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "La plupart des utilisateurs devraient plutôt utiliser le nouveau pilote 'docker', qui ne nécessite pas de root !",
@@ -561,8 +560,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "Désolé, {{.driver}} n'autorise pas la modification des montages après la création du conteneur (montage précédent : '{{.old}}', nouveau montage : '{{.new}})'",
 	"Source {{.path}} can not be empty": "La source {{.path}} ne peut pas être vide",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "La version spécifiée de Kubernetes {{.specified}} est inférieure à la plus ancienne version prise en charge : {{.oldest}}",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "La version de Kubernetes spécifiée {{.specified}} est plus récente que la dernière version prise en charge : {{.newest}}",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "La version majeure spécifiée de Kubernetes {{.specifiedMajor}} est plus récente que la dernière version majeure prise en charge : {{.newestMajor}}",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "Spécifiez --kubernetes-version avec la forme v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e. exemple : 'v1.1.14'",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "Spécifiez une autre valeur --host-only-cidr, telle que 172.16.0.1/24",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "Spécifie des indicateurs arbitraires à transmettre au daemon Docker (format : clé = valeur).",
@@ -669,7 +666,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "Le chemin sur le système de fichiers où les documents de test en markdown doivent être enregistrés",
 	"The podman service within '{{.cluster}}' is not active": "Le service podman dans '{{.cluster}}' n'est pas actif",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "La commande podman-env est incompatible avec les clusters multi-nœuds. Utilisez le module 'registry' : https://minikube.sigs.k8s.io/docs/handbook/registry/",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "La commande podman-env n'est compatible qu'avec le runtime \"crio\", mais ce cluster a été configuré pour utiliser le runtime \"{{.runtime}}\".",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "L'allocation de mémoire demandée de {{.requested}}MiB ne laisse pas de place pour la surcharge système (mémoire système totale : {{.system_limit}}MiB). Vous pouvez rencontrer des problèmes de stabilité.",
 	"The service namespace": "L'espace de nom du service",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "Le service/ingress {{.resource}} nécessite l'exposition des ports privilégiés : {{.ports}}",
diff --git a/translations/ja.json b/translations/ja.json
index 671d2ec50..7d100072b 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -383,7 +383,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "PROPERTY_NAME 用の有効な minikube プロファイルを一覧表示します",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "有効な minikube プロファイルを一覧表示し、無効の可能性のあるプロファイルを全て検知します",
 	"Lists the URLs for the services in your local cluster": "ローカルクラスターのサービス用 URL を一覧表示します",
-	"Load an image into minikube": "minikube にイメージを読み込ませます",
+	"Load a image into minikube": "minikube にイメージを読み込ませます",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "NFS マウントを介してゲストと共有するローカルフォルダー (hyperkit ドライバーのみ)",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "ローカルプロキシーは無視されました: docker env に {{.name}}={{.value}} は渡されません。",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Docker for Mac の VPNKit 接続が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)",
@@ -394,7 +394,6 @@
 	"Log into the minikube environment (for debugging)": "minikube の環境にログインします (デバッグ用)",
 	"Manage images": "イメージを管理します",
 	"Message Size: {{.size}}": "メッセージのサイズ: {{.size}}",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "永続的な設定値を変更します",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "追加情報: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "多くのユーザーはより新しい 'docker' ドライバーを代わりに使用すべきです (root 権限が必要ありません!)",
@@ -578,8 +577,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "申し訳ありませんが、{{.driver}} はコンテナーの生成後にマウントを変更できません (旧マウント: '{{.old}}'、新マウント: '{{.new}})'",
 	"Source {{.path}} can not be empty": "ソース {{.path}} は空にできません",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "指定された Kubernetes バージョン {{.specified}} はサポートされたバージョン {{.oldest}} より古いです",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "v\u003cメジャー\u003e.\u003cマイナー.\u003cビルド\u003e形式で --kubernetes-version 値を指定します。例: 'v1.1.14'",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "代わりの --host-only-cidr 値を指定します (172.16.0.1/24 など)",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "Docker デーモンに渡す任意のフラグを指定します。(形式: key=value)",
@@ -695,7 +692,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "markdown で書かれたテストドキュメントの保存先のファイルシステムパス",
 	"The podman service within '{{.cluster}}' is not active": "'{{.cluster}}' 内の podman サービスが active ではありません",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "podman-env コマンドはマルチノードクラスターと互換性がありません。'registry' アドオンを使用してください: https://minikube.sigs.k8s.io/docs/handbook/registry/",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "要求された {{.requested}}MiB のメモリー割当は、システムのオーバーヘッド (合計システムメモリー: {{.system_limit}}MiB) に十分な空きを残しません。安定性の問題に直面するかも知れません。",
 	"The service namespace": "サービスネームスペース",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "{{.resource}} service/ingress は次の公開用特権ポートを要求します:  {{.ports}}",
@@ -999,6 +995,7 @@
 	"zsh completion failed": "zsh のコマンド補完に失敗しました",
 	"zsh completion.": "zsh のコマンド補完です。",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "{{ .name }}: 提案: {{ .suggestion}}",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "{{.Driver}} は現在 {{.StorageDriver}} ストレージドライバーを使用しています。性能向上のため overlay2 への切替を検討してください",
 	"{{.cluster}} IP has been updated to point at {{.ip}}": "{{.cluster}} の IP アドレスは {{.ip}} に更新されました",
 	"{{.cluster}} IP was already correctly configured for {{.ip}}": "{{.cluster}} の IP アドレスはすでに {{.ip}} に設定されています",
@@ -1011,6 +1008,8 @@
 	"{{.driver}} does not appear to be installed": "{{.driver}} がインストールされていないようです",
 	"{{.driver}} does not appear to be installed, but is specified by an existing profile. Please run 'minikube delete' or install {{.driver}}": "{{.driver}} がインストールされていないようですが、既存のプロファイルから指定されています。'minikube delete' を実行するか、{{.driver}} をインストールしてください",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "{{.driver}} は Kubernetes に必要な {{.req}}MiB 未満の {{.size}}MiB しか使用できません",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "{{.name}} はイメージがありません。",
 	"{{.name}} has following images:": "{{.name}} は次のイメージがあります:",
 	"{{.name}} has no available configuration options": "{{.name}} には利用可能な設定オプションがありません",
diff --git a/translations/ko.json b/translations/ko.json
index 3f0b9ebad..a19cd194c 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -23,6 +23,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- {{.driver_name}} 데몬이 충분한 CPU/메모리 리소스에 액세스할 수 있는지 확인합니다.",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "",
 	"- Restart your {{.driver_name}} service": "{{.driver_name}} 서비스를 다시 시작하세요",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "",
 	"--kvm-numa-count range is 1-8": "--kvm-numa-count 범위는 1부터 8입니다",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "",
@@ -31,6 +32,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "",
@@ -410,7 +412,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "",
 	"Lists the URLs for the services in your local cluster": "",
-	"Load an image into minikube": "",
+	"Load a image into minikube": "",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "",
@@ -422,7 +424,6 @@
 	"Message Size: {{.size}}": "메시지 사이즈: {{.size}}",
 	"Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.": "Minikube 는 개발용으로 최적화된 싱글 노드 쿠버네티스 클러스터 제공 및 관리 CLI 툴입니다",
 	"Minikube is a tool for managing local Kubernetes clusters.": "Minikube 는 로컬 쿠버네티스 클러스터 관리 툴입니다",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "",
@@ -601,8 +602,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "",
@@ -708,7 +707,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -994,6 +992,7 @@
 	"zsh completion failed": "zsh 완성이 실패하였습니다",
 	"zsh completion.": "",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} nodes stopped.": "{{.count}}개의 노드가 중지되었습니다.",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "",
@@ -1003,6 +1002,8 @@
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
 	"{{.driver}} does not appear to be installed": "{{.driver}} 가 설치되지 않았습니다",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} cluster does not exist": "{{.name}} 클러스터가 존재하지 않습니다",
 	"{{.name}} doesn't have images.": "{{.name}} 이미지가 없습니다.",
 	"{{.name}} has following images:": "{{.name}}에는 다음과 같은 이미지가 있습니다.",
diff --git a/translations/pl.json b/translations/pl.json
index fcbec27ad..af0643a5f 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -22,6 +22,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "",
 	"- Restart your {{.driver_name}} service": "",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "",
 	"--kvm-numa-count range is 1-8": "",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "",
@@ -30,6 +31,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "==\u003e Audyt \u003c==",
 	"==\u003e Last Start \u003c==": "==\u003e Ostatni start \u003c==",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN lub zapora sieciowa przeszkadza w komunikacji protokołem HTTP z maszyną wirtualną minikube. Spróbuj użyć innego sterownika: https://minikube.sigs.k8s.io/docs/start/",
@@ -398,7 +400,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "Wylistuj wszystkie prawidłowe domyślne wartości dla opcji konfiguracyjnej PROPERTY_NAME",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "Wylistuj wszystkie prawidłowe profile minikube i wykryj wszystkie nieprawidłowe profile.",
 	"Lists the URLs for the services in your local cluster": "Wylistuj adresy URL serwisów w twoim lokalnym klastrze",
-	"Load an image into minikube": "Załaduj obraz do minikube",
+	"Load a image into minikube": "Załaduj obraz do minikube",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Lokalne katalogi do współdzielenia z Guestem poprzez NFS (tylko sterownik hyperkit)",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "",
@@ -411,7 +413,6 @@
 	"Log into the minikube environment (for debugging)": "Zaloguj się do środowiska minikube (do debugowania)",
 	"Manage images": "Zarządzaj obrazami",
 	"Message Size: {{.size}}": "Rozmiar wiadomości: {{.size}}",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "Modyfikuj globalne opcje konfiguracyjne",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "Więcej informacji: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "Większość użytkowników powinna używać nowszego sterownika docker, ktory nie wymaga uruchamiania z poziomu roota!",
@@ -601,8 +602,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "",
@@ -716,7 +715,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -996,6 +994,7 @@
 	"zsh completion failed": "autouzupełnianie zsh nie powiodło się",
 	"zsh completion.": "autouzupełnianie zsh",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.addonName}} was successfully enabled": "{{.addonName}} został aktywowany pomyślnie",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "",
@@ -1004,6 +1003,8 @@
 	"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "sterownik {{.driver}} ma tylko {{.size}}MiB dostępnej przestrzeni dyskowej, to mniej niż wymagane {{.req}}MiB dla Kubernetesa",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} cluster does not exist": "Klaster {{.name}} nie istnieje",
 	"{{.name}} doesn't have images.": "{{.name}} nie ma obrazów.",
 	"{{.name}} has following images:": "{{.name}} ma następujące obrazy:",
diff --git a/translations/ru.json b/translations/ru.json
index a47a6eda8..c6b7cebe0 100644
--- a/translations/ru.json
+++ b/translations/ru.json
@@ -17,6 +17,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "",
 	"- Restart your {{.driver_name}} service": "",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "",
 	"--kvm-numa-count range is 1-8": "",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "",
@@ -25,6 +26,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Кликните на иконку \"Docker for Desktop\"\n\t\t\t2. Выберите \"Preferences\"\n\t\t\t3. Нажмите \"Resources\"\n\t\t\t4. Увеличьте кол-во \"emory\" до {{.recommend}} или выше\n\t\t\t5. Нажмите \"Apply \u0026 Перезапуск\"",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "",
@@ -363,7 +365,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "",
 	"Lists the URLs for the services in your local cluster": "",
-	"Load an image into minikube": "",
+	"Load a image into minikube": "",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "",
@@ -373,7 +375,6 @@
 	"Log into the minikube environment (for debugging)": "",
 	"Manage images": "",
 	"Message Size: {{.size}}": "",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "",
@@ -549,8 +550,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "",
@@ -651,7 +650,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -919,6 +917,7 @@
 	"zsh completion failed": "",
 	"zsh completion.": "",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "Остановлено узлов: {{.count}}.",
 	"{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "",
@@ -926,6 +925,8 @@
 	"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "",
 	"{{.name}} has following images:": "",
 	"{{.name}} has no available configuration options": "",
diff --git a/translations/strings.txt b/translations/strings.txt
index 5f20a211e..4378f88d3 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -17,6 +17,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "",
 	"- Restart your {{.driver_name}} service": "",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "",
 	"--kvm-numa-count range is 1-8": "",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "",
@@ -25,6 +26,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "",
@@ -363,7 +365,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "",
 	"Lists the URLs for the services in your local cluster": "",
-	"Load an image into minikube": "",
+	"Load a image into minikube": "",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "",
@@ -373,7 +375,6 @@
 	"Log into the minikube environment (for debugging)": "",
 	"Manage images": "",
 	"Message Size: {{.size}}": "",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify persistent configuration values": "",
 	"More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "",
 	"Most users should use the newer 'docker' driver instead, which does not require root!": "",
@@ -549,8 +550,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "",
@@ -651,7 +650,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -919,6 +917,7 @@
 	"zsh completion failed": "",
 	"zsh completion.": "",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "",
 	"{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "",
@@ -926,6 +925,8 @@
 	"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
 	"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "",
 	"{{.name}} has following images:": "",
 	"{{.name}} has no available configuration options": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index fa92b8dfd..ebeaca55e 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -24,6 +24,7 @@
 	"- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- 确保你的 {{.driver_name}} 守护程序有权访问足够的 CPU 和内存资源。",
 	"- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "",
 	"- Restart your {{.driver_name}} service": "- 重启你的 {{.driver_name}} 服务",
+	"- {{.logPath}}": "",
 	"--container-runtime must be set to \\\"containerd\\\" or \\\"cri-o\\\" for rootless": "",
 	"--kvm-numa-count range is 1-8": "",
 	"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "",
@@ -32,6 +33,7 @@
 	"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
 	"1. Open the \"Docker Desktop\" menu by clicking the Docker icon in the system tray\n\t\t2. Click \"Settings\"\n\t\t3. Click \"Resources\"\n\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t5. Click \"Apply \u0026 Restart\"": "",
+	"127.0.0.1": "",
 	"==\u003e Audit \u003c==": "",
 	"==\u003e Last Start \u003c==": "",
 	"A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN 或者防火墙正在干扰对 minikube 虚拟机的 HTTP 访问。或者，您可以使用其它的虚拟机驱动：https://minikube.sigs.k8s.io/docs/start/",
@@ -471,7 +473,7 @@
 	"Lists all valid default values for PROPERTY_NAME": "",
 	"Lists all valid minikube profiles and detects all possible invalid profiles.": "",
 	"Lists the URLs for the services in your local cluster": "",
-	"Load an image into minikube": "",
+	"Load a image into minikube": "",
 	"Local folders to share with Guest via NFS mounts (hyperkit driver only)": "通过 NFS 装载与访客共享的本地文件夹（仅限 hyperkit 驱动程序）",
 	"Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "",
 	"Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "用于网络连接的 VPNKit 套接字的位置。如果为空，则停用 Hyperkit VPNKitSock；如果为“auto”，则将 Docker 用于 Mac VPNKit 连接；否则使用指定的 VSock（仅限 hyperkit 驱动程序）",
@@ -483,7 +485,6 @@
 	"Manage images": "",
 	"Message Size: {{.size}}": "",
 	"Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.": "Minikube 是一个命令行工具，它提供和管理针对开发工作流程优化的单节点 Kubernetes 集群。",
-	"Minimum VirtualBox Version supported: {{.vers}}, current VirtualBox version: {{.cvers}}": "",
 	"Modify minikube config": "修改 minikube 配置",
 	"Modify minikube's kubernetes addons": "修改 minikube 的 kubernetes 插件",
 	"Modify persistent configuration values": "",
@@ -685,8 +686,6 @@
 	"Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'": "",
 	"Source {{.path}} can not be empty": "",
 	"Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}": "",
-	"Specified Kubernetes version {{.specified}} is newer than the newest supported version: {{.newest}}": "",
-	"Specified Major version of Kubernetes {{.specifiedMajor}} is newer than the newest supported Major version: {{.newestMajor}}": "",
 	"Specify --kubernetes-version in v\u003cmajor\u003e.\u003cminor.\u003cbuild\u003e form. example: 'v1.1.14'": "",
 	"Specify an alternate --host-only-cidr value, such as 172.16.0.1/24": "",
 	"Specify arbitrary flags to pass to the Docker daemon. (format: key=value)": "指定要传递给 Docker 守护进程的任意标志。（格式：key=value）",
@@ -806,7 +805,6 @@
 	"The path on the file system where the testing docs in markdown need to be saved": "",
 	"The podman service within '{{.cluster}}' is not active": "",
 	"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",
-	"The podman-env command is only compatible with the \"crio\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "",
 	"The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "",
 	"The service namespace": "",
 	"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "",
@@ -1109,6 +1107,7 @@
 	"zsh completion failed": "",
 	"zsh completion.": "",
 	"{{ .name }}: Suggestion: {{ .suggestion}}": "",
+	"{{ .name }}: {{ .rejection }}": "",
 	"{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "",
 	"{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "",
 	"{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "",
@@ -1118,6 +1117,8 @@
 	"{{.driver}} does not appear to be installed": "似乎并未安装 {{.driver}}",
 	"{{.driver}} does not appear to be installed, but is specified by an existing profile. Please run 'minikube delete' or install {{.driver}}": "似乎并未安装 {{.driver}}，但已被当前的配置文件指定。请执行 'minikube delete' 或者安装 {{.driver}}",
 	"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+	"{{.err}}": "",
+	"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
 	"{{.name}} doesn't have images.": "",
 	"{{.name}} has following images:": "",
 	"{{.name}} has no available configuration options": "",


Test patch:
diff --git a/cmd/minikube/cmd/service_test.go b/cmd/minikube/cmd/service_test.go
new file mode 100644
index 000000000..e91a4c27d
--- /dev/null
+++ b/cmd/minikube/cmd/service_test.go
@@ -0,0 +1,71 @@
+/*
+Copyright 2016 The Kubernetes Authors All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cmd
+
+import (
+	"testing"
+)
+
+func TestServiceForwardOpen(t *testing.T) {
+	var tests = []struct {
+		name           string
+		serviceURLMode bool
+		all            bool
+		args           []string
+		want           bool
+	}{
+		{
+			name:           "multiple_urls",
+			serviceURLMode: false,
+			all:            false,
+			args:           []string{"test-service-1", "test-service-2"},
+			want:           false,
+		},
+		{
+			name:           "service_url_mode",
+			serviceURLMode: true,
+			all:            false,
+			args:           []string{"test-service-1"},
+			want:           false,
+		},
+		{
+			name:           "all",
+			serviceURLMode: false,
+			all:            true,
+			args:           []string{"test-service-1", "test-service-2"},
+			want:           false,
+		},
+		{
+			name:           "single_url",
+			serviceURLMode: false,
+			all:            false,
+			args:           []string{"test-service-1"},
+			want:           true,
+		},
+	}
+
+	for _, tc := range tests {
+		serviceURLMode = tc.serviceURLMode
+		all = tc.all
+		t.Run(tc.name, func(t *testing.T) {
+			got := shouldOpen(tc.args)
+			if got != tc.want {
+				t.Errorf("bool(%+v) = %t, want: %t", "shouldOpen", got, tc.want)
+			}
+		})
+	}
+}
diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go
index c67bc2c12..54133d85e 100644
--- a/cmd/minikube/cmd/start_test.go
+++ b/cmd/minikube/cmd/start_test.go
@@ -112,7 +112,6 @@ func TestMirrorCountry(t *testing.T) {
 	viper.SetDefault(humanReadableDiskSize, defaultDiskSize)
 	checkRepository = checkRepoMock
 	k8sVersion := constants.DefaultKubernetesVersion
-	rtime := constants.DefaultContainerRuntime
 	var tests = []struct {
 		description     string
 		k8sVersion      string
@@ -158,7 +157,7 @@ func TestMirrorCountry(t *testing.T) {
 			viper.SetDefault(imageRepository, test.imageRepository)
 			viper.SetDefault(imageMirrorCountry, test.mirrorCountry)
 			viper.SetDefault(kvmNUMACount, 1)
-			config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, driver.Mock)
+			config, _, err := generateClusterConfig(cmd, nil, k8sVersion, driver.Mock)
 			if err != nil {
 				t.Fatalf("Got unexpected error %v during config generation", err)
 			}
@@ -180,7 +179,6 @@ func TestGenerateCfgFromFlagsHTTPProxyHandling(t *testing.T) {
 		}
 	}()
 	k8sVersion := constants.NewestKubernetesVersion
-	rtime := constants.DefaultContainerRuntime
 	var tests = []struct {
 		description  string
 		proxy        string
@@ -228,7 +226,7 @@ func TestGenerateCfgFromFlagsHTTPProxyHandling(t *testing.T) {
 
 			cfg.DockerEnv = []string{} // clear docker env to avoid pollution
 			proxy.SetDockerEnv()
-			config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, "none")
+			config, _, err := generateClusterConfig(cmd, nil, k8sVersion, "none")
 			if err != nil {
 				t.Fatalf("Got unexpected error %v during config generation", err)
 			}
diff --git a/deploy/minikube/release_sanity_test.go b/deploy/minikube/release_sanity_test.go
index 4dd248dae..09971ca44 100644
--- a/deploy/minikube/release_sanity_test.go
+++ b/deploy/minikube/release_sanity_test.go
@@ -68,14 +68,9 @@ func TestBetaReleasesJSON(t *testing.T) {
 }
 
 func checkReleases(t *testing.T, rs notify.Releases) {
-	for _, r := range rs.Releases {
+	for _, r := range rs {
 		fmt.Printf("Checking release: %s\n", r.Name)
-		checksums := map[string]string{
-			"darwin":  r.Checksums.Darwin,
-			"linux":   r.Checksums.Linux,
-			"windows": r.Checksums.Windows,
-		}
-		for platform, sha := range checksums {
+		for platform, sha := range r.Checksums {
 			fmt.Printf("Checking SHA for %s.\n", platform)
 			actualSha, err := getSHAFromURL(util.GetBinaryDownloadURL(r.Name, platform, runtime.GOARCH))
 			if err != nil {
diff --git a/pkg/minikube/download/download_test.go b/pkg/minikube/download/download_test.go
index e126b4532..e9b03a74f 100644
--- a/pkg/minikube/download/download_test.go
+++ b/pkg/minikube/download/download_test.go
@@ -94,7 +94,7 @@ func testPreloadDownloadPreventsMultipleDownload(t *testing.T) {
 	var group sync.WaitGroup
 	group.Add(2)
 	dlCall := func() {
-		if err := Preload(constants.DefaultKubernetesVersion, constants.Docker, "docker"); err != nil {
+		if err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime, "docker"); err != nil {
 			t.Logf("Failed to download preload: %+v (may be ok)", err)
 		}
 		group.Done()
@@ -119,7 +119,7 @@ func testPreloadNotExists(t *testing.T) {
 	getChecksum = func(k8sVersion, containerRuntime string) ([]byte, error) { return []byte("check"), nil }
 	ensureChecksumValid = func(k8sVersion, containerRuntime, path string, checksum []byte) error { return nil }
 
-	err := Preload(constants.DefaultKubernetesVersion, constants.Docker, "docker")
+	err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime, "docker")
 	if err != nil {
 		t.Errorf("Expected no error when preload exists")
 	}
@@ -140,7 +140,7 @@ func testPreloadChecksumMismatch(t *testing.T) {
 		return fmt.Errorf("checksum mismatch")
 	}
 
-	err := Preload(constants.DefaultKubernetesVersion, constants.Docker, "docker")
+	err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime, "docker")
 	expectedErrMsg := "checksum mismatch"
 	if err == nil {
 		t.Errorf("Expected error when checksum mismatches")
diff --git a/pkg/minikube/notify/notify_test.go b/pkg/minikube/notify/notify_test.go
index b1166a526..da078706d 100644
--- a/pkg/minikube/notify/notify_test.go
+++ b/pkg/minikube/notify/notify_test.go
@@ -95,7 +95,7 @@ func TestShouldCheckURLBetaVersion(t *testing.T) {
 }
 
 type URLHandlerCorrect struct {
-	releases []Release
+	releases Releases
 }
 
 func (h *URLHandlerCorrect) ServeHTTP(w http.ResponseWriter, r *http.Request) {
diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go
index 72ac787e3..1babda745 100644
--- a/test/integration/functional_test.go
+++ b/test/integration/functional_test.go
@@ -1473,7 +1473,14 @@ func validateServiceCmd(ctx context.Context, t *testing.T, profile string) {
 		t.Errorf("expected stderr to be empty but got *%q* . args %q", rr.Stderr, rr.Command())
 	}
 
-	endpoint := strings.TrimSpace(rr.Stdout.String())
+	splits := strings.Split(rr.Stdout.String(), "|")
+	var endpoint string
+	// get the last endpoint in the output to test http to https
+	for _, v := range splits {
+		if strings.Contains(v, "http") {
+			endpoint = strings.TrimSpace(v)
+		}
+	}
 	t.Logf("found endpoint: %s", endpoint)
 
 	u, err := url.Parse(endpoint)
diff --git a/test/integration/main_test.go b/test/integration/main_test.go
index 8863c7f10..67e85b6b8 100644
--- a/test/integration/main_test.go
+++ b/test/integration/main_test.go
@@ -162,7 +162,7 @@ func ContainerRuntime() string {
 			return strings.TrimPrefix(s, flag)
 		}
 	}
-	return constants.Docker
+	return constants.DefaultContainerRuntime
 }
 
 // arm64Platform returns true if running on arm64/* platform
diff --git a/test/integration/testdata/ingress-dns-example-v1.yaml b/test/integration/testdata/ingress-dns-example-v1.yaml
index e67d8cec1..a4f7d196e 100644
--- a/test/integration/testdata/ingress-dns-example-v1.yaml
+++ b/test/integration/testdata/ingress-dns-example-v1.yaml
@@ -28,10 +28,10 @@ spec:
         app: hello-world-app
     spec:
       containers:
-      - name: hello-world-app
-        image: gcr.io/google-samples/hello-app:1.0
-        ports:
-        - containerPort: 8080
+        - name: hello-world-app
+          image: gcr.io/google-samples/hello-app:1.0
+          ports:
+            - containerPort: 8080
 ---
 apiVersion: networking.k8s.io/v1
 kind: Ingress
@@ -41,26 +41,26 @@ metadata:
 spec:
   ingressClassName: nginx
   rules:
-  - host: hello-john.test
-    http:
-      paths:
-      - path: /
-        pathType: Prefix
-        backend:
-          service:
-            name: hello-world-app
-            port:
-              number: 80
-  - host: hello-jane.test
-    http:
-      paths:
-      - path: /
-        pathType: Prefix
-        backend:
-          service:
-            name: hello-world-app
-            port:
-              number: 80
+    - host: hello-john.test
+      http:
+        paths:
+          - path: /
+            pathType: Prefix
+            backend:
+              service:
+                name: hello-world-app
+                port:
+                  number: 80
+    - host: hello-jane.test
+      http:
+        paths:
+          - path: /
+            pathType: Prefix
+            backend:
+              service:
+                name: hello-world-app
+                port:
+                  number: 80
 ---
 apiVersion: v1
 kind: Service
diff --git a/test/integration/testdata/ingress-dns-example-v1beta1.yaml b/test/integration/testdata/ingress-dns-example-v1beta1.yaml
index d2fa35d91..09f2817df 100644
--- a/test/integration/testdata/ingress-dns-example-v1beta1.yaml
+++ b/test/integration/testdata/ingress-dns-example-v1beta1.yaml
@@ -28,10 +28,10 @@ spec:
         app: hello-world-app
     spec:
       containers:
-      - name: hello-world-app
-        image: gcr.io/google-samples/hello-app:1.0
-        ports:
-        - containerPort: 8080
+        - name: hello-world-app
+          image: gcr.io/google-samples/hello-app:1.0
+          ports:
+            - containerPort: 8080
 ---
 apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
@@ -43,22 +43,22 @@ metadata:
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
-  - host: hello-john.test
-    http:
-      paths:
-      - path: /
-        pathType: Prefix
-        backend:
-          serviceName: hello-world-app
-          servicePort: 80
-  - host: hello-jane.test
-    http:
-      paths:
-      - path: /
-        pathType: Prefix
-        backend:
-          serviceName: hello-world-app
-          servicePort: 80
+    - host: hello-john.test
+      http:
+        paths:
+          - path: /
+            pathType: Prefix
+            backend:
+              serviceName: hello-world-app
+              servicePort: 80
+    - host: hello-jane.test
+      http:
+        paths:
+          - path: /
+            pathType: Prefix
+            backend:
+              serviceName: hello-world-app
+              servicePort: 80
 ---
 apiVersion: v1
 kind: Service
diff --git a/test/integration/testdata/nginx-ingress-v1.yaml b/test/integration/testdata/nginx-ingress-v1.yaml
index 0db2ad228..e5c6766b0 100644
--- a/test/integration/testdata/nginx-ingress-v1.yaml
+++ b/test/integration/testdata/nginx-ingress-v1.yaml
@@ -1,17 +1,3 @@
-# Copyright 2022 The Kubernetes Authors All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
 apiVersion: networking.k8s.io/v1
 kind: Ingress
 metadata:
diff --git a/test/integration/testdata/nginx-ingress-v1beta1.yaml b/test/integration/testdata/nginx-ingress-v1beta1.yaml
index 12ebaa764..5e3fcc235 100644
--- a/test/integration/testdata/nginx-ingress-v1beta1.yaml
+++ b/test/integration/testdata/nginx-ingress-v1beta1.yaml
@@ -1,17 +1,3 @@
-# Copyright 2022 The Kubernetes Authors All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
 apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
 metadata: