Repository: kubernetes/minikube
Pull request #16192 (2023-03-29 20:06:17)

site: update triage hours
<!-- 🎉 Thank you for contributing to minikube! 🎉 Here are some hints to get your PR merged faster:

1. Your PR title will be included in the release notes, choose it carefully
2. If the PR fixes an issue, add "fixes #<issue number>" to the description.
3. If the PR is a user interface change, please include a "before" and "after" example.
4. If the PR is a large design change, please include an enhancement proposal:
https://github.com/kubernetes/minikube/tree/master/enhancements
-->



Patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bd51aaa41..f3e492c2f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -20,7 +20,7 @@ jobs:
   build_minikube:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -47,7 +47,7 @@ jobs:
   lint:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -66,7 +66,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index dc0baa538..86e920f5d 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -15,7 +15,7 @@ jobs:
     if: github.repository == 'kubernetes/minikube'
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/functional_verified.yml b/.github/workflows/functional_verified.yml
index 3733e3162..15cc497d0 100644
--- a/.github/workflows/functional_verified.yml
+++ b/.github/workflows/functional_verified.yml
@@ -34,7 +34,7 @@ jobs:
     if: contains(github.event.pull_request.labels.*.name, 'ok-to-test')
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -69,7 +69,6 @@ jobs:
         shell: bash
         run: |
           sudo apt update
-          sudo apt upgrade -y
           sudo apt install -y jq docker git cron
           sudo usermod -aG docker $USER
 
@@ -82,8 +81,9 @@ jobs:
           fi
           sudo touch /var/run/job.in.progress
           rm -rf cleanup.sh install_cleanup.sh
-          wget https://raw.githubusercontent.com/kubernetes/minikube/master/hack/gh_actions/cleanup.sh
-          wget https://raw.githubusercontent.com/kubernetes/minikube/master/hack/gh_actions/install_cleanup.sh
+          # after this PR is merged, update URLs to get the scripts from github master
+          wget https://storage.googleapis.com/minikube-ci-utils/cleanup.sh
+          wget https://storage.googleapis.com/minikube-ci-utils/install_cleanup.sh
           chmod +x cleanup.sh install_cleanup.sh
           ./install_cleanup.sh
 
diff --git a/.github/workflows/leaderboard.yml b/.github/workflows/leaderboard.yml
index 9eb5d6683..8e2971ca1 100644
--- a/.github/workflows/leaderboard.yml
+++ b/.github/workflows/leaderboard.yml
@@ -14,7 +14,7 @@ jobs:
   update-leaderboard:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 2ffbbcf27..b81a160f5 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -24,7 +24,7 @@ jobs:
   build_minikube:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -51,7 +51,7 @@ jobs:
   lint:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -70,7 +70,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 36e9f5270..c7a097cb9 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -22,7 +22,7 @@ jobs:
   build_minikube:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -49,7 +49,7 @@ jobs:
   lint:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -68,7 +68,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml
index cd03f292a..840240d72 100644
--- a/.github/workflows/sync-minikube.yml
+++ b/.github/workflows/sync-minikube.yml
@@ -17,7 +17,7 @@ jobs:
       run:
         working-directory: ./image-syncer
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
         with:
           repository: denverdino/image-syncer
           path: ./image-syncer
diff --git a/.github/workflows/time-to-k8s-public-chart.yml b/.github/workflows/time-to-k8s-public-chart.yml
index 2f24aa552..7fa130f64 100644
--- a/.github/workflows/time-to-k8s-public-chart.yml
+++ b/.github/workflows/time-to-k8s-public-chart.yml
@@ -19,7 +19,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
@@ -38,7 +38,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - name: Install kubectl
         shell: bash
         run: |
diff --git a/.github/workflows/time-to-k8s.yml b/.github/workflows/time-to-k8s.yml
index 29f1376b5..81489a176 100644
--- a/.github/workflows/time-to-k8s.yml
+++ b/.github/workflows/time-to-k8s.yml
@@ -13,7 +13,7 @@ jobs:
   benchmark:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - name: Checkout submodules
         run: git submodule update --init
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml
index 9a4ee379e..596e6d006 100644
--- a/.github/workflows/translations.yml
+++ b/.github/workflows/translations.yml
@@ -14,7 +14,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-buildkit-version.yml b/.github/workflows/update-buildkit-version.yml
index c139e8708..2da39a82b 100644
--- a/.github/workflows/update-buildkit-version.yml
+++ b/.github/workflows/update-buildkit-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-buildkit-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-cloud-spanner-emulator-version.yml b/.github/workflows/update-cloud-spanner-emulator-version.yml
index d513c3620..9afff4766 100644
--- a/.github/workflows/update-cloud-spanner-emulator-version.yml
+++ b/.github/workflows/update-cloud-spanner-emulator-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-cloud-spanner-emulator-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-containerd-version.yml b/.github/workflows/update-containerd-version.yml
index 4306b94bb..fceece458 100644
--- a/.github/workflows/update-containerd-version.yml
+++ b/.github/workflows/update-containerd-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-containerd-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-cri-o-version.yml b/.github/workflows/update-cri-o-version.yml
index 581bf3e36..b8e03240e 100644
--- a/.github/workflows/update-cri-o-version.yml
+++ b/.github/workflows/update-cri-o-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-cri-o-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-docsy-version.yml b/.github/workflows/update-docsy-version.yml
index 35960b221..d0bf2295b 100644
--- a/.github/workflows/update-docsy-version.yml
+++ b/.github/workflows/update-docsy-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-docsy-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-gh-version.yml b/.github/workflows/update-gh-version.yml
index c37334ccc..2fe77a8b9 100644
--- a/.github/workflows/update-gh-version.yml
+++ b/.github/workflows/update-gh-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-gh-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-golang-version.yml b/.github/workflows/update-golang-version.yml
index 5c4c75c40..a309e69ad 100644
--- a/.github/workflows/update-golang-version.yml
+++ b/.github/workflows/update-golang-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-golang-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-golint-version.yml b/.github/workflows/update-golint-version.yml
index 76b6f5912..a54cd6b0d 100644
--- a/.github/workflows/update-golint-version.yml
+++ b/.github/workflows/update-golint-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-golint-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-gopogh-version.yml b/.github/workflows/update-gopogh-version.yml
index b4f2075bf..01397ae93 100644
--- a/.github/workflows/update-gopogh-version.yml
+++ b/.github/workflows/update-gopogh-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-gopogh-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-hugo-version.yml b/.github/workflows/update-hugo-version.yml
index e574b116a..1ab2cd18b 100644
--- a/.github/workflows/update-hugo-version.yml
+++ b/.github/workflows/update-hugo-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-hugo-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml
index 5019837f8..34b99ae10 100644
--- a/.github/workflows/update-k8s-versions.yml
+++ b/.github/workflows/update-k8s-versions.yml
@@ -14,7 +14,7 @@ jobs:
   bump-k8s-versions:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kubeadm-constants.yml b/.github/workflows/update-kubeadm-constants.yml
index 1de8f321f..18465e6e5 100644
--- a/.github/workflows/update-kubeadm-constants.yml
+++ b/.github/workflows/update-kubeadm-constants.yml
@@ -14,7 +14,7 @@ jobs:
   bump-k8s-versions:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-metrics-server-version.yml b/.github/workflows/update-metrics-server-version.yml
