Repository: kubernetes/minikube
Pull request #19287 (2024-07-17 22:17:42)

testing: Fix volcano addon failing other addons
Fixes https://github.com/kubernetes/minikube/issues/19274

When the volcano addon is enabling, and before all the pods are up, some kubectl commands result in errors.
```
$ kubectl run --rm registry-test --restart=Never --image=gcr.io/k8s-minikube/busybox -it -- sh -c "wget --spider -S http://registry.kube-system.svc.cluster.local"
Error from server (InternalError): Internal error occurred: failed calling webhook "mutatepod.volcano.sh": failed to call webhook: Post "https://volcano-admission-service.volcano-system.svc:443/pods/mutate?timeout=10s": dial tcp 10.99.17.13:443: connect: connection refused
```

This is causing many of the other addons tests to fail, so moving the volcano test to serial and running it first, this will ensure the pods are up and not disrupt the other addon tests.

Also added `addons disable` for addon tests missing them.


Patch:
diff --git a/.github/workflows/update-iso-image-versions.yml b/.github/workflows/update-iso-image-versions.yml
index f5e42fd0a..a03514c0b 100644
--- a/.github/workflows/update-iso-image-versions.yml
+++ b/.github/workflows/update-iso-image-versions.yml
@@ -20,10 +20,11 @@ jobs:
           OLD_BUILDKIT=$(DEP=buildkit make get-dependency-version)
           OLD_CNI_PLUGINS=$(DEP=cni-plugins make get-dependency-version)
           OLD_CONTAINERD=$(DEP=containerd make get-dependency-version)
-          OLD_CRIO=$(DEP=cri-o make get-dependency-version)
           OLD_CRICTL=$(DEP=crictl make get-dependency-version)
+          OLD_CRIO=$(DEP=cri-o make get-dependency-version)
           OLD_CRUN=$(DEP=crun make get-dependency-version)
           OLD_DOCKER=$(DEP=docker make get-dependency-version)
+          OLD_DOCKER_BUILDX=$(DEP=docker-buildx make get-dependency-version)
           OLD_GO=$(DEP=go make get-dependency-version)
           OLD_NERDCTL=$(DEP=nerdctl make get-dependency-version)
           OLD_NERDCTLD=$(DEP=nerdctld make get-dependency-version)
@@ -37,6 +38,7 @@ jobs:
           # make update-crictl-version
           make update-crun-version
           make update-docker-version
+          make update-docker-buildx-version
           make update-golang-version
           make update-nerdctl-version
           make update-nerdctld-version
@@ -45,10 +47,11 @@ jobs:
           NEW_BUILDKIT=$(DEP=buildkit make get-dependency-version)
           NEW_CNI_PLUGINS=$(DEP=cni-plugins make get-dependency-version)
           NEW_CONTAINERD=$(DEP=containerd make get-dependency-version)
-          NEW_CRIO=$(DEP=cri-o make get-dependency-version)
           NEW_CRICTL=$(DEP=crictl make get-dependency-version)
+          NEW_CRIO=$(DEP=cri-o make get-dependency-version)
           NEW_CRUN=$(DEP=crun make get-dependency-version)
           NEW_DOCKER=$(DEP=docker make get-dependency-version)
+          NEW_DOCKER_BUILDX=$(DEP=docker-buildx make get-dependency-version)
           NEW_GO=$(DEP=go make get-dependency-version)
           NEW_NERDCTL=$(DEP=nerdctl make get-dependency-version)
           NEW_NERDCTLD=$(DEP=nerdctld make get-dependency-version)
@@ -67,14 +70,14 @@ jobs:
             echo "### Update containerd from $OLD_CONTAINERD to $NEW_CONTAINERD" >> "$GITHUB_OUTPUT"
             echo "[Release notes](https://github.com/containerd/containerd/releases)" >> "$GITHUB_OUTPUT"
           fi
-          if [ "$OLD_CRIO" != "$NEW_CRIO" ]; then
-            echo "### Update CRI-O from $OLD_CRIO to $NEW_CRIO" >> "$GITHUB_OUTPUT"
-            echo "[Release notes](https://github.com/cri-o/cri-o/releases)" >> "$GITHUB_OUTPUT"
-          fi
           if [ "$OLD_CRICTL" != "$NEW_CRICTL" ]; then
             echo "### Update crictl from $OLD_CRICTL to $NEW_CRICTL" >> "$GITHUB_OUTPUT"
             echo "[Release notes](https://github.com/kubernetes-sigs/cri-tools/releases)" >> "$GITHUB_OUTPUT"
           fi
+          if [ "$OLD_CRIO" != "$NEW_CRIO" ]; then
+            echo "### Update CRI-O from $OLD_CRIO to $NEW_CRIO" >> "$GITHUB_OUTPUT"
+            echo "[Release notes](https://github.com/cri-o/cri-o/releases)" >> "$GITHUB_OUTPUT"
+          fi
           if [ "$OLD_CRUN" != "$NEW_CRUN" ]; then
             echo "### Update crun from $OLD_CRUN to $NEW_CRUN" >> "$GITHUB_OUTPUT"
             echo "[Release notes](https://github.com/containers/crun/releases)" >> "$GITHUB_OUTPUT"
@@ -83,6 +86,10 @@ jobs:
             echo "### Update Docker from $OLD_DOCKER to $NEW_DOCKER" >> "$GITHUB_OUTPUT"
             echo "[Release notes](https://github.com/moby/moby/releases)" >> "$GITHUB_OUTPUT"
           fi
+          if [ "$OLD_DOCKER_BUILDX" != "$NEW_DOCKER_BUILDX" ]; then
+            echo "### Update buildx from $OLD_DOCKER_BUILDX to $NEW_DOCKER_BUILDX" >> "$GITHUB_OUTPUT"
+            echo "[Release notes](https://github.com/docker/buildx/releases)" >> "$GITHUB_OUTPUT"
+          fi
           if [ "$OLD_GO" != "$NEW_GO" ]; then
             echo "### Update Go from $OLD_GO to $NEW_GO" >> "$GITHUB_OUTPUT"
           fi