index 33f76a43e..c7a3279ac 100644
--- a/.github/workflows/update-metrics-server-version.yml
+++ b/.github/workflows/update-metrics-server-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-metrics-server-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-runc-version.yml b/.github/workflows/update-runc-version.yml
deleted file mode 100644
index 43e26d813..000000000
--- a/.github/workflows/update-runc-version.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-name: "update-runc-version"
-on:
-  workflow_dispatch:
-  schedule:
-    # every Tuesday at around 3 am pacific/10 am UTC
-    - cron: "0 10 * * 2"
-env:
-  GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.20.2'
-permissions:
-  contents: read
-
-jobs:
-  bump-runc-version:
-    runs-on: ubuntu-20.04
-    steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
-      - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
-        with:
-          go-version: ${{env.GO_VERSION}}
-          cache-dependency-path: ./go.sum
-      - name: Bump runc Version
-        id: bumpRunc
-        run: |
-          make update-runc-version
-          # The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
-          echo "changes<<EOF" >> $GITHUB_OUTPUT
-          echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
-          echo "EOF" >> $GITHUB_OUTPUT
-      - name: Create PR
-        id: createPR
-        if: ${{ steps.bumpRunc.outputs.changes != '' }}
-        uses: peter-evans/create-pull-request@38e0b6e68b4c852a5500a94740f0e535e0d7ba54
-        with:
-          token: ${{ secrets.MINIKUBE_BOT_PAT }}
-          commit-message: bump runc version
-          committer: minikube-bot <minikube-bot@google.com>
-          author: minikube-bot <minikube-bot@google.com>
-          branch: auto_bump_runc_version
-          branch-suffix: short-commit-hash
-          push-to-fork: minikube-bot/minikube
-          base: master
-          delete-branch: true
-          title: 'bump runc version'
-          body: |
-            runc Project released a [new version](https://github.com/opencontainers/runc/releases),
-
-            This PR was auto-generated by `make update-runc-version` using [update-runc-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-runc-version.yml) CI Workflow.
-      - uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975
-        with:
-          github-token: ${{ secrets.MINIKUBE_BOT_PAT }}
-          script: |
-            github.rest.issues.createComment({
-              issue_number: ${{ steps.createPR.outputs.pull-request-number }},
-              owner: context.repo.owner,
-              repo: context.repo.repo,
-              body: 'ok-to-build-image'
-            })
-      - uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975
-        with:
-          github-token: ${{ secrets.MINIKUBE_BOT_PAT }}
-          script: |
-            github.rest.issues.createComment({
-              issue_number: ${{ steps.createPR.outputs.pull-request-number }},
-              owner: context.repo.owner,
-              repo: context.repo.repo,
-              body: 'ok-to-build-iso'
-            })
diff --git a/.github/workflows/yearly-leaderboard.yml b/.github/workflows/yearly-leaderboard.yml
index a7390100b..b7634537e 100644
--- a/.github/workflows/yearly-leaderboard.yml
+++ b/.github/workflows/yearly-leaderboard.yml
@@ -19,7 +19,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/Makefile b/Makefile
index 6866e2919..3716b236c 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.29.0-1679912107-16168
+ISO_VERSION ?= v1.29.0-1679074930-16079
 
 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
 DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
@@ -78,7 +78,7 @@ MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download
 KERNEL_VERSION ?= 5.10.57
 # latest from https://github.com/golangci/golangci-lint/releases
 # update this only by running `make update-golint-version`
-GOLINT_VERSION ?= v1.52.2
+GOLINT_VERSION ?= v1.52.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
@@ -1097,11 +1097,6 @@ update-metrics-server-version:
 	(cd hack/update/metrics_server_version && \
 	 go run update_metrics_server_version.go)
 
-.PHONY: update-runc-version
-update-runc-version:
-	(cd hack/update/runc_version && \
-	 go run update_runc_version.go)
-
 .PHONY: generate-licenses
 generate-licenses:
 	./hack/generate_licenses.sh
diff --git a/cmd/minikube/cmd/config/disable.go b/cmd/minikube/cmd/config/disable.go
index b0838076d..cdf31b934 100644
--- a/cmd/minikube/cmd/config/disable.go
+++ b/cmd/minikube/cmd/config/disable.go
@@ -19,9 +19,7 @@ package config
 import (
 	"github.com/spf13/cobra"
 	"k8s.io/minikube/pkg/addons"
-	"k8s.io/minikube/pkg/minikube/assets"
 	"k8s.io/minikube/pkg/minikube/exit"
-	"k8s.io/minikube/pkg/minikube/mustload"
 	"k8s.io/minikube/pkg/minikube/out"
 	"k8s.io/minikube/pkg/minikube/reason"
 	"k8s.io/minikube/pkg/minikube/style"
@@ -40,18 +38,11 @@ var addonsDisableCmd = &cobra.Command{
 		if addon == "heapster" {
 			exit.Message(reason.AddonUnsupported, "The heapster addon is depreciated. please try to disable metrics-server instead")
 		}
-		_, cc := mustload.Partial(ClusterFlagValue())
-		validAddon, ok := assets.Addons[addon]
-		if !ok {
-			exit.Message(reason.AddonUnsupported, `"'{{.minikube_addon}}' is not a valid minikube addon`, out.V{"minikube_addon": addon})
+		err := addons.SetAndSave(ClusterFlagValue(), addon, "false")
+		if err != nil {
+			exit.Error(reason.InternalAddonDisable, "disable failed", err)
 		}
-		if validAddon.IsEnabled(cc) {
-			err := addons.SetAndSave(ClusterFlagValue(), addon, "false")
-			if err != nil {
-				exit.Error(reason.InternalAddonDisable, "disable failed", err)
-			}
-		}
-		out.Styled(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon})
+		out.Step(style.AddonDisable, `"The '{{.minikube_addon}}' addon is disabled`, out.V{"minikube_addon": addon})
 	},
 }
 
diff --git a/cmd/minikube/cmd/kubectl.go b/cmd/minikube/cmd/kubectl.go
index 81abc6255..6d713ee13 100644
--- a/cmd/minikube/cmd/kubectl.go
+++ b/cmd/minikube/cmd/kubectl.go
@@ -17,14 +17,19 @@ limitations under the License.
 package cmd
 
 import (
+	"bufio"
+	"bytes"
 	"fmt"
 	"os"
 	"os/exec"
 	"path"
+	"strconv"
+	"strings"
 	"syscall"
 
 	"github.com/spf13/cobra"
 	"k8s.io/klog/v2"
+	kcmd "k8s.io/kubectl/pkg/cmd"
 	"k8s.io/minikube/pkg/minikube/config"
 	"k8s.io/minikube/pkg/minikube/constants"
 	"k8s.io/minikube/pkg/minikube/detect"
@@ -52,6 +57,35 @@ but optionally you can also run it directly on the control plane over the ssh co
 This can be useful if you cannot run kubectl locally for some reason, like unsupported
 host. Please be aware that when using --ssh all paths will apply to the remote machine.`,
 	Example: "minikube kubectl -- --help\nminikube kubectl -- get pods --namespace kube-system",
+	ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
+		// Run kubectl __complete $@ to get completions
+		var out bytes.Buffer
+		completeCmd := kcmd.NewDefaultKubectlCommand()
+		completeCmd.SetArgs(append([]string{cobra.ShellCompRequestCmd}, append(args, toComplete)...))
+		completeCmd.SetOut(&out)
+		if err := completeCmd.Execute(); err != nil {
+			return nil, cobra.ShellCompDirectiveError
+		}
+
+		// Scan completions
+		var completions []string
+		scanner := bufio.NewScanner(&out)
+		for scanner.Scan() {
+			// Strip completion description after tab
+			completions = append(completions, strings.Split(scanner.Text(), "\t")[0])
+		}
+		if scanner.Err() != nil || len(completions) == 0 {
+			return nil, cobra.ShellCompDirectiveError
+		}
+
+		// The final line of completions will be a directive (colon + int)
+		directive, err := strconv.Atoi(strings.TrimPrefix(completions[len(completions)-1], ":"))
+		if err != nil {
+			return nil, cobra.ShellCompDirectiveError
+		}
+
+		return completions[:len(completions)-1], cobra.ShellCompDirective(directive)
+	},
 	Run: func(cmd *cobra.Command, args []string) {
 		cc, err := config.Load(ClusterFlagValue())
 
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index 1dee9f387..501b18f2d 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -261,7 +261,7 @@ func runStart(cmd *cobra.Command, _ []string) {
 		}
 	}
 
-	validateBuiltImageVersion(starter.Runner, ds.Name)
+	validateBuiltImageVersion(starter.Runner)
 
 	if existing != nil && driver.IsKIC(existing.Driver) {
 		if viper.GetBool(createMount) {
@@ -389,10 +389,7 @@ func virtualBoxMacOS13PlusWarning(driverName string) {
 `, out.V{"driver": driver})
 }
 
-func validateBuiltImageVersion(r command.Runner, driverName string) {
-	if driverName == driver.None {
-		return
-	}
+func validateBuiltImageVersion(r command.Runner) {
 	res, err := r.RunCmd(exec.Command("cat", "/version.json"))
 	if err != nil {
 		klog.Warningf("Unable to open version.json: %s", err)
diff --git a/cmd/minikube/cmd/tunnel.go b/cmd/minikube/cmd/tunnel.go
index 9eaca459d..4dab89a6a 100644
--- a/cmd/minikube/cmd/tunnel.go
+++ b/cmd/minikube/cmd/tunnel.go
@@ -18,14 +18,12 @@ package cmd
 
 import (
 	"context"
-	"fmt"
 	"os"
 	"os/signal"
 	"path/filepath"
 	"runtime"
 	"strconv"
 
-	"github.com/juju/fslock"
 	"github.com/spf13/cobra"
 
 	"k8s.io/klog/v2"
@@ -46,7 +44,6 @@ import (
 
 var cleanup bool
 var bindAddress string
-var lockHandle *fslock.Lock
 
 // tunnelCmd represents the tunnel command
 var tunnelCmd = &cobra.Command{
@@ -76,9 +73,6 @@ var tunnelCmd = &cobra.Command{
 			}
 		}
 
-		mustLockOrExit()
-		defer cleanupLock()
-
 		// Tunnel uses the k8s clientset to query the API server for services in the LoadBalancerEmulator.
 		// We define the tunnel and minikube error free if the API server responds within a second.
 		// This also contributes to better UX, the tunnel status check can happen every second and
@@ -122,28 +116,6 @@ var tunnelCmd = &cobra.Command{
 	},
 }
 
-func cleanupLock() {
-	if lockHandle != nil {
-		err := lockHandle.Unlock()
-		if err != nil {
-			out.Styled(style.Warning, fmt.Sprintf("failed to release lock during cleanup: %v", err))
-		}
-	}
-}
-
-func mustLockOrExit() {
-	tunnelLockPath := filepath.Join(localpath.MiniPath(), ".tunnel_lock")
-
-	lockHandle = fslock.New(tunnelLockPath)
-	err := lockHandle.TryLock()
-	if err == fslock.ErrLocked {
-		exit.Message(reason.SvcTunnelAlreadyRunning, "Another tunnel process is already running, terminate the existing instance to start a new one")
-	}
-	if err != nil {
-		exit.Error(reason.SvcTunnelStart, "failed to acquire lock due to unexpected error", err)
-	}
-}
-
 func outputTunnelStarted() {
 	out.Styled(style.Success, "Tunnel successfully started")
 	out.Ln("")
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash
index e9b98343a..3f37955bc 100644
--- a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash
@@ -21,4 +21,3 @@ sha256 a034b2273533207d5d96bef8bd3fce1efff85139815efb756d90c705ae1a05ce v1.6.9.t
 sha256 ee170fa73b258e448f9b6729440d38c77d19cd9bec46e45cd195d4670cd8b004 v1.6.15.tar.gz
 sha256 e9b84d52da7743000c1e8dae0175dda16d558a44cf80a5ae2556862205361a64 v1.6.18.tar.gz
 sha256 7a90dc72f44e230eb5228ebac23b37e91f7d26d175d563099a8e1c0592047a28 v1.6.19.tar.gz
-sha256 c80b1c7f04057108059fdec9c936fc1ec0dccafa45c00a1d54f14dceb6500552 v1.7.0.tar.gz
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk
index 519ea55a7..c761eba4a 100644
--- a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk
@@ -3,8 +3,8 @@
 # containerd
 #
 ################################################################################
-CONTAINERD_BIN_AARCH64_VERSION = v1.7.0
-CONTAINERD_BIN_AARCH64_COMMIT = 1fbd70374134b891f97ce19c70b6e50c7b9f4e0d
+CONTAINERD_BIN_AARCH64_VERSION = v1.6.19
+CONTAINERD_BIN_AARCH64_COMMIT = 1e1ea6e986c6c86565bc33d52e34b81b3e2bc71f
 CONTAINERD_BIN_AARCH64_SITE = https://github.com/containerd/containerd/archive
 CONTAINERD_BIN_AARCH64_SOURCE = $(CONTAINERD_BIN_AARCH64_VERSION).tar.gz
 CONTAINERD_BIN_AARCH64_DEPENDENCIES = host-go libgpgme
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash
index e9b98343a..3f37955bc 100644
--- a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash
@@ -21,4 +21,3 @@ sha256 a034b2273533207d5d96bef8bd3fce1efff85139815efb756d90c705ae1a05ce v1.6.9.t
 sha256 ee170fa73b258e448f9b6729440d38c77d19cd9bec46e45cd195d4670cd8b004 v1.6.15.tar.gz
 sha256 e9b84d52da7743000c1e8dae0175dda16d558a44cf80a5ae2556862205361a64 v1.6.18.tar.gz
 sha256 7a90dc72f44e230eb5228ebac23b37e91f7d26d175d563099a8e1c0592047a28 v1.6.19.tar.gz
-sha256 c80b1c7f04057108059fdec9c936fc1ec0dccafa45c00a1d54f14dceb6500552 v1.7.0.tar.gz
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk
index ca603e419..c280bb8ad 100644
--- a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk
@@ -3,8 +3,8 @@
 # containerd
 #
 ################################################################################
-CONTAINERD_BIN_VERSION = v1.7.0
-CONTAINERD_BIN_COMMIT = 1fbd70374134b891f97ce19c70b6e50c7b9f4e0d
+CONTAINERD_BIN_VERSION = v1.6.19
+CONTAINERD_BIN_COMMIT = 1e1ea6e986c6c86565bc33d52e34b81b3e2bc71f
 CONTAINERD_BIN_SITE = https://github.com/containerd/containerd/archive
 CONTAINERD_BIN_SOURCE = $(CONTAINERD_BIN_VERSION).tar.gz
 CONTAINERD_BIN_DEPENDENCIES = host-go libgpgme
diff --git a/deploy/iso/minikube-iso/package/runc-master/runc-master.mk b/deploy/iso/minikube-iso/package/runc-master/runc-master.mk
index cce00e7b7..101ef68e3 100644
--- a/deploy/iso/minikube-iso/package/runc-master/runc-master.mk
+++ b/deploy/iso/minikube-iso/package/runc-master/runc-master.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-RUNC_MASTER_VERSION = v1.1.4
-RUNC_MASTER_COMMIT = 5fd4c4d144137e991c4acebb2146ab1483a97925
+# As of 2022-08-25, v1.1.4
+RUNC_MASTER_VERSION = 5fd4c4d144137e991c4acebb2146ab1483a97925
 RUNC_MASTER_SITE = https://github.com/opencontainers/runc/archive
 RUNC_MASTER_SOURCE = $(RUNC_MASTER_VERSION).tar.gz
 RUNC_MASTER_LICENSE = Apache-2.0
@@ -40,7 +40,7 @@ define RUNC_MASTER_CONFIGURE_CMDS
 endef
 
 define RUNC_MASTER_BUILD_CMDS
-        PWD=$(RUNC_MASTER_COMPILE_SRC) $(RUNC_MASTER_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) BUILDTAGS="$(RUNC_MASTER_GOTAGS)" COMMIT_NO=$(RUNC_MASTER_COMMIT) COMMIT=$(RUNC_MASTER_COMMIT) PREFIX=/usr
+        PWD=$(RUNC_MASTER_COMPILE_SRC) $(RUNC_MASTER_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) BUILDTAGS="$(RUNC_MASTER_GOTAGS)" COMMIT_NO=$(RUNC_MASTER_VERSION) COMMIT=$(RUNC_MASTER_VERSION) PREFIX=/usr
 endef
 
 define RUNC_MASTER_INSTALL_TARGET_CMDS
diff --git a/go.mod b/go.mod
index 7dae6cf44..1d9e60f42 100644
--- a/go.mod
+++ b/go.mod
@@ -115,6 +115,7 @@ require (
 	github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
 	github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
+	github.com/chai2010/gettext-go v1.0.2 // indirect
 	github.com/containerd/cgroups v1.1.0 // indirect
 	github.com/containerd/containerd v1.6.19 // indirect
 	github.com/containerd/stargz-snapshotter/estargz v0.12.1 // indirect
@@ -122,14 +123,18 @@ require (
 	github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
 	github.com/cyphar/filepath-securejoin v0.2.3 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/daviddengcn/go-colortext v1.0.0 // indirect
 	github.com/docker/distribution v2.8.1+incompatible // indirect
 	github.com/docker/docker-credential-helpers v0.7.0 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
+	github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect
+	github.com/fatih/camelcase v1.0.0 // indirect
 	github.com/fatih/color v1.14.1 // indirect
 	github.com/felixge/fgprof v0.9.3 // indirect
 	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/fvbommel/sortorder v1.0.1 // indirect
+	github.com/go-errors/errors v1.0.1 // indirect
 	github.com/go-fonts/liberation v0.2.0 // indirect
 	github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect
 	github.com/go-logr/logr v1.2.3 // indirect
@@ -144,13 +149,16 @@ require (
 	github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
 	github.com/golang/protobuf v1.5.2 // indirect
+	github.com/google/btree v1.0.1 // indirect
 	github.com/google/gnostic v0.5.7-v3refs // indirect
 	github.com/google/go-querystring v1.1.0 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda // indirect
+	github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
 	github.com/googleapis/gax-go/v2 v2.7.1 // indirect
 	github.com/gookit/color v1.5.2 // indirect
+	github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
 	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
 	github.com/hashicorp/go-safetemp v1.0.0 // indirect
 	github.com/hashicorp/go-version v1.6.0 // indirect
@@ -159,10 +167,13 @@ require (
 	github.com/imdario/mergo v0.3.12 // indirect
 	github.com/inconshreveable/mousetrap v1.0.1 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
+	github.com/jonboulle/clockwork v0.2.2 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/juju/errors v0.0.0-20220203013757-bd733f3c86b9 // indirect
 	github.com/klauspost/compress v1.16.0 // indirect
+	github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
+	github.com/lithammer/dedent v1.1.0 // indirect
 	github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
 	github.com/magiconair/properties v1.8.7 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
@@ -179,11 +190,14 @@ require (
 	github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
+	github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
 	github.com/muesli/reflow v0.3.0 // indirect
 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+	github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
 	github.com/opencontainers/image-spec v1.1.0-rc2 // indirect
 	github.com/opencontainers/runtime-spec v1.1.0-rc.1 // indirect
 	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
+	github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
 	github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
 	github.com/prometheus/client_golang v1.14.0 // indirect
 	github.com/prometheus/client_model v0.3.0 // indirect
@@ -201,12 +215,14 @@ require (
 	github.com/tklauser/numcpus v0.6.0 // indirect
 	github.com/ulikunitz/xz v0.5.10 // indirect
 	github.com/vbatts/tar-split v0.11.2 // indirect
+	github.com/xlab/treeprint v1.1.0 // indirect
 	github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
 	github.com/yusufpapurcu/wmi v1.2.2 // indirect
+	go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
 	go.uber.org/atomic v1.10.0 // indirect
 	go.uber.org/multierr v1.8.0 // indirect
 	go.uber.org/zap v1.21.0 // indirect
-	golang.org/x/image v0.5.0 // indirect
+	golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect
 	golang.org/x/net v0.8.0 // indirect
 	golang.org/x/time v0.1.0 // indirect
 	golang.org/x/tools v0.6.0 // indirect
@@ -218,8 +234,14 @@ require (
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
+	k8s.io/cli-runtime v0.26.3 // indirect
+	k8s.io/component-helpers v0.26.3 // indirect
 	k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
+	k8s.io/metrics v0.26.3 // indirect
 	sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
+	sigs.k8s.io/kustomize/api v0.12.1 // indirect
+	sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 // indirect
+	sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
 )
diff --git a/go.sum b/go.sum
index 9f4fa8745..3a00c686c 100644
--- a/go.sum
+++ b/go.sum
@@ -375,6 +375,8 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
+github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
 github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
 github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
 github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
@@ -550,6 +552,8 @@ github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/daviddengcn/go-colortext v1.0.0 h1:ANqDyC0ys6qCSvuEK7l3g5RaehL/Xck9EX8ATG8oKsE=
+github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c=
 github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
 github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
 github.com/dgrijalva/jwt-go v0.0.0-20160831183534-24c63f56522a/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
@@ -621,6 +625,10 @@ github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQL
 github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/exoscale/egoscale v0.9.23/go.mod h1:Ee3U4ZjSDpbbEc9VkQ/jttUU8USE8Nv7L3YzVi03Y1U=
+github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=
+github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
+github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
+github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
@@ -651,6 +659,8 @@ github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49P
 github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
+github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
+github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
 github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ=
 github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
 github.com/go-fonts/latin-modern v0.2.0 h1:5/Tv1Ek/QCr20C6ZOz15vw3g7GELYL98KWr8Hgo+3vk=
@@ -819,8 +829,14 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho=
+github.com/golangplus/bytes v1.0.0/go.mod h1:AdRaCFwmc/00ZzELMWb01soso6W1R/++O1XL80yAn+A=
+github.com/golangplus/fmt v1.0.0/go.mod h1:zpM0OfbMCjPtd2qkTD/jX2MgiFCqklhSUFyDW44gVQE=
+github.com/golangplus/testing v1.0.0 h1:+ZeeiKZENNOMkTTELoSySazi+XaEhVO0mb+eanrSEUQ=
+github.com/golangplus/testing v1.0.0/go.mod h1:ZDreixUV3YzhoVraIDyOzHrr76p6NUh6k/pPg/Q3gYA=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
 github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
 github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
 github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
@@ -879,6 +895,8 @@ github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8I
 github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda h1:KdHPvlgeNEDs8rae032MqFG8LVwcSEivcCjNdVOXRmg=
 github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/google/slowjam v1.0.1 h1:RrR0qrKELIC1iv7r1FgbtohxDl6QytIj67B9brpgrdg=
 github.com/google/slowjam v1.0.1/go.mod h1:13Ws7TkS56WroVpQFout67W7EjTn+VUVhKxJqPgopWg=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -922,6 +940,7 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/grafana/regexp v0.0.0-20220304095617-2e8d9baf4ac2/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A=
+github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=
 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
@@ -1027,6 +1046,7 @@ github.com/johanneswuerbach/nfsexports v0.0.0-20200318065542-c48c3734757f h1:tL0
 github.com/johanneswuerbach/nfsexports v0.0.0-20200318065542-c48c3734757f/go.mod h1:+c1/kUpg2zlkoWqTOvzDs36Wpbm3Gd1nlmtXAEB0WGU=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
 github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
@@ -1094,8 +1114,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
+github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
+github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
 github.com/linode/linodego v1.4.0/go.mod h1:PVsRxSlOiJyvG4/scTszpmZDTdgS+to3X6eS8pRrWI8=
 github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo=
+github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY=
+github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
 github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
 github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
 github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
@@ -1211,6 +1235,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
+github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
+github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
 github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
@@ -1222,6 +1248,7 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
@@ -1309,6 +1336,7 @@ github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrap
 github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
 github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
+github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc=
 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
@@ -1421,6 +1449,7 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg
 github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
 github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
 github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
+github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
 github.com/shirou/gopsutil/v3 v3.23.2 h1:PAWSuiAszn7IhPMBtXsbSCafej7PqUOvY6YywlQUExU=
 github.com/shirou/gopsutil/v3 v3.23.2/go.mod h1:gv0aQw33GLo3pG8SiWKiQrbDzbRY1K80RyZJ7V4Th1M=
 github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
@@ -1486,6 +1515,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
 github.com/stretchr/testify v0.0.0-20160221104443-1f4a1643a57e/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@@ -1549,6 +1579,7 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2
 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
 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 v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
 github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
 github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
@@ -1633,6 +1664,8 @@ go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+go
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ=
 go.opentelemetry.io/proto/otlp v0.12.1/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
+go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
@@ -1710,8 +1743,8 @@ golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+o
 golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
 golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
 golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
-golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI=
-golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4=
+golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 h1:Lj6HJGCSn5AjxRAH2+r35Mir4icalbqku+CLUtjnvXY=
+golang.org/x/image v0.0.0-20220902085622-e7cb96979f69/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1904,6 +1937,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -2033,7 +2067,6 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
 golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -2451,6 +2484,8 @@ k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
 k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
 k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
 k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ=
+k8s.io/cli-runtime v0.26.3 h1:3ULe0oI28xmgeLMVXIstB+ZL5CTGvWSMVMLeHxitIuc=
+k8s.io/cli-runtime v0.26.3/go.mod h1:5YEhXLV4kLt/OSy9yQwtSSNZU2Z7aTEYta1A+Jg4VC4=
 k8s.io/client-go v0.19.1/go.mod h1:AZOIVSI9UUtQPeJD3zJFp15CEhSjRgAuQP5PWRJrCIQ=
 k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y=
 k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
@@ -2468,6 +2503,8 @@ k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMY
 k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI=
 k8s.io/component-base v0.26.3 h1:oC0WMK/ggcbGDTkdcqefI4wIZRYdK3JySx9/HADpV0g=
 k8s.io/component-base v0.26.3/go.mod h1:5kj1kZYwSC6ZstHJN7oHBqcJC6yyn41eR+Sqa/mQc8E=
+k8s.io/component-helpers v0.26.3 h1:eQ682yg1GiIGAsde+l2xL0P2yMYJOvypWsz6h6FtkZo=
+k8s.io/component-helpers v0.26.3/go.mod h1:feC+CaxJXULs5TSD3lG8K5ecftOkF8eY0pHQgd7koEI=
 k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
 k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
 k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
@@ -2497,6 +2534,8 @@ k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhkl
 k8s.io/kubectl v0.26.3 h1:bZ5SgFyeEXw6XTc1Qji0iNdtqAC76lmeIIQULg2wNXM=
 k8s.io/kubectl v0.26.3/go.mod h1:02+gv7Qn4dupzN3fi/9OvqqdW+uG/4Zi56vc4Zmsp1g=
 k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
+k8s.io/metrics v0.26.3 h1:pHI8XtmBbGGdh7bL0s2C3v93fJfxyktHPAFsnRYnDTo=
+k8s.io/metrics v0.26.3/go.mod h1:NNnWARAAz+ZJTs75Z66fJTV7jHcVb3GtrlDszSIr3fE=
 k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
@@ -2517,6 +2556,12 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyz
 sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs=
 sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k=
 sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
+sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
+sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 h1:cDW6AVMl6t/SLuQaezMET8hgnadZGIAr8tUrxFVOrpg=
+sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q=
+sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
+sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
 sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0 h1:IKsKAnscMyIOqyl8s8V7guTcx0QBEa6OT57EPgAgpmM=
 sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0/go.mod h1:DhZ52sQMJHW21+JXyA2LRUPRIxKnrNrwh+QFV+2tVA4=
 sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
diff --git a/hack/jenkins/common.ps1 b/hack/jenkins/common.ps1
index 4d61a2985..a93272d37 100644
--- a/hack/jenkins/common.ps1
+++ b/hack/jenkins/common.ps1
@@ -44,24 +44,27 @@ gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_cleanup_
 gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_cleanup_cron.ps1 out/
 ./out/windows_cleanup_cron.ps1
 
-# Grab all the scripts we'll need for integration tests
-gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
-gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
-gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
-gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
-gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
+# check for Docker CLI
+docker --help
+if ($lastexitcode -gt 0) {
+        echo "Docker CLI not found, exiting."
+        $json = "{`"state`": `"failure`", `"description`": `"Jenkins: Docker CLI not found`", `"target_url`": `"https://storage.googleapis.com/$gcs_bucket/$env:JOB_NAME.txt`", `"context`": `"$env:JOB_NAME`"}"
+        Write-GithubStatus -JsonBody $json
+        Exit $lastexitcode
+}
 
-# Make sure Docker is up and running
-gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/setup_docker_desktop_windows.ps1 out/
-./out/setup_docker_desktop_windows.ps1
-If ($lastexitcode -gt 0) {
-	echo "Docker failed to start, exiting."
-	$json = "{`"state`": `"failure`", `"description`": `"Jenkins: docker failed to start`", `"target_url`": `"https://storage.googleapis.com/$gcs_bucket/$env:JOB_NAME.txt`", `"context`": `"$env:JOB_NAME`"}"
-	Write-GithubStatus -JsonBody $json
-	./out/windows_integration_teardown.ps1
-	Exit $lastexitcode
+if ($driver -eq "docker") {
+	# Make sure Docker is up and running
+	gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/setup_docker_desktop_windows.ps1 out/
+	./out/setup_docker_desktop_windows.ps1
+	If ($lastexitcode -gt 0) {
+		echo "Docker failed to start, exiting."
+		$json = "{`"state`": `"failure`", `"description`": `"Jenkins: docker failed to start`", `"target_url`": `"https://storage.googleapis.com/$gcs_bucket/$env:JOB_NAME.txt`", `"context`": `"$env:JOB_NAME`"}"
+		Write-GithubStatus -JsonBody $json
+		Exit $lastexitcode
+	}
+	docker system prune -a --volumes -f
 }
-docker system prune -a --volumes -f
 
 # install/update Go if required
 gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/installers/check_install_golang.ps1 out/
@@ -75,6 +78,13 @@ if (Test-Path "C:\Go") {
     Remove-Item "C:\Go" -Recurse -Force
 }
 
+# Grab all the scripts we'll need for integration tests
+gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
+gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
+gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
+gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
+gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
+
 ./out/windows_integration_setup.ps1
 
 $started=Get-Date -UFormat %s
diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh
index 599832ebd..bbab392f7 100755
--- a/hack/jenkins/common.sh
+++ b/hack/jenkins/common.sh
@@ -80,7 +80,6 @@ if [ "$(uname)" = "Darwin" ]; then
   if [ "$ARCH" = "arm64" ]; then
     export PATH=$PATH:/opt/homebrew/bin
   fi
-
   if ! bash setup_docker_desktop_macos.sh; then
     retry_github_status "${COMMIT}" "${JOB_NAME}" "failure" "${access_token}" "${public_log_url}" "Jenkins: docker failed to start"
     exit 1
@@ -493,7 +492,6 @@ ${SUDO_PREFIX} rm -f "${KUBECONFIG}" || true
 ${SUDO_PREFIX} rm -f "${TEST_OUT}" || true
 ${SUDO_PREFIX} rm -f "${JSON_OUT}" || true
 ${SUDO_PREFIX} rm -f "${HTML_OUT}" || true
-${SUDO_PREFIX} rm -f "${SUMMARY_OUT}" || true
 
 rmdir "${TEST_HOME}" || true
 echo ">> ${TEST_HOME} completed at $(date)"
diff --git a/hack/jenkins/setup_docker_desktop_macos.sh b/hack/jenkins/setup_docker_desktop_macos.sh
index 9e888dd27..ed090ddb5 100755
--- a/hack/jenkins/setup_docker_desktop_macos.sh
+++ b/hack/jenkins/setup_docker_desktop_macos.sh
@@ -21,10 +21,7 @@ if docker system info > /dev/null 2>&1; then
   exit 0
 fi
 
-# kill Docker so we can freshly start it
-# IMPORTANT: Docker Desktop has to be stopped before Docker Engine
-# See https://github.com/kubernetes/minikube/pull/16150
-osascript -e 'quit app "Docker Desktop"'
+# kill docker first
 osascript -e 'quit app "Docker"'
 
 # wait 2 minutes for it to start back up
diff --git a/hack/update/golang_version/update_golang_version.go b/hack/update/golang_version/update_golang_version.go
index 86747f8a4..0a489f8e0 100644
--- a/hack/update/golang_version/update_golang_version.go
+++ b/hack/update/golang_version/update_golang_version.go
@@ -150,11 +150,6 @@ var (
 				`GO_VERSION: .*`: `GO_VERSION: '{{.StableVersion}}'`,
 			},
 		},
-		".github/workflows/update-runc-version.yml": {
-			Replace: map[string]string{
-				`GO_VERSION: .*`: `GO_VERSION: '{{.StableVersion}}'`,
-			},
-		},
 		".github/workflows/sync-minikube.yml": {
 			Replace: map[string]string{
 				`GO_VERSION: .*`: `GO_VERSION: '{{.StableVersion}}'`,
diff --git a/hack/update/runc_version/update_runc_version.go b/hack/update/runc_version/update_runc_version.go
deleted file mode 100644
index 27c4263d6..000000000
--- a/hack/update/runc_version/update_runc_version.go
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-Copyright 2023 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 main
-
-import (
-	"context"
-	"crypto/sha256"
-	"fmt"
-	"io"
-	"net/http"
-	"os"
-	"strings"
-	"time"
-
-	"k8s.io/klog/v2"
-	"k8s.io/minikube/hack/update"
-)
-
-const cxTimeout = 5 * time.Minute
-
-var (
-	schema = map[string]update.Item{
-		"deploy/iso/minikube-iso/package/runc-master/runc-master.mk": {
-			Replace: map[string]string{
-				`RUNC_MASTER_VERSION = .*`: `RUNC_MASTER_VERSION = {{.Version}}`,
-				`RUNC_MASTER_COMMIT = .*`:  `RUNC_MASTER_COMMIT = {{.Commit}}`,
-			},
-		},
-	}
-)
-
-type Data struct {
-	Version string
-	Commit  string
-}
-
-func main() {
-	ctx, cancel := context.WithTimeout(context.Background(), cxTimeout)
-	defer cancel()
-
-	stable, _, _, err := update.GHReleases(ctx, "opencontainers", "runc")
-	if err != nil {
-		klog.Fatalf("Unable to get runc stable version: %v", err)
-	}
-
-	data := Data{Version: stable.Tag, Commit: stable.Commit}
-
-	update.Apply(schema, data)
-
-	if err := updateHashFiles(data.Version); err != nil {
-		klog.Fatalf("failed to update hash files: %v", err)
-	}
-}
-
-func updateHashFiles(version string) error {
-	r, err := http.Get(fmt.Sprintf("https://github.com/opencontainers/runc/archive/%s.tar.gz", version))
-	if err != nil {
-		return fmt.Errorf("failed to download source code: %v", err)
-	}
-	defer r.Body.Close()
-	b, err := io.ReadAll(r.Body)
-	if err != nil {
-		return fmt.Errorf("failed to read response body: %v", err)
-	}
-	sum := sha256.Sum256(b)
-	filePath := "../../../deploy/iso/minikube-iso/package/runc-master/runc-master.hash"
-	b, err = os.ReadFile(filePath)
-	if err != nil {
-		return fmt.Errorf("failed to read hash file: %v", err)
-	}
-	if strings.Contains(string(b), version) {
-		klog.Infof("hash file already contains %q", version)
-		return nil
-	}
-	f, err := os.OpenFile(filePath, os.O_APPEND|os.O_WRONLY, 0644)
-	if err != nil {
-		return fmt.Errorf("failed to open hash file: %v", err)
-	}
-	defer f.Close()
-	if _, err := f.WriteString(fmt.Sprintf("sha256 %x %s.tar.gz\n", sum, version)); err != nil {
-		return fmt.Errorf("failed to write to hash file: %v", err)
-	}
-	return nil
-}
diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go
index 5fa3dc8ac..14a39dd66 100644
--- a/pkg/minikube/assets/addons.go
+++ b/pkg/minikube/assets/addons.go
@@ -258,12 +258,12 @@ var Addons = map[string]*Addon{
 			"ingress-deploy.yaml",
 			"0640"),
 	}, false, "ingress", "Kubernetes", "", "https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/", map[string]string{
-		// https://github.com/kubernetes/ingress-nginx/blob/e94304d3f6b34a60123e951e2f9d88ad218a7bc1/deploy/static/provider/kind/deploy.yaml#L445
-		"IngressController": "ingress-nginx/controller:v1.7.0@sha256:7612338342a1e7b8090bef78f2a04fffcadd548ccaabe8a47bf7758ff549a5f7",
-		// https://github.com/kubernetes/ingress-nginx/blob/e94304d3f6b34a60123e951e2f9d88ad218a7bc1/deploy/static/provider/kind/deploy.yaml#L552
-		"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v20230312-helm-chart-4.5.2-28-g66a760794@sha256:01d181618f270f2a96c04006f33b2699ad3ccb02da48d0f89b22abce084b292f",
-		// https://github.com/kubernetes/ingress-nginx/blob/e94304d3f6b34a60123e951e2f9d88ad218a7bc1/deploy/static/provider/kind/deploy.yaml#L601
-		"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v20230312-helm-chart-4.5.2-28-g66a760794@sha256:01d181618f270f2a96c04006f33b2699ad3ccb02da48d0f89b22abce084b292f",
+		// https://github.com/kubernetes/ingress-nginx/blob/47d902df0dfbb38f1ab61260b4038b09f9a8e2e2/deploy/static/provider/kind/deploy.yaml#L443
+		"IngressController": "ingress-nginx/controller:v1.6.4@sha256:15be4666c53052484dd2992efacf2f50ea77a78ae8aa21ccd91af6baaa7ea22f",
+		// https://github.com/kubernetes/ingress-nginx/blob/47d902df0dfbb38f1ab61260b4038b09f9a8e2e2/deploy/static/provider/kind/deploy.yaml#L550
+		"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f",
+		// https://github.com/kubernetes/ingress-nginx/blob/47d902df0dfbb38f1ab61260b4038b09f9a8e2e2/deploy/static/provider/kind/deploy.yaml#L599
+		"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f",
 	}, map[string]string{
 		"IngressController":        "registry.k8s.io",
 		"KubeWebhookCertgenCreate": "registry.k8s.io",
@@ -333,7 +333,7 @@ var Addons = map[string]*Addon{
 			"metrics-server-service.yaml",
 			"0640"),
 	}, false, "metrics-server", "Kubernetes", "", "", map[string]string{
-		"MetricsServer": "metrics-server/metrics-server:v0.6.3@sha256:c60778fa1c44d0c5a0c4530ebe83f9243ee6fc02f4c3dc59226c201931350b10",
+		"MetricsServer": "metrics-server/metrics-server:v0.6.2@sha256:f977ad859fb500c1302d9c3428c6271db031bb7431e7076213b676b345a88dc2",
 	}, map[string]string{
 		"MetricsServer": "registry.k8s.io",
 	}),
@@ -744,7 +744,7 @@ var Addons = map[string]*Addon{
 	"cloud-spanner": NewAddon([]*BinAsset{
 		MustBinAsset(addons.CloudSpanner, "cloud-spanner/deployment.yaml", vmpath.GuestAddonsDir, "deployment.yaml", "6040"),
 	}, false, "cloud-spanner", "Google", "", "https://minikube.sigs.k8s.io/docs/handbook/addons/cloud-spanner/", map[string]string{
-		"CloudSpanner": "cloud-spanner-emulator/emulator:1.5.2@sha256:a8dfda058bf21ed7eb50ff89bc333b99a739283942df892a15df58d089f0a3c9",
+		"CloudSpanner": "cloud-spanner-emulator/emulator:1.5.1@sha256:29f74a1b02db686ba4870cd6c4f0b0ae99cb72fe73a2cfc9fb674111465bdf48",
 	}, map[string]string{
 		"CloudSpanner": "gcr.io",
 	}),
diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go
index fcdbb02cf..32bc5e651 100644
--- a/pkg/minikube/constants/constants.go
+++ b/pkg/minikube/constants/constants.go
@@ -32,10 +32,10 @@ var (
 
 const (
 	// DefaultKubernetesVersion is the default Kubernetes version
-	DefaultKubernetesVersion = "v1.26.3"
+	DefaultKubernetesVersion = "v1.26.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.27.0-rc.0"
+	NewestKubernetesVersion = "v1.26.2"
 	// 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
diff --git a/pkg/minikube/constants/constants_kubeadm_images.go b/pkg/minikube/constants/constants_kubeadm_images.go
index 8951e088c..7a104452f 100644
--- a/pkg/minikube/constants/constants_kubeadm_images.go
+++ b/pkg/minikube/constants/constants_kubeadm_images.go
@@ -18,11 +18,6 @@ package constants
 
 var (
 	KubeadmImages = map[string]map[string]string{
-		"v1.27.0-rc.0": {
-			"coredns/coredns": "v1.10.1",
-			"etcd":            "3.5.7-0",
-			"pause":           "3.9",
-		},
 		"v1.27.0-beta.0": {
 			"coredns/coredns": "v1.10.1",
 			"etcd":            "3.5.7-0",
diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go
index c6b2a65f2..dd2e1fadc 100644
--- a/pkg/minikube/cruntime/docker.go
+++ b/pkg/minikube/cruntime/docker.go
@@ -525,7 +525,7 @@ func (r *Docker) ContainerLogCmd(id string, len int, follow bool) string {
 
 // SystemLogCmd returns the command to retrieve system logs
 func (r *Docker) SystemLogCmd(len int) string {
-	return fmt.Sprintf("sudo journalctl -u docker -u cri-docker -n %d", len)
+	return fmt.Sprintf("sudo journalctl -u docker -n %d", len)
 }
 
 // setCGroup configures the docker daemon to use driver as cgroup manager
diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go
index adf94a8f7..6842a6a51 100644
--- a/pkg/minikube/download/iso.go
+++ b/pkg/minikube/download/iso.go
@@ -41,7 +41,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/16168"
+	isoBucket := "minikube-builds/iso/16079"
 
 	return []string{
 		fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH),
diff --git a/pkg/minikube/exit/exit.go b/pkg/minikube/exit/exit.go
index 71a9dcff0..c4352975a 100644
--- a/pkg/minikube/exit/exit.go
+++ b/pkg/minikube/exit/exit.go
@@ -82,12 +82,12 @@ func Advice(r reason.Kind, msg string, advice string, a ...out.V) {
 }
 
 // Error takes a fatal error, matches it against known issues, and outputs the best message for it
-func Error(r reason.Kind, msg string, err error) {
+func Error(r reason.Kind, _ string, err error) {
 	ki := reason.MatchKnownIssue(r, err, runtime.GOOS)
 	if ki != nil {
 		Message(*ki, err.Error())
 	}
 	// By default, unmatched errors should show a link
 	r.NewIssueLink = true
-	Message(r, fmt.Sprintf("%s: %v", msg, err))
+	Message(r, err.Error())
 }
diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go
index 019ce4398..d6dd8a79e 100644
--- a/pkg/minikube/reason/reason.go
+++ b/pkg/minikube/reason/reason.go
@@ -420,8 +420,6 @@ var (
 	SvcTunnelStart = Kind{ID: "SVC_TUNNEL_START", ExitCode: ExSvcError}
 	// minikube could not stop an active tunnel
 	SvcTunnelStop = Kind{ID: "SVC_TUNNEL_STOP", ExitCode: ExSvcError}
-	// another instance of tunnel already running
-	SvcTunnelAlreadyRunning = Kind{ID: "TUNNEL_ALREADY_RUNNING", ExitCode: ExSvcConflict, Style: style.Usage}
 	// minikube was unable to access the service url
 	SvcURLTimeout = Kind{ID: "SVC_URL_TIMEOUT", ExitCode: ExSvcTimeout}
 	// minikube couldn't find the specified service in the specified namespace
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index 1c8d64f93..ee110983d 100644
--- a/site/content/en/docs/commands/start.md
+++ b/site/content/en/docs/commands/start.md
@@ -71,7 +71,7 @@ minikube start [flags]
       --interactive                       Allow user prompts for more information (default true)
       --iso-url strings                   Locations to fetch the minikube ISO from. The list depends on the machine architecture.
       --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.26.3, 'latest' for v1.27.0-rc.0). Defaults to 'stable'.
+      --kubernetes-version string         The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.26.2, 'latest' for v1.26.2). 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 ec7cdb943..a852480d8 100644
--- a/site/content/en/docs/contrib/errorcodes.en.md
+++ b/site/content/en/docs/contrib/errorcodes.en.md
@@ -406,9 +406,6 @@ minikube failed to start a tunnel
 "SVC_TUNNEL_STOP" (Exit code ExSvcError)  
 minikube could not stop an active tunnel  
 
-"TUNNEL_ALREADY_RUNNING" (Exit code ExSvcConflict)  
-another instance of tunnel already running  
-
 "SVC_URL_TIMEOUT" (Exit code ExSvcTimeout)  
 minikube was unable to access the service url  
 
diff --git a/site/content/en/docs/contrib/triage.md b/site/content/en/docs/contrib/triage.md
index c89d242e5..803f24b93 100644
--- a/site/content/en/docs/contrib/triage.md
+++ b/site/content/en/docs/contrib/triage.md
@@ -7,7 +7,7 @@ description: >
   How to triage issues in the minikube repo
 ---
 
-Community triage takes place **every Wednesday** from **11:30AM-12:30PM PST**.
+Community triage takes place **every Wednesday** from **11:05AM-11:55PM PT**.
 
 - Hangouts link: https://meet.google.com/sss-wdet-gwe
 - Google Group: https://groups.google.com/forum/#!forum/minikube-dev
diff --git a/translations/de.json b/translations/de.json
index 91371a172..2eac7eba1 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "Das {{.minikube_addon}} Addon ist deaktiviert",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" wird in der nächsten Version veraltet (deprecated) sein, bitte wechsle zu \"minikube image load\"",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Der Kontext \"{{.context}}\" wurde aktualisiert, um auf {{.hostname}}:{{.port}} zu zeigen",
@@ -72,7 +71,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Ein anderer Hypervisor (wie z.B. VirtualBox) steht im Konflikt mit KVM. Bitte stoppen Sie den anderen Hypervisor oder verwenden Sie --driver um den Hypervisor zu wechseln.",
 	"Another minikube instance is downloading dependencies... ": "Eine andere Minikube-Instanz lädt Abhängigkeiten herunter... ",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "Ein anderes Programm benutzt eine Datei, die Minikube benötigt. Wenn Sie Hyper-V verwenden, versuchen Sie die minikube VM aus dem Hyper-V Manager heraus zu stoppen",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "Benötige mindestens Control Plane Nodes um das Addon zu aktivieren",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the {{.driver}} driver": "Treiber {{.driver}} wurde automatisch ausgewählt",
@@ -959,7 +957,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "Fehler: --output muss entweder 'text', 'yaml' oder 'json' sein",
 	"error: --output must be 'yaml' or 'json'": "Fehler: --output muss entweder 'yaml' oder 'json' sein",
 	"experimental": "experimentell",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "Hinzufügen des Nodes fehlgeschlagen",
 	"failed to open browser: {{.error}}": "Öffnen des Browsers fehlgeschlagen: {{.error}}",
 	"failed to save config": "Speichern der Konfiguration fehlgeschlagen",
diff --git a/translations/es.json b/translations/es.json
index 1421e5113..584411cc4 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "El complemento \"{{.minikube_addon}}\" está desactivado",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "El contexto \"{{.context}}\" ha sido actualizado para apuntar a {{.hostname}}:{{.port}}",
@@ -74,7 +73,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Otro hipervisor, por ejemplo VirtualBox, está en conflicto con KVM. Por favor detén el otro hipervisor, o usa --driver para cambiarlo.",
 	"Another minikube instance is downloading dependencies... ": "Otra instancia de minikube esta descargando dependencias...",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "Otro programa está usando un archivo requerido por minikube. Si estas usando Hyper-V, intenta detener la máquina virtual de minikube desde el administrador de Hyper-V",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "Al menos se necesita un nodo de plano de control para habilitar el addon",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the {{.driver}} driver": "Controlador {{.driver}} seleccionado automáticamente",
@@ -956,7 +954,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "",
 	"failed to save config": "",
diff --git a/translations/fr.json b/translations/fr.json
index 7c5d965f8..6ef240e3b 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "Le module \"{{.minikube_addon}}\" est désactivé",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" sera obsolète dans les prochaines versions, veuillez passer à \"minikube image load\"",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Le contexte \"{{.context}}\" a été mis à jour pour pointer vers {{.hostname}}:{{.port}}",
@@ -74,7 +73,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Un autre hyperviseur, tel que VirtualBox, est en conflit avec KVM. Veuillez arrêter l'autre hyperviseur ou utiliser --driver pour y basculer.",
 	"Another minikube instance is downloading dependencies... ": "Une autre instance minikube télécharge des dépendances",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "Un autre programme utilise un fichier requis par minikube. Si vous utilisez Hyper-V, essayez d'arrêter la machine virtuelle minikube à partir du gestionnaire Hyper-V",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "Un autre processus de tunnel est déjà en cours d'exécution, mettez fin à l'instance existante pour en démarrer une nouvelle",
 	"At least needs control plane nodes to enable addon": "Nécessite au moins des nœuds de plan de contrôle pour activer le module",
 	"Auto-pause is already enabled.": "La pause automatique est déjà activée.",
 	"Automatically selected the {{.driver}} driver": "Choix automatique du pilote {{.driver}}",
@@ -562,7 +560,7 @@
 	"Run a kubectl binary matching the cluster version": "Exécuter un binaire kubectl correspondant à la version du cluster",
 	"Run minikube from the C: drive.": "Exécutez minikube à partir du lecteur C:.",
 	"Run the Kubernetes client, download it if necessary. Remember -- after kubectl!\n\nThis will run the Kubernetes client (kubectl) with the same version as the cluster\n\nNormally it will download a binary matching the host operating system and architecture,\nbut optionally you can also run it directly on the control plane over the ssh connection.\nThis can be useful if you cannot run kubectl locally for some reason, like unsupported\nhost. Please be aware that when using --ssh all paths will apply to the remote machine.": "Exécutez le client Kubernetes, téléchargez-le si nécessaire. N'oubliez pas -- après kubectl !\n\nCela exécutera le client Kubernetes (kubectl) avec la même version que le cluster\n\nNormalement, il téléchargera un binaire correspondant au système d'exploitation et à l'architecture de l'hôte,\nmais vous pouvez également l'exécuter en option directement sur le plan de contrôle via la connexion ssh.\nCela peut être utile si vous ne pouvez pas exécuter kubectl localement pour une raison quelconque, comme un hôte non pris en charge. Veuillez noter que lors de l'utilisation de --ssh, tous les chemins s'appliqueront à la machine distante.",
-	"Run the following:\n$ sudo mkdir -p /etc/systemd/system/user@.service.d\n$ cat \u003c\u003cEOF | sudo tee /etc/systemd/system/user@.service.d/delegate.conf\n[Service]\nDelegate=cpu cpuset io memory pids\nEOF\n$ sudo systemctl daemon-reload": "Exécutez ce qui suit :\n$ sudo mkdir -p /etc/systemd/system/user@.service.d\n$ cat \u003c\u003cEOF | sudo tee /etc/systemd/system/user@.service.d/delegate.conf\n[Service]\nDelegate=cpu cpuset io memory pids\nEOF\n$ sudo systemctl daemon-reload",
+	"Run the following:\n$ sudo mkdir -p /etc/systemd/system/user@.service.d\n$ cat \u003c\u003cEOF | sudo tee /etc/systemd/system/user@.service.d/delegate.conf\n[Service]\nDelegate=cpu cpuset io memory pids\nEOF\n$ sudo systemctl daemon-reload": "",
 	"Run: 'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All -All'": "Exécutez : 'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All -All'",
 	"Run: 'kubectl delete clusterrolebinding kubernetes-dashboard'": "Exécutez : 'kubectl delete clusterrolebinding kubernetes-dashboard'",
 	"Run: 'minikube delete --all' to clean up all the abandoned networks.": "Exécutez : 'minikube delete --all' pour nettoyer tous les réseaux abandonnés.",
@@ -939,7 +937,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "erreur : --output doit être 'text', 'yaml' ou 'json'",
 	"error: --output must be 'yaml' or 'json'": "erreur : --output doit être 'yaml' ou 'json'",
 	"experimental": "expérimental",
-	"failed to acquire lock due to unexpected error": "échec de l'acquisition du verrou en raison d'une erreur inattendue",
 	"failed to add node": "échec de l'ajout du nœud",
 	"failed to open browser: {{.error}}": "échec de l'ouverture du navigateur : {{.error}}",
 	"failed to save config": "échec de l'enregistrement de la configuration",
diff --git a/translations/ja.json b/translations/ja.json
index 2838522e5..e2e040df5 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' アドオンが無効です",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "「minikube cache」は今後のバージョンで廃止予定になりますので、「minikube image load」に切り替えてください",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "「{{.context}}」コンテキストが更新されて、{{.hostname}}:{{.port}} を指すようになりました",
@@ -68,7 +67,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "VirtualBox などの別のハイパーバイザーが、KVM と競合しています。他のハイパーバイザーを停止するか、--driver を使用して切り替えてください。",
 	"Another minikube instance is downloading dependencies... ": "別の minikube のインスタンスが、依存関係をダウンロードしています... ",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "別のプログラムが、minikube に必要なファイルを使用しています。Hyper-V を使用している場合は、Hyper-V マネージャー内から minikube VM を停止してみてください",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "アドオンを有効にするには、少なくともコントロールプレーンノードが必要です",
 	"Auto-pause is already enabled.": "自動一時停止は既に有効になっています。",
 	"Automatically selected the {{.driver}} driver": "{{.driver}} ドライバーが自動的に選択されました",
@@ -897,7 +895,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "エラー: --output は 'text'、'yaml'、'json' のいずれかでなければなりません",
 	"error: --output must be 'yaml' or 'json'": "エラー: --output は 'yaml'、'json' のいずれかでなければなりません",
 	"experimental": "実験的",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "ノード追加に失敗しました",
 	"failed to open browser: {{.error}}": "ブラウザー起動に失敗しました: {{.error}}",
 	"failed to save config": "設定保存に失敗しました",
diff --git a/translations/ko.json b/translations/ko.json
index 62a9eedb4..94db97550 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "\"The '{{.minikube_addon}}' 이 비활성화되었습니다",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\"는 추후 버전에서 사용 중단됩니다. \"minikube image load\"로 전환하십시오",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "\"{{.context}}\" 컨텍스트가 {{.hostname}}:{{.port}}로 갱신되었습니다.",
@@ -76,7 +75,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "VirtualBox 와 같은 또 다른 하이퍼바이저가 KVM 과 충돌이 발생합니다. 다른 하이퍼바이저를 중단하거나 --driver 로 변경하세요",
 	"Another minikube instance is downloading dependencies... ": "",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "",
 	"Auto-pause is already enabled.": "자동 일시 정지 설정이 이미 활성화되어있습니다",
 	"Automatically selected the {{.driver}} driver": "자동적으로 {{.driver}} 드라이버가 선택되었습니다",
@@ -959,7 +957,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "",
 	"failed to save config": "",
diff --git a/translations/pl.json b/translations/pl.json
index 417f2bc76..f6046e034 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "",
@@ -74,7 +73,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Inny hiperwizor, taki jak Virtualbox, powoduje konflikty z KVM. Zatrzymaj innego hiperwizora lub użyj flagi --driver żeby go zmienić.",
 	"Another minikube instance is downloading dependencies... ": "Inny program minikube już pobiera zależności...",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "Inny program używa pliku wymaganego przez minikube. Jeśli używasz Hyper-V, spróbuj zatrzymać maszynę wirtualną minikube z poziomu managera Hyper-V",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "Wymaga węzłów z płaszczyzny kontrolnej do włączenia addona",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the {{.driver}} driver": "Automatycznie wybrano sterownik {{.driver}}",
@@ -968,7 +966,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "Nie udało się otworzyć przeglądarki: {{.error}}",
 	"failed to save config": "",
diff --git a/translations/ru.json b/translations/ru.json
index 9f8909819..f2d0ae2fa 100644
--- a/translations/ru.json
+++ b/translations/ru.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "\"Дополнение '{{.minikube_addon}}' выключено",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "Контекст \"{{.context}}\" был обновлён и теперь указывает на {{.hostname}}:{{.port}}",
@@ -66,7 +65,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "",
 	"Another minikube instance is downloading dependencies... ": "",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the {{.driver}} driver": "",
@@ -888,7 +886,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "",
 	"failed to save config": "",
diff --git a/translations/strings.txt b/translations/strings.txt
index 44f05813c..c56497e05 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "",
@@ -66,7 +65,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "",
 	"Another minikube instance is downloading dependencies... ": "",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the {{.driver}} driver": "",
@@ -888,7 +886,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "",
 	"failed to save config": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index 58129009d..5c6638c5c 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -1,6 +1,5 @@
 {
 	"\n\n": "",
-	"\"'{{.minikube_addon}}' is not a valid minikube addon": "",
 	"\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' 插件已被禁用",
 	"\"minikube cache\" will be deprecated in upcoming versions, please switch to \"minikube image load\"": "\"minikube cache\" 将在即将发布的版本中弃用，请切换至 \"minikube image load\"",
 	"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "",
@@ -85,7 +84,6 @@
 	"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --vm-driver to switch to it.": "另外一个管理程序与 KVM 产生了冲突，如 VirtualBox。请停止其他的管理程序",
 	"Another minikube instance is downloading dependencies... ": "",
 	"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "",
-	"Another tunnel process is already running, terminate the existing instance to start a new one": "",
 	"At least needs control plane nodes to enable addon": "",
 	"Auto-pause is already enabled.": "",
 	"Automatically selected the '{{.driver}}' driver": "自动选择 '{{.driver}}' 驱动",
@@ -825,17 +823,17 @@
 	"The minikube {{.driver_name}} container exited unexpectedly.": "",
 	"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
 	"The name of the network plugin": "网络插件的名称",
-	"The named space to activate after start": "启动后要激活的命名空间",
-	"The node to build on. Defaults to the primary control plane.": "要构建的节点，默认为主控制平面",
-	"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "要检查状态的节点，默认为控制平面。默认格式为所有节点上的状态保留为空",
-	"The node to get IP. Defaults to the primary control plane.": "要获取IP的节点，默认为主控制平面",
-	"The node to get logs from. Defaults to the primary control plane.": "要从中获取日志的节点，默认为主控制平面",
-	"The node to get ssh-key path. Defaults to the primary control plane.": "获取ssh密钥路径的节点，默认为主控制平面",
-	"The node to ssh into. Defaults to the primary control plane.": "要ssh访问的节点，默认为主控制平面",
-	"The node {{.name}} has ran out of available PIDs.": "节点 {{.name}} 已用完可用PID",
-	"The node {{.name}} has ran out of disk space.": "节点 {{.name}} 磁盘空间不足",
-	"The node {{.name}} has ran out of memory.": "节点 {{.name}} 内存不足",
-	"The node {{.name}} network is not available. Please verify network settings.": "节点 {{.name}} 网络不可用，请检查网络设置",
+	"The named space to activate after start": "",
+	"The node to build on. Defaults to the primary control plane.": "",
+	"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
+	"The node to get IP. Defaults to the primary control plane.": "",
+	"The node to get logs from. Defaults to the primary control plane.": "",
+	"The node to get ssh-key path. Defaults to the primary control plane.": "",
+	"The node to ssh into. Defaults to the primary control plane.": "",
+	"The node {{.name}} has ran out of available PIDs.": "",
+	"The node {{.name}} has ran out of disk space.": "",
+	"The node {{.name}} has ran out of memory.": "",
+	"The node {{.name}} network is not available. Please verify network settings.": "",
 	"The none driver is not compatible with multi-node clusters.": "",
 	"The none driver with Kubernetes v1.24+ and the docker container-runtime requires cri-dockerd.\n\t\t\n\t\tPlease install cri-dockerd using these instructions:\n\n\t\thttps://github.com/Mirantis/cri-dockerd#build-and-install": "",
 	"The none driver with Kubernetes v1.24+ and the docker container-runtime requires dockerd.\n\t\t\n\t\tPlease install dockerd using these instructions:\n\n\t\thttps://docs.docker.com/engine/install/": "",
@@ -1076,7 +1074,6 @@
 	"error: --output must be 'text', 'yaml' or 'json'": "",
 	"error: --output must be 'yaml' or 'json'": "",
 	"experimental": "",
-	"failed to acquire lock due to unexpected error": "",
 	"failed to add node": "",
 	"failed to open browser: {{.error}}": "",
 	"failed to save config": "",


Test patch:
diff --git a/.github/workflows/update-gotestsum-version.yml b/.github/workflows/update-gotestsum-version.yml
index b65c14e0b..2c96ab2ea 100644
--- a/.github/workflows/update-gotestsum-version.yml
+++ b/.github/workflows/update-gotestsum-version.yml
@@ -14,7 +14,7 @@ jobs:
   bump-gotestsum-version:
     runs-on: ubuntu-20.04
     steps:
-      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f
       - uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-api-port.yaml
deleted file mode 100644
index 20bb51125..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-api-port.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 12345
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /run/containerd/containerd.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:12345
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-pod-network-cidr.yaml
deleted file mode 100644
index 5c198ee80..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd-pod-network-cidr.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /run/containerd/containerd.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "192.168.32.0/20"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "192.168.32.0/20"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd.yaml
deleted file mode 100644
index ae1a7429d..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/containerd.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /run/containerd/containerd.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio-options-gates.yaml
deleted file mode 100644
index efa13c149..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio-options-gates.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/crio/crio.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-    fail-no-swap: "true"
-    feature-gates: "a=b"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    feature-gates: "a=b"
-    kube-api-burst: "32"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    feature-gates: "a=b"
-    leader-elect: "false"
-    scheduler-name: "mini-scheduler"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
-mode: "iptables"
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio.yaml
deleted file mode 100644
index b3ac73289..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/crio.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/crio/crio.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/default.yaml
deleted file mode 100644
index 446215ae6..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/default.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/dockershim.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/dns.yaml
deleted file mode 100644
index 11532aa4d..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/dns.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/dockershim.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: minikube.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "minikube.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/image-repository.yaml
deleted file mode 100644
index 011b30fd6..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/image-repository.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/dockershim.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-imageRepository: test/repo
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/options.yaml
deleted file mode 100644
index 2b76cf847..000000000
--- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.27/options.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: InitConfiguration
-localAPIEndpoint:
-  advertiseAddress: 1.1.1.1
-  bindPort: 8443
-bootstrapTokens:
-  - groups:
-      - system:bootstrappers:kubeadm:default-node-token
-    ttl: 24h0m0s
-    usages:
-      - signing
-      - authentication
-nodeRegistration:
-  criSocket: /var/run/dockershim.sock
-  name: "mk"
-  kubeletExtraArgs:
-    node-ip: 1.1.1.1
-  taints: []
----
-apiVersion: kubeadm.k8s.io/v1beta3
-kind: ClusterConfiguration
-apiServer:
-  certSANs: ["127.0.0.1", "localhost", "1.1.1.1"]
-  extraArgs:
-    enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
-    fail-no-swap: "true"
-controllerManager:
-  extraArgs:
-    allocate-node-cidrs: "true"
-    kube-api-burst: "32"
-    leader-elect: "false"
-scheduler:
-  extraArgs:
-    leader-elect: "false"
-    scheduler-name: "mini-scheduler"
-certificatesDir: /var/lib/minikube/certs
-clusterName: mk
-controlPlaneEndpoint: control-plane.minikube.internal:8443
-etcd:
-  local:
-    dataDir: /var/lib/minikube/etcd
-    extraArgs:
-      proxy-refresh-interval: "70000"
-kubernetesVersion: v1.27.0-rc.0
-networking:
-  dnsDomain: cluster.local
-  podSubnet: "10.244.0.0/16"
-  serviceSubnet: 10.96.0.0/12
----
-apiVersion: kubelet.config.k8s.io/v1beta1
-kind: KubeletConfiguration
-authentication:
-  x509:
-    clientCAFile: /var/lib/minikube/certs/ca.crt
-cgroupDriver: systemd
-hairpinMode: hairpin-veth
-runtimeRequestTimeout: 15m
-clusterDomain: "cluster.local"
-# disable disk resource management by default
-imageGCHighThresholdPercent: 100
-evictionHard:
-  nodefs.available: "0%"
-  nodefs.inodesFree: "0%"
-  imagefs.available: "0%"
-failSwapOn: false
-staticPodPath: /etc/kubernetes/manifests
----
-apiVersion: kubeproxy.config.k8s.io/v1alpha1
-kind: KubeProxyConfiguration
-clusterCIDR: "10.244.0.0/16"
-metricsBindAddress: 0.0.0.0:10249
-conntrack:
-  maxPerCore: 0
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"
-  tcpEstablishedTimeout: 0s
-# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_close"
-  tcpCloseWaitTimeout: 0s
-mode: "iptables"
diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md
index acf33de69..40c3a0cc2 100644
--- a/site/content/en/docs/contrib/tests.en.md
+++ b/site/content/en/docs/contrib/tests.en.md
@@ -409,9 +409,6 @@ makes sure the minikube tunnel command works as expected
 #### validateTunnelStart
 starts `minikube tunnel`
 
-#### validateNoSecondTunnel
-ensures only 1 tunnel can run simultaneously
-
 #### validateServiceStable
 starts nginx pod, nginx service and waits nginx having loadbalancer ingress IP
 
diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go
index 4c2841674..f40a4f93c 100644
--- a/test/integration/addons_test.go
+++ b/test/integration/addons_test.go
@@ -156,11 +156,6 @@ func TestAddons(t *testing.T) {
 		if err != nil {
 			t.Errorf("failed to disable dashboard addon: args %q : %v", rr.Command(), err)
 		}
-		// Disable a non-enabled addon
-		rr, err = Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "gvisor", "-p", profile))
-		if err != nil {
-			t.Errorf("failed to disable non-enabled addon: args %q : %v", rr.Command(), err)
-		}
 	})
 }
 
@@ -188,17 +183,12 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
 	ingressYaml := "nginx-ingress-v1.yaml"
 	ingressDNSYaml := "ingress-dns-example-v1.yaml"
 	v, err := client.ServerVersion()
-	if err == nil {
-		// for pre-release k8s version, remove any "+" suffix in minor version to be semver-compliant and not panic
-		// ref: https://github.com/kubernetes/minikube/pull/16145#issuecomment-1483283260
-		minor := strings.TrimSuffix(v.Minor, "+")
-		if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, minor))) {
-			// legacy: k8s < v1.19 & ingress api v1beta1
-			ingressYaml = "nginx-ingress-v1beta1.yaml"
-			ingressDNSYaml = "ingress-dns-example-v1beta1.yaml"
-		}
-	} else {
+	if err != nil {
 		t.Log("failed to get k8s version, assuming v1.19+ => ingress api v1")
+	} else if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, v.Minor))) {
+		// legacy: k8s < v1.19 & ingress api v1beta1
+		ingressYaml = "nginx-ingress-v1beta1.yaml"
+		ingressDNSYaml = "ingress-dns-example-v1beta1.yaml"
 	}
 
 	// create networking.k8s.io/v1 ingress
diff --git a/test/integration/functional_test_tunnel_test.go b/test/integration/functional_test_tunnel_test.go
index 97c05ae22..0d0317ecd 100644
--- a/test/integration/functional_test_tunnel_test.go
+++ b/test/integration/functional_test_tunnel_test.go
@@ -38,7 +38,6 @@ import (
 	"k8s.io/minikube/pkg/kapi"
 	"k8s.io/minikube/pkg/minikube/config"
 	"k8s.io/minikube/pkg/minikube/detect"
-	"k8s.io/minikube/pkg/minikube/reason"
 	"k8s.io/minikube/pkg/util"
 	"k8s.io/minikube/pkg/util/retry"
 )
@@ -62,7 +61,6 @@ func validateTunnelCmd(ctx context.Context, t *testing.T, profile string) {
 			name      string
 			validator validateFunc
 		}{
-			{"RunSecondTunnel", validateNoSecondTunnel},            // Ensure no two tunnels run simultaneously
 			{"StartTunnel", validateTunnelStart},                   // Start tunnel
 			{"WaitService", validateServiceStable},                 // Wait for service is stable
 			{"AccessDirect", validateAccessDirect},                 // Access test for loadbalancer IP
@@ -133,69 +131,6 @@ func validateTunnelStart(ctx context.Context, t *testing.T, profile string) {
 	tunnelSession = *ss
 }
 
-// validateNoSecondTunnel ensures only 1 tunnel can run simultaneously
-func validateNoSecondTunnel(ctx context.Context, t *testing.T, profile string) {
-	checkRoutePassword(t)
-
-	type SessInfo struct {
-		Stdout   string
-		Stderr   string
-		ExitCode int
-	}
-
-	sessCh := make(chan SessInfo)
-	sessions := make([]*StartSession, 2)
-
-	var runTunnel = func(idx int) {
-		args := []string{"-p", profile, "tunnel", "--alsologtostderr"}
-
-		ctx2, cancel := context.WithTimeout(ctx, Seconds(15))
-		defer cancel()
-		session, err := Start(t, exec.CommandContext(ctx2, Target(), args...))
-		if err != nil {
-			t.Errorf("failed to start tunnel: %v", err)
-		}
-		sessions[idx] = session
-
-		stderr, err := io.ReadAll(session.Stderr)
-		if err != nil {
-			t.Logf("Failed to read stderr: %v", err)
-		}
-		stdout, err := io.ReadAll(session.Stdout)
-		if err != nil {
-			t.Logf("Failed to read stdout: %v", err)
-		}
-
-		exitCode := 0
-		err = session.cmd.Wait()
-		if err != nil {
-			if exErr, ok := err.(*exec.ExitError); !ok {
-				t.Logf("failed to coerce exit error: %v", err)
-				exitCode = -1
-			} else {
-				exitCode = exErr.ExitCode()
-			}
-		}
-
-		sessCh <- SessInfo{Stdout: string(stdout), Stderr: string(stderr), ExitCode: exitCode}
-	}
-
-	// One of the two processes must fail to acquire lock and die. This should be the first process to die.
-	go runTunnel(0)
-	go runTunnel(1)
-
-	sessInfo := <-sessCh
-
-	if sessInfo.ExitCode != reason.SvcTunnelAlreadyRunning.ExitCode {
-		t.Errorf("tunnel command failed with unexpected error: exit code %d. stderr: %s\n stdout: %s", sessInfo.ExitCode, sessInfo.Stderr, sessInfo.Stdout)
-	}
-
-	for _, sess := range sessions {
-		sess.Stop(t)
-	}
-	<-sessCh
-}
-
 // validateServiceStable starts nginx pod, nginx service and waits nginx having loadbalancer ingress IP
 func validateServiceStable(ctx context.Context, t *testing.T, profile string) {
 	if detect.GithubActionRunner() && runtime.GOOS == "darwin" {