diff --git a/Makefile b/Makefile
index 27ed10b69..3fa042dcd 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@ KIC_VERSION ?= $(shell grep -E "Version =" pkg/drivers/kic/types.go | cut -d \"
 HUGO_VERSION ?= $(shell grep -E "HUGO_VERSION = \"" netlify.toml | cut -d \" -f2)
 
 # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions
-ISO_VERSION ?= v1.33.1-1721146474-19264
+ISO_VERSION ?= v1.33.1-1721690939-19319
 
 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
 DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/Config.in
index 7706f08f5..c3b8d5248 100644
--- a/deploy/iso/minikube-iso/arch/aarch64/package/Config.in
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/Config.in
@@ -1,9 +1,10 @@
 menu "System tools aarch64"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/buildkit-bin-aarch64/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cni-plugins-latest-aarch64/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/containerd-bin-aarch64/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cri-dockerd-aarch64/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/crictl-bin-aarch64/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/docker-bin-aarch64/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cni-plugins-latest-aarch64/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/containerd-bin-aarch64/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/docker-buildx-aarch64/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/nerdctl-bin-aarch64/Config.in"
 endmenu
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 2580b2b6a..eeab8a324 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
@@ -36,3 +36,4 @@ sha256 2dc491434b182334b51350f810ed68ace3624c8a2d6e1eac490d93c653498a33 v1.7.15.
 sha256 fa16a85b3759a716728c00dda2fff8484b3811f62250724b77d05c115c4522a7 v1.7.17.tar.gz
 sha256 91685cebd50e3f353a402adadf61e2a6aeda3f63754fa0fcc978a043e00acac4 v1.7.18.tar.gz
 sha256 152e23d017b053ee786080ec0410c98aa91967f3aaebdcfaaf4521ac2172ef62 v1.7.19.tar.gz
+sha256 c4268561e514a2e8322bc8cdd39113d5e164fb31c2cef76f479d683395ea9bd6 v1.7.20.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 0dc987457..7ec27abb8 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.19
-CONTAINERD_BIN_AARCH64_COMMIT = 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
+CONTAINERD_BIN_AARCH64_VERSION = v1.7.20
+CONTAINERD_BIN_AARCH64_COMMIT = 8fc6bcff51318944179630522a095cc9dbf9f353
 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/aarch64/package/docker-bin-aarch64/docker-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash
index 3efcb752f..94cab0a97 100644
--- a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash
@@ -23,3 +23,4 @@ sha256 6f1a5fb161aef875d305ee4f79e65492b3c13e90dbe0a339df2ad6515e4f6849  docker-
 sha256 8ee4de2ee8598c5d549a181d89eede9ac325c3c9df93da04e557253e487e68b0  docker-27.0.1.tgz
 sha256 4973e5e5bb2aeded816b9df4d281652535e82d6a8341653ae96ba7b7832dbb0c  docker-27.0.2.tgz
 sha256 b6705031e453bd3754b14da5bf0160458322e4927733d31f1e8e6e4d63d391c1  docker-27.0.3.tgz
+sha256 f28bd10be2841063bdd2cc5354eae265df124835f841c1843e1264bab93c91a8  docker-27.1.0.tgz
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk
index de67fe322..d84991b4d 100644
--- a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DOCKER_BIN_AARCH64_VERSION = 27.0.3
+DOCKER_BIN_AARCH64_VERSION = 27.1.0
 DOCKER_BIN_AARCH64_SITE = https://download.docker.com/linux/static/stable/aarch64
 DOCKER_BIN_AARCH64_SOURCE = docker-$(DOCKER_BIN_AARCH64_VERSION).tgz
 
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/Config.in
new file mode 100644
index 000000000..cd460bba1
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_DOCKER_BUILDX_AARCH64
+        bool "docker-buildx"
+        default y
+        depends on BR2_aarch64
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.hash b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.hash
new file mode 100644
index 000000000..ade73055e
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.hash
@@ -0,0 +1,1 @@
+sha256 8c9dd3fb18ccba399223ba0f623c9fe09fa38fb2a05283131be8e4e139b2d8fa  v0.16.1.tar.gz
diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.mk b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.mk
new file mode 100644
index 000000000..0c72d4173
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-buildx-aarch64/docker-buildx.mk
@@ -0,0 +1,44 @@
+################################################################################
+#
+# docker-buildx
+#
+################################################################################
+
+DOCKER_BUILDX_AARCH64_VERSION = v0.16.1
+DOCKER_BUILDX_AARCH64_COMMIT = 34c195271a3f6dc64814db71438dc50dd41d7e3e
+DOCKER_BUILDX_AARCH64_SITE = https://github.com/docker/buildx/archive
+DOCKER_BUILDX_AARCH64_SOURCE = $(DOCKER_BUILDX_AARCH64_VERSION).tar.gz
+DOCKER_BUILDX_AARCH64_GOPATH = $(@D)/_output
+DOCKER_BUILDX_AARCH64_ENV = \
+        $(GO_TARGET_ENV) \
+        CGO_ENABLED=1 \
+        GO111MODULE=on \
+        GOPATH="$(DOCKER_BUILDX_AARCH64_GOPATH)" \
+        GOBIN="$(DOCKER_BUILDX_AARCH64_GOPATH)/bin" \
+        PATH=$(DOCKER_BUILDX_AARCH64_GOPATH)/bin:$(BR_PATH) \
+        GOARCH=arm64
+
+DOCKER_BUILDX_AARCH64_COMPILE_SRC = $(DOCKER_BUILDX_AARCH64_GOPATH)/src/github.com/docker/buildx
+
+define DOCKER_BUILDX_AARCH64_POST_EXTRACT_WORKAROUNDS
+        # Set -buildvcs=false to disable VCS stamping (fails in buildroot)
+        sed -i 's|go build |go build -buildvcs=false |' -i $(@D)/hack/build
+endef
+
+DOCKER_BUILDX_AARCH64_POST_EXTRACT_HOOKS += DOCKER_BUILDX_AARCH64_POST_EXTRACT_WORKAROUNDS
+
+define DOCKER_BUILDX_AARCH64_CONFIGURE_CMDS
+        mkdir -p $(TARGET_DIR)/usr/libexec/docker/cli-plugins
+endef
+
+define DOCKER_BUILDX_AARCH64_BUILD_CMDS
+	PWD=$(DOCKER_BUILDX_AARCH64_COMPILE_SRC) $(DOCKER_BUILDX_AARCH64_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) VERSION=$(DOCKER_BUILDX_AARCH64_VERSION) REVISION=$(DOCKER_BUILDX_AARCH64_COMMIT) -C $(@D) build
+endef
+
+define DOCKER_BUILDX_AARCH64_INSTALL_TARGET_CMDS
+	$(INSTALL) -Dm755 \
+		$(@D)/bin/build/docker-buildx \
+		$(TARGET_DIR)/usr/libexec/docker/cli-plugins/docker-buildx
+endef
+
+$(eval $(generic-package))
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in
index dc9734ed4..f1a936b24 100644
--- a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in
@@ -1,11 +1,12 @@
 menu "System tools x86_64"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/buildkit-bin/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni-plugins-latest/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/containerd-bin/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cri-dockerd/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/crictl-bin/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/docker-bin/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni-plugins-latest/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/containerd-bin/Config.in"
-    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/nerdctl-bin/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/docker-buildx/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/hyperv-daemons/Config.in"
+    source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/nerdctl-bin/Config.in"
     source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/vbox-mount-service/Config.in"
 endmenu
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 2580b2b6a..eeab8a324 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
@@ -36,3 +36,4 @@ sha256 2dc491434b182334b51350f810ed68ace3624c8a2d6e1eac490d93c653498a33 v1.7.15.
 sha256 fa16a85b3759a716728c00dda2fff8484b3811f62250724b77d05c115c4522a7 v1.7.17.tar.gz
 sha256 91685cebd50e3f353a402adadf61e2a6aeda3f63754fa0fcc978a043e00acac4 v1.7.18.tar.gz
 sha256 152e23d017b053ee786080ec0410c98aa91967f3aaebdcfaaf4521ac2172ef62 v1.7.19.tar.gz
+sha256 c4268561e514a2e8322bc8cdd39113d5e164fb31c2cef76f479d683395ea9bd6 v1.7.20.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 10bbe127f..60856e92a 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.19
-CONTAINERD_BIN_COMMIT = 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
+CONTAINERD_BIN_VERSION = v1.7.20
+CONTAINERD_BIN_COMMIT = 8fc6bcff51318944179630522a095cc9dbf9f353
 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/arch/x86_64/package/docker-bin/docker-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.hash
index b6da33563..82540cbde 100644
--- a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.hash
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.hash
@@ -59,3 +59,4 @@ sha256 a9cede81aa3337f310132c2c920dba2edc8d29b7d97065b63ba41cf47ae1ca4f  docker-
 sha256 1e65f8bd3ac5ba8a4267a680a5427b59f8af1c1a3853bdbf77cdcaa33d5f6504  docker-27.0.1.tgz
 sha256 cc0dc835067509b7bedb31ed5db5b44f54666f820dd33f5191a9f9f5c68d4fe8  docker-27.0.2.tgz
 sha256 f6299aeada422d527cba35061fe56df5e2294776f6d39b7830d699335054b1e6  docker-27.0.3.tgz
+sha256 bc4c2d3ebbfdad92d64eb95a9d77ebe4afcbb9acdfd052cea7e74a71767ba727  docker-27.1.0.tgz
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk
index e7d6b12c1..5bf96ae25 100644
--- a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DOCKER_BIN_VERSION = 27.0.3
+DOCKER_BIN_VERSION = 27.1.0
 DOCKER_BIN_SITE = https://download.docker.com/linux/static/stable/x86_64
 DOCKER_BIN_SOURCE = docker-$(DOCKER_BIN_VERSION).tgz
 
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/Config.in
new file mode 100644
index 000000000..fe34adf1f
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_DOCKER_BUILDX
+        bool "docker-buildx"
+        default y
+        depends on BR2_x86_64
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.hash b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.hash
new file mode 100644
index 000000000..ade73055e
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.hash
@@ -0,0 +1,1 @@
+sha256 8c9dd3fb18ccba399223ba0f623c9fe09fa38fb2a05283131be8e4e139b2d8fa  v0.16.1.tar.gz
diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.mk b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.mk
new file mode 100644
index 000000000..66e8146df
--- /dev/null
+++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.mk
@@ -0,0 +1,44 @@
+################################################################################
+# 
+# docker-buildx
+#   
+################################################################################
+
+DOCKER_BUILDX_VERSION = v0.16.1
+DOCKER_BUILDX_COMMIT = 34c195271a3f6dc64814db71438dc50dd41d7e3e
+DOCKER_BUILDX_SITE = https://github.com/docker/buildx/archive
+DOCKER_BUILDX_SOURCE = $(DOCKER_BUILDX_VERSION).tar.gz
+DOCKER_BUILDX_GOPATH = $(@D)/_output
+DOCKER_BUILDX_ENV = \
+        $(GO_TARGET_ENV) \
+        CGO_ENABLED=1 \
+        GO111MODULE=on \
+        GOPATH="$(DOCKER_BUILDX_GOPATH)" \
+        GOBIN="$(DOCKER_BUILDX_GOPATH)/bin" \
+        PATH=$(DOCKER_BUILDX_GOPATH)/bin:$(BR_PATH) \
+        GOARCH=amd64
+
+DOCKER_BUILDX_COMPILE_SRC = $(DOCKER_BUILDX_GOPATH)/src/github.com/docker/buildx
+
+define DOCKER_BUILDX_POST_EXTRACT_WORKAROUNDS
+        # Set -buildvcs=false to disable VCS stamping (fails in buildroot)
+        sed -i 's|go build |go build -buildvcs=false |' -i $(@D)/hack/build
+endef
+
+DOCKER_BUILDX_POST_EXTRACT_HOOKS += DOCKER_BUILDX_POST_EXTRACT_WORKAROUNDS
+
+define DOCKER_BUILDX_CONFIGURE_CMDS
+        mkdir -p $(TARGET_DIR)/usr/libexec/docker/cli-plugins
+endef
+
+define DOCKER_BUILDX_BUILD_CMDS
+        PWD=$(DOCKER_BUILDX_COMPILE_SRC) $(DOCKER_BUILDX_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) VERSION=$(DOCKER_BUILDX_VERSION) REVISION=$(DOCKER_BUILDX_COMMIT) -C $(@D) build
+endef
+
+define DOCKER_BUILDX_INSTALL_TARGET_CMDS
+	$(INSTALL) -Dm755 \
+                $(@D)/bin/build/docker-buildx \
+                $(TARGET_DIR)/usr/libexec/docker/cli-plugins/docker-buildx
+endef
+
+$(eval $(generic-package))
diff --git a/go.mod b/go.mod
index 1b6bf6451..084ed3d09 100644
--- a/go.mod
+++ b/go.mod
@@ -19,8 +19,8 @@ require (
 	github.com/cheggaaa/pb/v3 v3.1.5
 	github.com/cloudevents/sdk-go/v2 v2.15.2
 	github.com/distribution/reference v0.6.0
-	github.com/docker/cli v27.0.3+incompatible
-	github.com/docker/docker v27.0.3+incompatible
+	github.com/docker/cli v27.1.0+incompatible
+	github.com/docker/docker v27.1.0+incompatible
 	github.com/docker/go-connections v0.5.0
 	github.com/docker/go-units v0.5.0
 	github.com/docker/machine v0.16.2
@@ -76,15 +76,15 @@ require (
 	golang.org/x/term v0.22.0
 	golang.org/x/text v0.16.0
 	gonum.org/v1/plot v0.14.0
-	google.golang.org/api v0.188.0
+	google.golang.org/api v0.189.0
 	gopkg.in/yaml.v2 v2.4.0
-	k8s.io/api v0.30.2
-	k8s.io/apimachinery v0.30.2
-	k8s.io/client-go v0.30.2
+	k8s.io/api v0.30.3
+	k8s.io/apimachinery v0.30.3
+	k8s.io/client-go v0.30.3
 	k8s.io/cluster-bootstrap v0.0.0
-	k8s.io/component-base v0.30.2
+	k8s.io/component-base v0.30.3
 	k8s.io/klog/v2 v2.130.1
-	k8s.io/kubectl v0.30.2
+	k8s.io/kubectl v0.30.3
 	k8s.io/utils v0.0.0-20230726121419-3b25d923346b
 	libvirt.org/go/libvirt v1.10005.0
 	sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
@@ -92,8 +92,8 @@ require (
 
 require (
 	cloud.google.com/go v0.115.0 // indirect
-	cloud.google.com/go/auth v0.7.0 // indirect
-	cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
+	cloud.google.com/go/auth v0.7.2 // indirect
+	cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect
 	cloud.google.com/go/compute/metadata v0.5.0 // indirect
 	cloud.google.com/go/iam v1.1.10 // indirect
 	cloud.google.com/go/monitoring v1.20.1 // indirect
@@ -226,15 +226,15 @@ require (
 	golang.org/x/net v0.27.0 // indirect
 	golang.org/x/time v0.5.0 // indirect
 	golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
-	google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b // indirect
+	google.golang.org/genproto v0.0.0-20240722135656-d784300faade // indirect
 	google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade // indirect
 	google.golang.org/grpc v1.64.1 // indirect
 	google.golang.org/protobuf v1.34.2 // indirect
 	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.30.2 // indirect
+	k8s.io/cli-runtime v0.30.3 // indirect
 	k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
diff --git a/go.sum b/go.sum
index b6a144443..f1f5a4efb 100644
--- a/go.sum
+++ b/go.sum
@@ -49,10 +49,10 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby
 cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY=
 cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw=
 cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI=
-cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts=
-cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw=
-cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4=
-cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q=
+cloud.google.com/go/auth v0.7.2 h1:uiha352VrCDMXg+yoBtaD0tUF4Kv9vrtrWPYXwutnDE=
+cloud.google.com/go/auth v0.7.2/go.mod h1:VEc4p5NNxycWQTMQEDQF0bd6aTMb6VgYDXEwiJJQAbs=
+cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI=
+cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I=
 cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0=
 cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -567,8 +567,8 @@ github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5
 github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
 github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
 github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/cli v27.0.3+incompatible h1:usGs0/BoBW8MWxGeEtqPMkzOY56jZ6kYlSN5BLDioCQ=
-github.com/docker/cli v27.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v27.1.0+incompatible h1:P0KSYmPtNbmx59wHZvG6+rjivhKDRA1BvvWM0f5DgHc=
+github.com/docker/cli v27.1.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
 github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
@@ -579,8 +579,8 @@ github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r
 github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker v17.12.0-ce-rc1.0.20190115220918-5ec31380a5d3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker v20.10.14+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE=
-github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v27.1.0+incompatible h1:rEHVQc4GZ0MIQKifQPHSFGV/dVgaZafgRf8fCPtDYBs=
+github.com/docker/docker v27.1.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
 github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
 github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=
@@ -2236,8 +2236,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ
 google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
 google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
 google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70=
-google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw=
-google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag=
+google.golang.org/api v0.189.0 h1:equMo30LypAkdkLMBqfeIqtyAnlyig1JSZArl4XPwdI=
+google.golang.org/api v0.189.0/go.mod h1:FLWGJKb0hb+pU2j+rJqwbnsF+ym+fQs73rbJ+KAUgy8=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -2353,12 +2353,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw
 google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
 google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
 google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0=
-google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY=
+google.golang.org/genproto v0.0.0-20240722135656-d784300faade h1:lKFsS7wpngDgSCeFn7MoLy+wBDQZ1UQIJD4UNM1Qvkg=
+google.golang.org/genproto v0.0.0-20240722135656-d784300faade/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY=
 google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0=
 google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade h1:oCRSWfwGXQsqlVdErcyTt4A93Y8fo0/9D4b1gnI++qo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
 google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -2484,8 +2484,8 @@ k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
 k8s.io/api v0.22.4/go.mod h1:Rgs+9gIGYC5laXQSZZ9JqT5NevNgoGiOdVWi1BAB3qk=
 k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs=
 k8s.io/api v0.23.5/go.mod h1:Na4XuKng8PXJ2JsploYYrivXrINeTaycCGcYgF91Xm8=
-k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI=
-k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI=
+k8s.io/api v0.30.3 h1:ImHwK9DCsPA9uoU3rVh4QHAHHK5dTSv1nxJUapx8hoQ=
+k8s.io/api v0.30.3/go.mod h1:GPc8jlzoe5JG3pb0KJCSLX5oAFIW3/qNJITlDj8BH04=
 k8s.io/apimachinery v0.19.1/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
 k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
 k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
@@ -2494,22 +2494,22 @@ k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ
 k8s.io/apimachinery v0.22.4/go.mod h1:yU6oA6Gnax9RrxGzVvPFFJ+mpnW6PBSqp0sx0I0HHW0=
 k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U=
 k8s.io/apimachinery v0.23.5/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM=
-k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg=
-k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
+k8s.io/apimachinery v0.30.3 h1:q1laaWCmrszyQuSQCfNB8cFgCuDAoPszKY4ucAjDwHc=
+k8s.io/apimachinery v0.30.3/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
 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.30.2 h1:ooM40eEJusbgHNEqnHziN9ZpLN5U4WcQGsdLKVxpkKE=
-k8s.io/cli-runtime v0.30.2/go.mod h1:Y4g/2XezFyTATQUbvV5WaChoUGhojv/jZAtdp5Zkm0A=
+k8s.io/cli-runtime v0.30.3 h1:aG69oRzJuP2Q4o8dm+f5WJIX4ZBEwrvdID0+MXyUY6k=
+k8s.io/cli-runtime v0.30.3/go.mod h1:hwrrRdd9P84CXSKzhHxrOivAR9BRnkMt0OeP5mj7X30=
 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=
 k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0=
 k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y=
 k8s.io/client-go v0.23.5/go.mod h1:flkeinTO1CirYgzMPRWxUCnV0G4Fbu2vLhYCObnt/r4=
-k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50=
-k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs=
+k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k=
+k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U=
 k8s.io/cluster-bootstrap v0.22.4 h1:2ZhV/1K4GiCrnmDHHbBnN3bERWn+Nxrtxmxp6uYYThI=
 k8s.io/cluster-bootstrap v0.22.4/go.mod h1:fTQZ6u9G6fg2LHhB8nEgZLnXIhCDSRYuLUUS5pgW8RY=
 k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0=
@@ -2517,8 +2517,8 @@ k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeY
 k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
 k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM=
 k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI=
-k8s.io/component-base v0.30.2 h1:pqGBczYoW1sno8q9ObExUqrYSKhtE5rW3y6gX88GZII=
-k8s.io/component-base v0.30.2/go.mod h1:yQLkQDrkK8J6NtP+MGJOws+/PPeEXNpwFixsUI7h/OE=
+k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s=
+k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA=
 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=
@@ -2545,8 +2545,8 @@ k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2R
 k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk=
 k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
 k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
-k8s.io/kubectl v0.30.2 h1:cgKNIvsOiufgcs4yjvgkK0+aPCfa8pUwzXdJtkbhsH8=
-k8s.io/kubectl v0.30.2/go.mod h1:rz7GHXaxwnigrqob0lJsiA07Df8RE3n1TSaC2CTeuB4=
+k8s.io/kubectl v0.30.3 h1:YIBBvMdTW0xcDpmrOBzcpUVsn+zOgjMYIu7kAq+yqiI=
+k8s.io/kubectl v0.30.3/go.mod h1:IcR0I9RN2+zzTRUa1BzZCm4oM0NLOawE6RzlDvd1Fpo=
 k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
 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=
diff --git a/hack/jenkins/cron/cleanup_and_reboot_Darwin.sh b/hack/jenkins/cron/cleanup_and_reboot_Darwin.sh
index c7d99a605..9b5b1f5cd 100755
--- a/hack/jenkins/cron/cleanup_and_reboot_Darwin.sh
+++ b/hack/jenkins/cron/cleanup_and_reboot_Darwin.sh
@@ -34,6 +34,9 @@ function check_jenkins() {
         && exit 1
 }
 
+brew upgrade
+gcloud components update -q
+
 check_jenkins
 logger "cleanup_and_reboot running - may shutdown in 60 seconds"
 echo "cleanup_and_reboot running - may shutdown in 60 seconds" | wall
diff --git a/hack/update/get_version/get_version.go b/hack/update/get_version/get_version.go
index e7919f79b..c09783161 100644
--- a/hack/update/get_version/get_version.go
+++ b/hack/update/get_version/get_version.go
@@ -44,6 +44,7 @@ var dependencies = map[string]dependency{
 	"crictl":                  {"deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/crictl-bin.mk", `CRICTL_BIN_VERSION = (.*)`},
 	"crun":                    {"deploy/iso/minikube-iso/package/crun-latest/crun-latest.mk", `CRUN_LATEST_VERSION = (.*)`},
 	"docker":                  {"deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk", `DOCKER_BIN_VERSION = (.*)`},
+	"docker-buildx":           {"deploy/iso/minikube-iso/arch/x86_64/package/docker-buildx/docker-buildx.mk", `DOCKER_BUILDX_VERSION = (.*)`},
 	"flannel":                 {"pkg/minikube/cni/flannel.yaml", `flannel:(.*)`},
 	"gcp-auth":                {addonsFile, `k8s-minikube/gcp-auth-webhook:(.*)@`},
 	"gh":                      {"hack/jenkins/installers/check_install_gh.sh", `GH_VERSION="(.*)"`},
diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go
index c0767745b..cf2e049f6 100644
--- a/pkg/drivers/kic/types.go
+++ b/pkg/drivers/kic/types.go
@@ -24,10 +24,10 @@ import (
 
 const (
 	// Version is the current version of kic
-	Version = "v0.0.44-1721234491-19282"
+	Version = "v0.0.44-1721687125-19319"
 
 	// SHA of the kic base image
-	baseImageSHA = "af477ffa9f6167a73f0adae71d3a4e601ba0c2adc97a4067255b422b3477d2c2"
+	baseImageSHA = "8e08c9232f6be53a68fac8937bc5a03a99e38d6a1ff7b6ea4048c989041004ae"
 	// The name of the GCR kicbase repository
 	gcrRepo = "gcr.io/k8s-minikube/kicbase-builds"
 	// The name of the Dockerhub kicbase repository
diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go
index 39b589b6d..4cc65fbe5 100644
--- a/pkg/minikube/assets/addons.go
+++ b/pkg/minikube/assets/addons.go
@@ -277,7 +277,7 @@ var Addons = map[string]*Addon{
 			"0640"),
 	}, false, "ingress", "Kubernetes", "", "https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/", map[string]string{
 		// https://github.com/kubernetes/ingress-nginx/blob/3476232f5c38383dd157ddaff3b4c7cebd57284e/deploy/static/provider/kind/deploy.yaml#L445
-		"IngressController": "ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e",
+		"IngressController": "ingress-nginx/controller:v1.11.1@sha256:e6439a12b52076965928e83b7b56aae6731231677b01e81818bce7fa5c60161a",
 		// https://github.com/kubernetes/ingress-nginx/blob/3476232f5c38383dd157ddaff3b4c7cebd57284e/deploy/static/provider/kind/deploy.yaml#L552
 		"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366",
 		// https://github.com/kubernetes/ingress-nginx/blob/3476232f5c38383dd157ddaff3b4c7cebd57284e/deploy/static/provider/kind/deploy.yaml#L601
@@ -294,7 +294,7 @@ var Addons = map[string]*Addon{
 			"istio-operator.yaml",
 			"0640"),
 	}, false, "istio-provisioner", "3rd party (Istio)", "", "https://istio.io/latest/docs/setup/platform-setup/minikube/", map[string]string{
-		"IstioOperator": "istio/operator:1.22.2@sha256:514d33109674b6d38bab275d0f3b287e0ff7d66df6569a05991ad0bfbb31e48d",
+		"IstioOperator": "istio/operator:1.22.3@sha256:1e958929b1a94e1f9a4ea529fbb0717ec9ba9bfc1c4406534ef1fb57f9700b4a",
 	}, map[string]string{
 		"IstioOperator": "docker.io",
 	}),
@@ -340,7 +340,7 @@ var Addons = map[string]*Addon{
 			"pod.yaml",
 			"0640"),
 	}, false, "kubevirt", "3rd party (KubeVirt)", "", "https://minikube.sigs.k8s.io/docs/handbook/addons/kubevirt/", map[string]string{
-		"Kubectl": "bitnami/kubectl:1.30.2@sha256:dc190b7c6b87ba74eabff4e1e78758eed95ebb97b5a186bbdaf2b43625f9a62a",
+		"Kubectl": "bitnami/kubectl:1.30.3@sha256:309ff01e5ebffeb892cd03e50449d3e73a8b64cc7fb93ed228b42ec7db064608",
 	}, map[string]string{
 		"Kubectl": "docker.io",
 	}),
diff --git a/pkg/minikube/bootstrapper/images/images.go b/pkg/minikube/bootstrapper/images/images.go
index eccc92638..44f73a985 100644
--- a/pkg/minikube/bootstrapper/images/images.go
+++ b/pkg/minikube/bootstrapper/images/images.go
@@ -179,7 +179,7 @@ func KindNet(repo string) string {
 	if repo == "" {
 		repo = "docker.io/kindest"
 	}
-	return path.Join(repo, "kindnetd:v20240715-585640e9")
+	return path.Join(repo, "kindnetd:v20240719-e7903573")
 }
 
 // all calico images are from https://github.com/projectcalico/calico/blob/master/manifests/calico.yaml
diff --git a/pkg/minikube/cni/flannel.yaml b/pkg/minikube/cni/flannel.yaml
index 1d1c802cb..3ea7cf004 100644
--- a/pkg/minikube/cni/flannel.yaml
+++ b/pkg/minikube/cni/flannel.yaml
@@ -133,7 +133,7 @@ spec:
       serviceAccountName: flannel
       initContainers:
       - name: install-cni-plugin
-        image: docker.io/flannel/flannel-cni-plugin:v1.4.1-flannel1
+        image: docker.io/flannel/flannel-cni-plugin:v1.5.1-flannel1
         command:
         - cp
         args:
@@ -144,7 +144,7 @@ spec:
         - name: cni-plugin
           mountPath: /opt/cni/bin
       - name: install-cni
-        image: docker.io/flannel/flannel:v0.25.4
+        image: docker.io/flannel/flannel:v0.25.5
         command:
         - cp
         args:
@@ -158,7 +158,7 @@ spec:
           mountPath: /etc/kube-flannel/
       containers:
       - name: kube-flannel
-        image: docker.io/flannel/flannel:v0.25.4
+        image: docker.io/flannel/flannel:v0.25.5
         command:
         - /opt/bin/flanneld
         args:
diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go
index dc3ef852f..4d85733c9 100644
--- a/pkg/minikube/constants/constants.go
+++ b/pkg/minikube/constants/constants.go
@@ -34,7 +34,7 @@ var (
 
 const (
 	// DefaultKubernetesVersion is the default Kubernetes version
-	DefaultKubernetesVersion = "v1.30.2"
+	DefaultKubernetesVersion = "v1.30.3"
 	// 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.31.0-beta.0"
diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go
index de028384b..0e49fe7cf 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/19264"
+	isoBucket := "minikube-builds/iso/19319"
 
 	return []string{
 		fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH),
diff --git a/pkg/minikube/localpath/localpath.go b/pkg/minikube/localpath/localpath.go
index ef77e07dc..08609c0f5 100644
--- a/pkg/minikube/localpath/localpath.go
+++ b/pkg/minikube/localpath/localpath.go
@@ -47,7 +47,12 @@ func MiniPath() string {
 	if filepath.Base(minikubeHomeEnv) == ".minikube" {
 		return minikubeHomeEnv
 	}
-	return filepath.Join(minikubeHomeEnv, ".minikube")
+
+	legacyMinikubeHome := filepath.Join(minikubeHomeEnv, ".minikube")
+	if _, err := os.Stat(legacyMinikubeHome); !os.IsNotExist(err) {
+		return legacyMinikubeHome
+	}
+	return filepath.Clean(minikubeHomeEnv)
 }
 
 // MakeMiniPath is a utility to calculate a relative path to our directory.
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index 2a69d9ab8..324287b48 100644
--- a/site/content/en/docs/commands/start.md
+++ b/site/content/en/docs/commands/start.md
@@ -27,7 +27,7 @@ minikube start [flags]
       --apiserver-port int                The apiserver listening port (default 8443)
       --auto-pause-interval duration      Duration of inactivity before the minikube VM is paused (default 1m0s) (default 1m0s)
       --auto-update-drivers               If set, automatically updates drivers to the latest version. Defaults to true. (default true)
-      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.44-1721234491-19282@sha256:af477ffa9f6167a73f0adae71d3a4e601ba0c2adc97a4067255b422b3477d2c2")
+      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.44-1721687125-19319@sha256:8e08c9232f6be53a68fac8937bc5a03a99e38d6a1ff7b6ea4048c989041004ae")
       --binary-mirror string              Location to fetch kubectl, kubelet, & kubeadm binaries from.
       --cache-images                      If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true)
       --cert-expiration duration          Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s)
@@ -74,7 +74,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.30.2, 'latest' for v1.31.0-beta.0). Defaults to 'stable'.
+      --kubernetes-version string         The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.30.3, 'latest' for v1.31.0-beta.0). Defaults to 'stable'.
       --kvm-gpu                           Enable experimental NVIDIA GPU support in minikube
       --kvm-hidden                        Hide the hypervisor signature from the guest in minikube (kvm2 driver only)
       --kvm-network string                The KVM default network name. (kvm2 driver only) (default "default")
diff --git a/site/content/en/docs/contrib/building/binaries.md b/site/content/en/docs/contrib/building/binaries.md
index 6254844a1..23e1053c8 100644
--- a/site/content/en/docs/contrib/building/binaries.md
+++ b/site/content/en/docs/contrib/building/binaries.md
@@ -7,16 +7,10 @@ weight: 2
 
 ## Prerequisites
 
-* A recent Go distribution (>=1.16)
+* A recent Go distribution (>=1.22.0)
 * If you are on Windows, you'll need Docker to be installed.
 * 4GB of RAM
 
-Additionally, if you are on Fedora, you will need to install `glibc-static`:
-
-```shell
-sudo dnf install -y glibc-static
-```
-
 ## Downloading the source
 
 ```shell
diff --git a/site/content/en/docs/contrib/building/iso.md b/site/content/en/docs/contrib/building/iso.md
index b60010dcb..2af07c6eb 100644
--- a/site/content/en/docs/contrib/building/iso.md
+++ b/site/content/en/docs/contrib/building/iso.md
@@ -11,7 +11,7 @@ The minikube ISO is booted by each hypervisor to provide a stable minimal Linux
 ## Prerequisites
 
 * A recent GNU Make distribution (>=4.0)
-* A recent Go distribution (>=1.16)
+* A recent Go distribution (>=1.22.0)
 * If you are on Windows or Mac, you'll need Docker to be installed.
 * 4GB of RAM
 
@@ -49,12 +49,6 @@ sudo apt-get install build-essential gnupg2 p7zip-full git wget cpio python \
     unzip bc gcc-multilib automake libtool locales
 ```
 
-Additionally, if you are on Fedora, you will need to install `glibc-static`:
-
-```shell
-sudo dnf install -y glibc-static
-```
-
 ## Using a local ISO image
 
 ```shell
diff --git a/site/content/en/docs/drivers/kvm2.md b/site/content/en/docs/drivers/kvm2.md
index 090b4d05e..4b4f0539a 100644
--- a/site/content/en/docs/drivers/kvm2.md
+++ b/site/content/en/docs/drivers/kvm2.md
@@ -38,7 +38,7 @@ The `minikube start` command supports 5 additional KVM specific flags:
 
 Also see [co/kvm2-driver open issues](https://github.com/kubernetes/minikube/labels/co%2Fkvm2-driver).
 
-### Nested Virtulization
+### Nested Virtualization
 
 If you are running KVM in a nested virtualization environment ensure your config the kernel modules correctly follow either [this](https://stafwag.github.io/blog/blog/2018/06/04/nested-virtualization-in-kvm/) or [this](https://computingforgeeks.com/how-to-install-kvm-virtualization-on-debian/) tutorial.
 
diff --git a/site/content/en/docs/tutorials/kubernetes_101/module3.md b/site/content/en/docs/tutorials/kubernetes_101/module3.md
index 794d00183..457445251 100644
--- a/site/content/en/docs/tutorials/kubernetes_101/module3.md
+++ b/site/content/en/docs/tutorials/kubernetes_101/module3.md
@@ -63,7 +63,7 @@ kubectl logs $POD_NAME
 
 ## Step 4 - Executing command on the container
 
-We can execute commands directly on the container once the Pod is up and running. For this, we use the `exec` command and use the name of the Pod as a paramater. Let's list the environment variables:
+We can execute commands directly on the container once the Pod is up and running. For this, we use the `exec` command and use the name of the Pod as a parameter. Let's list the environment variables:
 
 ```shell
 kubectl exec $POD_NAME -- env


Test patch:
diff --git a/pkg/minikube/kubeconfig/kubeconfig_test.go b/pkg/minikube/kubeconfig/kubeconfig_test.go
index eedc08239..b1a22f5e0 100644
--- a/pkg/minikube/kubeconfig/kubeconfig_test.go
+++ b/pkg/minikube/kubeconfig/kubeconfig_test.go
@@ -456,7 +456,7 @@ func TestUpdateIP(t *testing.T) {
 		},
 	}
 
-	t.Setenv(localpath.MinikubeHome, "/home/la-croix")
+	t.Setenv(localpath.MinikubeHome, "/home/la-croix/.minikube")
 
 	for _, test := range tests {
 		test := test
@@ -492,7 +492,7 @@ func TestUpdateIP(t *testing.T) {
 }
 
 func TestMissingContext(t *testing.T) {
-	t.Setenv(localpath.MinikubeHome, "/home/la-croix")
+	t.Setenv(localpath.MinikubeHome, "/home/la-croix/.minikube")
 	configFilename := tempFile(t, kubeConfigMissingContext)
 	defer os.Remove(configFilename)
 	if _, err := UpdateEndpoint("minikube", "192.168.10.100", 8080, configFilename, nil); err != nil {
diff --git a/pkg/minikube/localpath/localpath_test.go b/pkg/minikube/localpath/localpath_test.go
index ad62cc361..705d81634 100644
--- a/pkg/minikube/localpath/localpath_test.go
+++ b/pkg/minikube/localpath/localpath_test.go
@@ -63,19 +63,18 @@ func TestHasWindowsDriveLetter(t *testing.T) {
 
 func TestMiniPath(t *testing.T) {
 	var testCases = []struct {
-		env, basePath string
+		env, expectedPath string
 	}{
-		{"/tmp/.minikube", "/tmp/"},
-		{"/tmp/", "/tmp"},
-		{"", homedir.HomeDir()},
+		{"/tmp/.minikube", "/tmp/.minikube"},
+		{"/tmp", "/tmp"},
+		{"", filepath.Join(homedir.HomeDir(), ".minikube")},
 	}
 	for _, tc := range testCases {
 		t.Run(tc.env, func(t *testing.T) {
-			expectedPath := filepath.Join(tc.basePath, ".minikube")
 			t.Setenv(MinikubeHome, tc.env)
 			path := MiniPath()
-			if path != expectedPath {
-				t.Errorf("MiniPath expected to return '%s', but got '%s'", expectedPath, path)
+			if path != tc.expectedPath {
+				t.Errorf("MiniPath expected to return '%s', but got '%s'", tc.expectedPath, path)
 			}
 		})
 	}
diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go
index ec3ff2f2a..3b0888c78 100644
--- a/test/integration/addons_test.go
+++ b/test/integration/addons_test.go
@@ -118,25 +118,14 @@ func TestAddons(t *testing.T) {
 		t.Fatalf("Failed setup for addon tests")
 	}
 
-	// Parallelized tests
-	t.Run("parallel", func(t *testing.T) {
+	// Run tests in serial to avoid collision
+	t.Run("serial", func(t *testing.T) {
 		tests := []struct {
 			name      string
 			validator validateFunc
 		}{
-			{"Registry", validateRegistryAddon},
-			{"Ingress", validateIngressAddon},
-			{"InspektorGadget", validateInspektorGadgetAddon},
-			{"MetricsServer", validateMetricsServerAddon},
-			{"HelmTiller", validateHelmTillerAddon},
-			{"Olm", validateOlmAddon},
-			{"CSI", validateCSIDriverAndSnapshots},
-			{"Headlamp", validateHeadlampAddon},
-			{"CloudSpanner", validateCloudSpannerAddon},
-			{"LocalPath", validateLocalPathAddon},
-			{"NvidiaDevicePlugin", validateNvidiaDevicePlugin},
-			{"Yakd", validateYakdAddon},
 			{"Volcano", validateVolcanoAddon},
+			{"GCPAuth", validateGCPAuthAddon},
 		}
 		for _, tc := range tests {
 			tc := tc
@@ -144,19 +133,29 @@ func TestAddons(t *testing.T) {
 				t.Fatalf("Unable to run more tests (deadline exceeded)")
 			}
 			t.Run(tc.name, func(t *testing.T) {
-				MaybeParallel(t)
 				tc.validator(ctx, t, profile)
 			})
 		}
 	})
 
-	// Run other tests after to avoid collision
-	t.Run("serial", func(t *testing.T) {
+	// Parallelized tests
+	t.Run("parallel", func(t *testing.T) {
 		tests := []struct {
 			name      string
 			validator validateFunc
 		}{
-			{"GCPAuth", validateGCPAuthAddon},
+			{"Registry", validateRegistryAddon},
+			{"Ingress", validateIngressAddon},
+			{"InspektorGadget", validateInspektorGadgetAddon},
+			{"MetricsServer", validateMetricsServerAddon},
+			{"HelmTiller", validateHelmTillerAddon},
+			{"Olm", validateOlmAddon},
+			{"CSI", validateCSIDriverAndSnapshots},
+			{"Headlamp", validateHeadlampAddon},
+			{"CloudSpanner", validateCloudSpannerAddon},
+			{"LocalPath", validateLocalPathAddon},
+			{"NvidiaDevicePlugin", validateNvidiaDevicePlugin},
+			{"Yakd", validateYakdAddon},
 		}
 		for _, tc := range tests {
 			tc := tc
@@ -164,6 +163,7 @@ func TestAddons(t *testing.T) {
 				t.Fatalf("Unable to run more tests (deadline exceeded)")
 			}
 			t.Run(tc.name, func(t *testing.T) {
+				MaybeParallel(t)
 				tc.validator(ctx, t, profile)
 			})
 		}
@@ -545,6 +545,10 @@ func validateOlmAddon(ctx context.Context, t *testing.T, profile string) {
 	if err := retry.Expo(checkOperatorInstalled, time.Second*3, Minutes(10)); err != nil {
 		t.Errorf("failed checking operator installed: %v", err.Error())
 	}
+
+	if rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "olm", "--alsologtostderr", "-v=1")); err != nil {
+		t.Errorf("failed to disable olm addon: args %q: %v", rr.Command(), err)
+	}
 }
 
 // validateCSIDriverAndSnapshots tests the csi hostpath driver by creating a persistent volume, snapshotting it and restoring it.
@@ -831,6 +835,10 @@ func validateHeadlampAddon(ctx context.Context, t *testing.T, profile string) {
 	if _, err := PodWait(ctx, t, profile, "headlamp", "app.kubernetes.io/name=headlamp", Minutes(8)); err != nil {
 		t.Fatalf("failed waiting for headlamp pod: %v", err)
 	}
+
+	if rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "headlamp", "--alsologtostderr", "-v=1")); err != nil {
+		t.Errorf("failed to disable headlamp addon: args %q: %v", rr.Command(), err)
+	}
 }
 
 // validateInspektorGadgetAddon tests the inspektor-gadget addon by ensuring the pod has come up and addon disables
@@ -1064,4 +1072,8 @@ func validateYakdAddon(ctx context.Context, t *testing.T, profile string) {
 	if _, err := PodWait(ctx, t, profile, "yakd-dashboard", "app.kubernetes.io/name=yakd-dashboard", Minutes(2)); err != nil {
 		t.Fatalf("failed waiting for YAKD - Kubernetes Dashboard pod: %v", err)
 	}
+
+	if rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "yakd", "--alsologtostderr", "-v=1")); err != nil {
+		t.Errorf("failed to disable yakd addon: args %q: %v", rr.Command(), err)
+	}
 }