Repository: kubernetes/minikube
Pull request #19750 (2024-10-04 15:53:38)

More robust MAC address matching
On darwin bootp uses non-standard MAC address format[1]:
"8e:1:99:9c:54:b1" instead of "8e:01:99:9c:54:b1". We fixed this by
trimming leading "0" in the string before looking up the IP address.
    
There are several issues with the current code:
- Fragile, will break if bootp changes the format (unlikely)
- Fixing the wrong place, the drivers should not care about the MAC
  address format.
- The tests were confusing, showing that we can match standard MAC
  addresses while the actual code could match only non-standard bootp
  addresses.
- Logging wrong MAC address since we trimmed leading zeros before
  logging
    
This change replace trimming leading zeros with parsing MAC address
strings and comparing the bytes. The test includes now both standard and
non-standard MAC addresses.
    
[1] https://openradar.appspot.com/FB15382970

k8s-ci-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes/minikube/pull/19750#" title="Author self-approved">nirs</a>*
**Once this PR has been reviewed and has the lgtm label**, please assign [prezha](https://github.com/prezha) for approval. For more information see [the Kubernetes Code Review Process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process).

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

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

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

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["prezha"]} -->
k8s-ci-robot: Hi @nirs. Thanks for your PR.

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

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

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

<details>

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

minikube-bot: Can one of the admins verify this patch?
nirs: I see that this is already fixed earlier:

```go
	// Need to strip 0's
	mac = pkgdrivers.TrimMacAddress(mac)
	if err := d.setupIP(mac); err != nil {
		return err
	}
```

Probably when this failed the reason was different (firewall or evil corp vpn software). When I came back to look at this, I found the trimmed addresses in the dhcp leases.

But the tests are confusing, not showing the actual entries and trimmed mac addresses, and the current code will break if bootp fixes this issue and start formatting mac addresses like other tools.

If we replace trimming with parsing, we don't need to care how bootp or other programs format hw_address.

Patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a41f2181a..a0cfd790d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -20,7 +20,7 @@ jobs:
   build_minikube:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -39,14 +39,14 @@ jobs:
           echo workspace $GITHUB_WORKSPACE
           echo "end of debug stuff"
           echo $(which jq)
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: minikube_binaries
           path: out
   lint:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -64,7 +64,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 7a9f1d8de..66bd310ce 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -6,7 +6,7 @@ on:
       - master
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -15,7 +15,7 @@ jobs:
     if: github.repository == 'kubernetes/minikube'
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/functional_verified.yml b/.github/workflows/functional_verified.yml
index d56666649..7b3851484 100644
--- a/.github/workflows/functional_verified.yml
+++ b/.github/workflows/functional_verified.yml
@@ -22,7 +22,7 @@ on:
       - deleted
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 
 permissions:
   contents: read
@@ -34,7 +34,7 @@ jobs:
     if: contains(github.event.pull_request.labels.*.name, 'ok-to-test')
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -46,7 +46,7 @@ jobs:
           sudo apt-get install -y libvirt-dev
           MINIKUBE_BUILD_IN_DOCKER=y make e2e-linux-arm64
           cp -r test/integration/testdata ./out
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: minikube_binaries
           path: out
@@ -165,7 +165,7 @@ jobs:
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
 
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_ubuntu_arm64
           path: minikube_binaries/report
@@ -209,7 +209,7 @@ jobs:
         run: |
           mkdir -p all_reports
           cp -r ./functional_docker_ubuntu_arm64 ./all_reports/
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: all_reports
           path: all_reports
diff --git a/.github/workflows/leaderboard.yml b/.github/workflows/leaderboard.yml
index d2cb5b414..ded4f4bb7 100644
--- a/.github/workflows/leaderboard.yml
+++ b/.github/workflows/leaderboard.yml
@@ -6,7 +6,7 @@ on:
       - 'v*-beta.*'
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   update-leaderboard:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index dbcf9fe98..f6636c39e 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -14,7 +14,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -24,7 +24,7 @@ jobs:
   build_minikube_test_binaries:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -42,14 +42,14 @@ jobs:
           echo workspace $GITHUB_WORKSPACE
           echo "end of debug stuff"
           echo $(which jq)
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: minikube_binaries
           path: out
   build_minikube:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -62,7 +62,7 @@ jobs:
   lint:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -80,7 +80,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -177,7 +177,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_ubuntu
           path: minikube_binaries/report
@@ -277,7 +277,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_containerd_ubuntu
           path: minikube_binaries/report
@@ -395,7 +395,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_rootless_containerd_ubuntu
           path: minikube_binaries/report
@@ -500,7 +500,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_podman_ubuntu
           path: minikube_binaries/report
@@ -622,7 +622,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_baremetal_ubuntu22_04
           path: minikube_binaries/report
@@ -671,7 +671,7 @@ jobs:
           cp -r ./functional_docker_rootless_containerd_ubuntu ./all_reports/
           cp -r ./functional_podman_ubuntu ./all_reports/
           cp -r ./functional_baremetal_ubuntu22_04 ./all_reports/
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: all_reports
           path: all_reports
diff --git a/.github/workflows/minikube-image-benchmark.yml b/.github/workflows/minikube-image-benchmark.yml
index 9d9168fba..2b1f51725 100644
--- a/.github/workflows/minikube-image-benchmark.yml
+++ b/.github/workflows/minikube-image-benchmark.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 2,14 * * *"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -19,7 +19,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index d16c47950..4fd29fd1c 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -12,7 +12,7 @@ on:
       - "!deploy/iso/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -22,7 +22,7 @@ jobs:
   build_minikube_test_binaries:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -40,14 +40,14 @@ jobs:
           echo workspace $GITHUB_WORKSPACE
           echo "end of debug stuff"
           echo $(which jq)
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: minikube_binaries
           path: out
   build_minikube:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -60,7 +60,7 @@ jobs:
   lint:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -78,7 +78,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -175,7 +175,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_ubuntu
           path: minikube_binaries/report
@@ -275,7 +275,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_containerd_ubuntu
           path: minikube_binaries/report
@@ -393,7 +393,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_docker_rootless_containerd_ubuntu
           path: minikube_binaries/report
@@ -498,7 +498,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_podman_ubuntu
           path: minikube_binaries/report
@@ -620,7 +620,7 @@ jobs:
           echo 'STAT<<EOF' >> $GITHUB_ENV
           echo "${STAT}" >> $GITHUB_ENV
           echo 'EOF' >> $GITHUB_ENV
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: functional_baremetal_ubuntu22_04
           path: minikube_binaries/report
@@ -669,7 +669,7 @@ jobs:
           cp -r ./functional_docker_rootless_containerd_ubuntu ./all_reports/
           cp -r ./functional_podman_ubuntu ./all_reports/
           cp -r ./functional_baremetal_ubuntu22_04 ./all_reports/
-      - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874
+      - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
         with:
           name: all_reports
           path: all_reports
diff --git a/.github/workflows/sbom.yml b/.github/workflows/sbom.yml
index 38cc302f7..86470a929 100644
--- a/.github/workflows/sbom.yml
+++ b/.github/workflows/sbom.yml
@@ -11,7 +11,7 @@ jobs:
     name: Install bom and generate SBOM
     steps:
       - name: Checkout repository
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+        uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - name: Install bom
         uses: kubernetes-sigs/release-actions/setup-bom@2f8b9ec22aedc9ce15039b6c7716aa6c2907df1c # main
       - name: Generage SBOM
diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml
index 3c6caa1f0..92f5bbb3f 100644
--- a/.github/workflows/sync-minikube.yml
+++ b/.github/workflows/sync-minikube.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 2,14 * * *"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -17,7 +17,7 @@ jobs:
       run:
         working-directory: ./image-syncer
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
         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 52c655613..2efa59cc5 100644
--- a/.github/workflows/time-to-k8s-public-chart.yml
+++ b/.github/workflows/time-to-k8s-public-chart.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 2,14 * * *"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -19,7 +19,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
@@ -37,7 +37,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - name: Install kubectl
         shell: bash
         run: |
diff --git a/.github/workflows/time-to-k8s.yml b/.github/workflows/time-to-k8s.yml
index 7b3b76cf8..cb0f3c544 100644
--- a/.github/workflows/time-to-k8s.yml
+++ b/.github/workflows/time-to-k8s.yml
@@ -5,7 +5,7 @@ on:
     types: [released]
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -13,7 +13,7 @@ jobs:
   benchmark:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - name: Checkout submodules
         run: git submodule update --init
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml
index f6868a361..2bad6566d 100644
--- a/.github/workflows/translations.yml
+++ b/.github/workflows/translations.yml
@@ -6,7 +6,7 @@ on:
       - "translations/**"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   unit_test:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-amd-gpu-device-plugin-version.yml b/.github/workflows/update-amd-gpu-device-plugin-version.yml
new file mode 100644
index 000000000..5f9726110
--- /dev/null
+++ b/.github/workflows/update-amd-gpu-device-plugin-version.yml
@@ -0,0 +1,48 @@
+name: "update-amd-gpu-device-plugin-version"
+on:
+  workflow_dispatch:
+  schedule:
+    # every Monday at around 3 am pacific/10 am UTC
+    - cron: "0 10 * * 1"
+env:
+  GOPROXY: https://proxy.golang.org
+  GO_VERSION: '1.23.0'
+permissions:
+  contents: read
+
+jobs:
+  bump-amd-gpu-device-plugin-version:
+    runs-on: ubuntu-22.04
+    steps:
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
+      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
+        with:
+          go-version: ${{env.GO_VERSION}}
+      - name: Bump amd-gpu-device-plugin version
+        id: bumpAmdDevicePlugin
+        run: |
+          echo "OLD_VERSION=$(DEP=amd-gpu-device-plugin make get-dependency-version)" >> "$GITHUB_OUTPUT"
+          make update-amd-gpu-device-plugin-version
+          echo "NEW_VERSION=$(DEP=amd-gpu-device-plugin make get-dependency-version)" >> "$GITHUB_OUTPUT"
+          # 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
+        if: ${{ steps.bumpAmdDevicePlugin.outputs.changes != '' }}
+        uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f
+        with:
+          token: ${{ secrets.MINIKUBE_BOT_PAT }}
+          commit-message: 'Addon amd-gpu-device-plugin: Update amd/k8s-device-plugin image from ${{ steps.bumpAmdDevicePlugin.outputs.OLD_VERSION }} to ${{ steps.bumpAmdDevicePlugin.outputs.NEW_VERSION }}'
+          committer: minikube-bot <minikube-bot@google.com>
+          author: minikube-bot <minikube-bot@google.com>
+          branch: auto_bump_amd_device_plugin_version
+          push-to-fork: minikube-bot/minikube
+          base: master
+          delete-branch: true
+          title: 'Addon amd-gpu-device-plugin: Update amd/k8s-device-plugin image from ${{ steps.bumpAmdDevicePlugin.outputs.OLD_VERSION }} to ${{ steps.bumpAmdDevicePlugin.outputs.NEW_VERSION }}'
+          labels: ok-to-test
+          body: |
+            The [k8s-device-plugin](https://github.com/ROCm/k8s-device-plugin) project released a new k8s-device-plugin image
+
+            This PR was auto-generated by `make update-amd-gpu-device-plugin-version` using [update-amd-gpu-device-plugin-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-amd-gpu-device-plugin-version.yml) CI Workflow.
diff --git a/.github/workflows/update-buildkit-version.yml b/.github/workflows/update-buildkit-version.yml
index 19bd330eb..edb45ef18 100644
--- a/.github/workflows/update-buildkit-version.yml
+++ b/.github/workflows/update-buildkit-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 3"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-buildkit-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-calico-version.yml b/.github/workflows/update-calico-version.yml
index 9e5aaf630..685cc7a9d 100644
--- a/.github/workflows/update-calico-version.yml
+++ b/.github/workflows/update-calico-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-calico-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-cilium-version.yml b/.github/workflows/update-cilium-version.yml
index 21d6b8d24..556e87fe4 100644
--- a/.github/workflows/update-cilium-version.yml
+++ b/.github/workflows/update-cilium-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-cilium-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         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 f84a48f0c..c3fb18ed5 100644
--- a/.github/workflows/update-cloud-spanner-emulator-version.yml
+++ b/.github/workflows/update-cloud-spanner-emulator-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-cloud-spanner-emulator-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-cni-plugins-version.yml b/.github/workflows/update-cni-plugins-version.yml
index 5372f726b..4dfc26d72 100644
--- a/.github/workflows/update-cni-plugins-version.yml
+++ b/.github/workflows/update-cni-plugins-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-cni-plugins-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-containerd-version.yml b/.github/workflows/update-containerd-version.yml
index 5c08f21d4..5dc5393d6 100644
--- a/.github/workflows/update-containerd-version.yml
+++ b/.github/workflows/update-containerd-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-containerd-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-cri-dockerd-version.yml b/.github/workflows/update-cri-dockerd-version.yml
index 91ea1a413..cb16dd467 100644
--- a/.github/workflows/update-cri-dockerd-version.yml
+++ b/.github/workflows/update-cri-dockerd-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-cri-dockerd-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         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 37b1d2e5e..c598691e4 100644
--- a/.github/workflows/update-cri-o-version.yml
+++ b/.github/workflows/update-cri-o-version.yml
@@ -7,7 +7,7 @@ on:
     # - cron: "0 10 * * 5"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -15,7 +15,7 @@ jobs:
   bump-cri-o-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-crictl-version.yml b/.github/workflows/update-crictl-version.yml
index d318b83c5..89a58b895 100644
--- a/.github/workflows/update-crictl-version.yml
+++ b/.github/workflows/update-crictl-version.yml
@@ -7,7 +7,7 @@ on:
     # - cron: "0 10 * * 3"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -15,7 +15,7 @@ jobs:
   bump-crictl-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-crun-version.yml b/.github/workflows/update-crun-version.yml
index 118135fec..04998f7ff 100644
--- a/.github/workflows/update-crun-version.yml
+++ b/.github/workflows/update-crun-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 3"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-crun-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-docker-buildx-version.yml b/.github/workflows/update-docker-buildx-version.yml
index 2c0dd7762..674981440 100644
--- a/.github/workflows/update-docker-buildx-version.yml
+++ b/.github/workflows/update-docker-buildx-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-docker-buildx-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-docker-version.yml b/.github/workflows/update-docker-version.yml
index ac5b1ec82..30b26bcea 100644
--- a/.github/workflows/update-docker-version.yml
+++ b/.github/workflows/update-docker-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 4"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-docker-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-docsy-version.yml b/.github/workflows/update-docsy-version.yml
index be15a433a..9bca11bdf 100644
--- a/.github/workflows/update-docsy-version.yml
+++ b/.github/workflows/update-docsy-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-docsy-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-flannel-version.yml b/.github/workflows/update-flannel-version.yml
index c6d171575..4097f2d15 100644
--- a/.github/workflows/update-flannel-version.yml
+++ b/.github/workflows/update-flannel-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-flannel-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-gcp-auth-version.yml b/.github/workflows/update-gcp-auth-version.yml
index fcfd6ff31..9e073aaa6 100644
--- a/.github/workflows/update-gcp-auth-version.yml
+++ b/.github/workflows/update-gcp-auth-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-gcp-auth-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-gh-version.yml b/.github/workflows/update-gh-version.yml
index 718af880e..87f14ca1e 100644
--- a/.github/workflows/update-gh-version.yml
+++ b/.github/workflows/update-gh-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-gh-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-go-github-version.yml b/.github/workflows/update-go-github-version.yml
index b49855896..ad7716037 100644
--- a/.github/workflows/update-go-github-version.yml
+++ b/.github/workflows/update-go-github-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-go-github-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-golang-version.yml b/.github/workflows/update-golang-version.yml
index 443d573d4..45cee7ae3 100644
--- a/.github/workflows/update-golang-version.yml
+++ b/.github/workflows/update-golang-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 9 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-golang-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-golint-version.yml b/.github/workflows/update-golint-version.yml
index 0f868e757..2795de41a 100644
--- a/.github/workflows/update-golint-version.yml
+++ b/.github/workflows/update-golint-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-golint-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-gopogh-version.yml b/.github/workflows/update-gopogh-version.yml
index b015cee45..eac03cdaa 100644
--- a/.github/workflows/update-gopogh-version.yml
+++ b/.github/workflows/update-gopogh-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 9 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-gopogh-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-hugo-version.yml b/.github/workflows/update-hugo-version.yml
index 5b4180c57..be6dff7c1 100644
--- a/.github/workflows/update-hugo-version.yml
+++ b/.github/workflows/update-hugo-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-hugo-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-ingress-version.yml b/.github/workflows/update-ingress-version.yml
index ef60cdad8..7cc47cd02 100644
--- a/.github/workflows/update-ingress-version.yml
+++ b/.github/workflows/update-ingress-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-ingress-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-inspektor-gadget-version.yml b/.github/workflows/update-inspektor-gadget-version.yml
index bd8449cda..e551cee8a 100644
--- a/.github/workflows/update-inspektor-gadget-version.yml
+++ b/.github/workflows/update-inspektor-gadget-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-inspektor-gadget-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-iso-image-versions.yml b/.github/workflows/update-iso-image-versions.yml
index de9d68d2a..715949515 100644
--- a/.github/workflows/update-iso-image-versions.yml
+++ b/.github/workflows/update-iso-image-versions.yml
@@ -3,14 +3,14 @@ on:
   workflow_dispatch:
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 jobs:
   update-all:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-istio-operator.yml b/.github/workflows/update-istio-operator.yml
index 8e03e8671..b49e7feda 100644
--- a/.github/workflows/update-istio-operator.yml
+++ b/.github/workflows/update-istio-operator.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-istio-operator-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml
index 4e726b043..e41e54122 100644
--- a/.github/workflows/update-k8s-versions.yml
+++ b/.github/workflows/update-k8s-versions.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 8 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-k8s-versions:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kindnetd-version.yml b/.github/workflows/update-kindnetd-version.yml
index ca32d9e8d..6123e1776 100644
--- a/.github/workflows/update-kindnetd-version.yml
+++ b/.github/workflows/update-kindnetd-version.yml
@@ -6,14 +6,14 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 jobs:
   bump-kindnetd-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kong-ingress-controller-version.yml b/.github/workflows/update-kong-ingress-controller-version.yml
index e37ce36b3..9aabe3e97 100644
--- a/.github/workflows/update-kong-ingress-controller-version.yml
+++ b/.github/workflows/update-kong-ingress-controller-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-kong-ingress-controller-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kong-version.yml b/.github/workflows/update-kong-version.yml
index 7ebd0e90d..630ab5cf7 100644
--- a/.github/workflows/update-kong-version.yml
+++ b/.github/workflows/update-kong-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-kong-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kube-registry-proxy-version.yaml b/.github/workflows/update-kube-registry-proxy-version.yaml
new file mode 100644
index 000000000..3f0af36b0
--- /dev/null
+++ b/.github/workflows/update-kube-registry-proxy-version.yaml
@@ -0,0 +1,48 @@
+name: "update-kube-registry-proxy-version"
+on:
+  workflow_dispatch:
+  schedule:
+    # every Monday at around 3 am pacific/10 am UTC
+    - cron: "0 10 * * 1"
+env:
+  GOPROXY: https://proxy.golang.org
+  GO_VERSION: '1.23.1'
+permissions:
+  contents: read
+
+jobs:
+  bump-kube-registry-proxy-version:
+    runs-on: ubuntu-22.04
+    steps:
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
+      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
+        with:
+          go-version: ${{env.GO_VERSION}}
+      - name: Bump kube-registry-proxy version
+        id: bumpKubeRegistryProxy
+        run: |
+          echo "OLD_VERSION=$(DEP=kube-registry-proxy make get-dependency-version)" >> "$GITHUB_OUTPUT"
+          make update-kube-registry-proxy-version
+          echo "NEW_VERSION=$(DEP=kube-registry-proxy make get-dependency-version)" >> "$GITHUB_OUTPUT"
+          # 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
+        if: ${{ steps.bumpKubeRegistryProxy.outputs.changes != '' }}
+        uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f
+        with:
+          token: ${{ secrets.MINIKUBE_BOT_PAT }}
+          commit-message: 'Addon registry: Update kube-registry-proxy image from ${{ steps.bumpKubeRegistryProxy.outputs.OLD_VERSION }} to ${{ steps.bumpKubeRegistryProxy.outputs.NEW_VERSION }}'
+          committer: minikube-bot <minikube-bot@google.com>
+          author: minikube-bot <minikube-bot@google.com>
+          branch: auto_bump_kube_registry_proxy_version
+          push-to-fork: minikube-bot/minikube
+          base: master
+          delete-branch: true
+          title: 'Addon registry: Update kube-registry-proxy image from ${{ steps.bumpKubeRegistryProxy.outputs.OLD_VERSION }} to ${{ steps.bumpKubeRegistryProxy.outputs.NEW_VERSION }}'
+          labels: ok-to-test
+          body: |
+            The kube-registry-proxy project released a [new version](https://github.com/spowelljr/kube-registry-proxy)
+
+            This PR was auto-generated by `make update-kube-registry-proxy-version` using [update-kube-registry-proxy-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-kube-registry-proxy-version.yml) CI Workflow.
diff --git a/.github/workflows/update-kube-vip-version.yml b/.github/workflows/update-kube-vip-version.yml
index bf917f8fb..a7b842e25 100644
--- a/.github/workflows/update-kube-vip-version.yml
+++ b/.github/workflows/update-kube-vip-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-kube-vip-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kubeadm-constants.yml b/.github/workflows/update-kubeadm-constants.yml
index d1f4cc906..286bee4b0 100644
--- a/.github/workflows/update-kubeadm-constants.yml
+++ b/.github/workflows/update-kubeadm-constants.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 6 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-k8s-versions:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kubectl-version.yml b/.github/workflows/update-kubectl-version.yml
index e3a37959e..7f5d9b76f 100644
--- a/.github/workflows/update-kubectl-version.yml
+++ b/.github/workflows/update-kubectl-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-kubectl-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-kubernetes-versions-list.yml b/.github/workflows/update-kubernetes-versions-list.yml
index 913f883ae..abd2f51f4 100644
--- a/.github/workflows/update-kubernetes-versions-list.yml
+++ b/.github/workflows/update-kubernetes-versions-list.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 6 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   update-kubernetes-versions-list:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         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 188fe553b..296c0f49c 100644
--- a/.github/workflows/update-metrics-server-version.yml
+++ b/.github/workflows/update-metrics-server-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-metrics-server-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-nerdctl-version.yml b/.github/workflows/update-nerdctl-version.yml
index 9adcef7e4..6fabf7bd5 100644
--- a/.github/workflows/update-nerdctl-version.yml
+++ b/.github/workflows/update-nerdctl-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-nerdctl-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-nerdctld-version.yml b/.github/workflows/update-nerdctld-version.yml
index 15e2f55e4..823072ecc 100644
--- a/.github/workflows/update-nerdctld-version.yml
+++ b/.github/workflows/update-nerdctld-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-nerdctld-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-nvidia-device-plugin-version.yml b/.github/workflows/update-nvidia-device-plugin-version.yml
index 0d5ebf1dc..e2098d160 100644
--- a/.github/workflows/update-nvidia-device-plugin-version.yml
+++ b/.github/workflows/update-nvidia-device-plugin-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-nvidia-device-plugin-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-registry-version.yml b/.github/workflows/update-registry-version.yml
index c3f4a9e4c..f69882d70 100644
--- a/.github/workflows/update-registry-version.yml
+++ b/.github/workflows/update-registry-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-registry-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-runc-version.yml b/.github/workflows/update-runc-version.yml
index 4ce84bafd..c6fcd53e1 100644
--- a/.github/workflows/update-runc-version.yml
+++ b/.github/workflows/update-runc-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 2"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-runc-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-site-node-version.yml b/.github/workflows/update-site-node-version.yml
index e7544373c..d180c1f16 100644
--- a/.github/workflows/update-site-node-version.yml
+++ b/.github/workflows/update-site-node-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-site-node-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-ubuntu-version.yml b/.github/workflows/update-ubuntu-version.yml
index db5044336..b550c460b 100644
--- a/.github/workflows/update-ubuntu-version.yml
+++ b/.github/workflows/update-ubuntu-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-ubuntu-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-volcano-version.yml b/.github/workflows/update-volcano-version.yml
index 63c9e9925..22aa1373d 100644
--- a/.github/workflows/update-volcano-version.yml
+++ b/.github/workflows/update-volcano-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-volcano-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/update-yakd-version.yml b/.github/workflows/update-yakd-version.yml
index 7ad96bfd7..d94f2f8a6 100644
--- a/.github/workflows/update-yakd-version.yml
+++ b/.github/workflows/update-yakd-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-yakd-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/.github/workflows/vex.yml b/.github/workflows/vex.yml
index 0e6611f8c..0c5ddad95 100644
--- a/.github/workflows/vex.yml
+++ b/.github/workflows/vex.yml
@@ -8,7 +8,7 @@ jobs:
     runs-on: ubuntu-22.04
     steps:
       - name: Checkout code
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+        uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - name: Set env
         run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
       - uses: openvex/generate-vex@31b415924ea0d72ed5f2640f1dee59dea6c2770b
diff --git a/.github/workflows/yearly-leaderboard.yml b/.github/workflows/yearly-leaderboard.yml
index c37f574fa..244c3154a 100644
--- a/.github/workflows/yearly-leaderboard.yml
+++ b/.github/workflows/yearly-leaderboard.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 0 2 * *"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -19,7 +19,7 @@ jobs:
       AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
       AWS_DEFAULT_REGION: 'us-west-1'
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/Makefile b/Makefile
index 15d916f70..764de66c6 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.34.0-1727108440-19696
+ISO_VERSION ?= v1.34.0-1728382514-19774
 
 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
 DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
@@ -35,7 +35,7 @@ RPM_REVISION ?= 0
 
 # used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below
 # update this only by running `make update-golang-version`
-GO_VERSION ?= 1.23.0
+GO_VERSION ?= 1.23.1
 # update this only by running `make update-golang-version`
 GO_K8S_VERSION_PREFIX ?= v1.32.0
 
@@ -117,7 +117,7 @@ endif
 
 # gvisor tag to automatically push changes to
 # to update minikubes default, update deploy/addons/gvisor
-GVISOR_TAG ?= v0.0.1
+GVISOR_TAG ?= v0.0.2
 
 # auto-pause-hook tag to push changes to
 AUTOPAUSE_HOOK_TAG ?= v0.0.5
@@ -1222,6 +1222,11 @@ update-nvidia-device-plugin-version:
 	(cd hack/update/nvidia_device_plugin_version && \
 	 go run update_nvidia_device_plugin_version.go)
 
+.PHONY: update-amd-gpu-device-plugin-version
+update-amd-gpu-device-plugin-version:
+	(cd hack/update/amd_device_plugin_version && \
+	 go run update_amd_device_plugin_version.go)
+
 .PHONY: update-nerctld-version
 update-nerdctld-version:
 	(cd hack/update/nerdctld_version && \
@@ -1247,6 +1252,11 @@ update-yakd-version:
 	(cd hack/update/yakd_version && \
 	 go run update_yakd_version.go)
 
+.PHONY: update-kube-registry-proxy-version
+update-kube-registry-proxy-version:
+	(cd hack/update/kube_registry_proxy_version && \
+	 go run update_kube_registry_proxy_version.go)
+
 .PHONY: get-dependency-verison
 get-dependency-version:
 	@(cd hack/update/get_version && \
diff --git a/README.md b/README.md
index cdc27d042..16496f915 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@ As well as developer-friendly features:
 
 * [Addons](https://minikube.sigs.k8s.io/docs/handbook/deploying/#addons) - a marketplace for developers to share configurations for running services on minikube
 * [NVIDIA GPU support](https://minikube.sigs.k8s.io/docs/tutorials/nvidia/) - for machine learning
+* [AMD GPU support](https://minikube.sigs.k8s.io/docs/tutorials/amd/) - for machine learning
 * [Filesystem mounts](https://minikube.sigs.k8s.io/docs/handbook/mount/)
 
 **For more information, see the official [minikube website](https://minikube.sigs.k8s.io)**
diff --git a/cmd/minikube/cmd/config/kubernetes_version.go b/cmd/minikube/cmd/config/kubernetes_version.go
index ac1e25111..ad4839fda 100644
--- a/cmd/minikube/cmd/config/kubernetes_version.go
+++ b/cmd/minikube/cmd/config/kubernetes_version.go
@@ -20,7 +20,7 @@ import (
 	"context"
 	"net/http"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"golang.org/x/mod/semver"
 	"k8s.io/minikube/pkg/minikube/constants"
 )
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index cb585ba73..c31dd21f4 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -1462,8 +1462,8 @@ func validateGPUs(value, drvName, rtime string) error {
 	if err := validateGPUsArch(); err != nil {
 		return err
 	}
-	if value != "nvidia" && value != "all" {
-		return errors.Errorf(`The gpus flag must be passed a value of "nvidia" or "all"`)
+	if value != "nvidia" && value != "all" && value != "amd" {
+		return errors.Errorf(`The gpus flag must be passed a value of "nvidia", "amd" or "all"`)
 	}
 	if drvName == constants.Docker && (rtime == constants.Docker || rtime == constants.DefaultContainerRuntime) {
 		return nil
diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go
index 5f286db46..aac3a8a27 100644
--- a/cmd/minikube/cmd/start_flags.go
+++ b/cmd/minikube/cmd/start_flags.go
@@ -206,7 +206,7 @@ func initMinikubeFlags() {
 	startCmd.Flags().Bool(disableOptimizations, false, "If set, disables optimizations that are set for local Kubernetes. Including decreasing CoreDNS replicas from 2 to 1. Defaults to false.")
 	startCmd.Flags().Bool(disableMetrics, false, "If set, disables metrics reporting (CPU and memory usage), this can improve CPU usage. Defaults to false.")
 	startCmd.Flags().String(staticIP, "", "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)")
-	startCmd.Flags().StringP(gpus, "g", "", "Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)")
+	startCmd.Flags().StringP(gpus, "g", "", "Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)")
 	startCmd.Flags().Duration(autoPauseInterval, time.Minute*1, "Duration of inactivity before the minikube VM is paused (default 1m0s)")
 }
 
diff --git a/cmd/minikube/main.go b/cmd/minikube/main.go
index 21b2cf84d..af9a29c92 100644
--- a/cmd/minikube/main.go
+++ b/cmd/minikube/main.go
@@ -289,6 +289,7 @@ func propagateDockerContextToEnv() {
 	md, err := st.GetMetadata(currentContext)
 	if err != nil {
 		klog.Warningf("Unable to resolve the current Docker CLI context %q: %v", currentContext, err)
+		klog.Warningf("Try running `docker context use %s` to resolve the above error", currentContext)
 		return
 	}
 	dockerEP, ok := md.Endpoints[ddocker.DockerEndpoint]
diff --git a/deploy/addons/assets.go b/deploy/addons/assets.go
index 757a9e5ca..f1db9821c 100644
--- a/deploy/addons/assets.go
+++ b/deploy/addons/assets.go
@@ -107,6 +107,10 @@ var (
 	//go:embed gpu/nvidia-gpu-device-plugin.yaml.tmpl
 	NvidiaGpuDevicePluginAssets embed.FS
 
+	// AmdGpuDevicePluginAssets assets for amd-gpu-device-plugin addon
+	//go:embed gpu/amd-gpu-device-plugin.yaml.tmpl
+	AmdGpuDevicePluginAssets embed.FS
+
 	// LogviewerAssets assets for logviewer addon
 	//go:embed logviewer/*.tmpl logviewer/*.yaml
 	LogviewerAssets embed.FS
diff --git a/deploy/addons/auto-pause/Dockerfile b/deploy/addons/auto-pause/Dockerfile
index 17a5ab2fa..2b250eb3a 100644
--- a/deploy/addons/auto-pause/Dockerfile
+++ b/deploy/addons/auto-pause/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.23.0 AS builder
+FROM golang:1.23.1 AS builder
 WORKDIR /app
 COPY go.mod go.sum ./
 RUN go mod download
diff --git a/deploy/addons/gpu/amd-gpu-device-plugin.yaml.tmpl b/deploy/addons/gpu/amd-gpu-device-plugin.yaml.tmpl
new file mode 100644
index 000000000..12bffa56a
--- /dev/null
+++ b/deploy/addons/gpu/amd-gpu-device-plugin.yaml.tmpl
@@ -0,0 +1,60 @@
+# Copyright 2024 The Kubernetes Authors All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  name: amd-gpu-device-plugin
+  namespace: kube-system
+  labels:
+    k8s-app: amd-gpu-device-plugin
+    kubernetes.io/minikube-addons: amd-gpu-device-plugin
+    addonmanager.kubernetes.io/mode: Reconcile
+spec:
+  selector:
+    matchLabels:
+      k8s-app: amd-gpu-device-plugin
+  template:
+    metadata:
+      labels:
+        name: amd-gpu-device-plugin
+        k8s-app: amd-gpu-device-plugin
+    spec:
+      nodeSelector:
+        kubernetes.io/arch: amd64
+      priorityClassName: system-node-critical
+      tolerations:
+      - key: CriticalAddonsOnly
+        operator: Exists
+      volumes:
+      - name: dp
+        hostPath:
+          path: /var/lib/kubelet/device-plugins
+      - name: sys
+        hostPath:
+          path: /sys
+      containers:
+      - image: {{.CustomRegistries.AmdDevicePlugin  | default .ImageRepository | default .Registries.AmdDevicePlugin }}{{.Images.AmdDevicePlugin}}
+        name: amd-gpu-device-plugin
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop: ["ALL"]
+        volumeMounts:
+        - name: dp
+          mountPath: /var/lib/kubelet/device-plugins
+        - name: sys
+          mountPath: /sys
+  updateStrategy:
+    type: RollingUpdate
diff --git a/deploy/addons/inspektor-gadget/ig-clusterrole.yaml b/deploy/addons/inspektor-gadget/ig-clusterrole.yaml
deleted file mode 100644
index afdabdd24..000000000
--- a/deploy/addons/inspektor-gadget/ig-clusterrole.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: gadget-cluster-role
-rules:
-- apiGroups: [""]
-  resources: ["namespaces", "nodes", "pods"]
-  verbs: ["get", "watch", "list"]
-- apiGroups: [""]
-  resources: ["services"]
-  # list services is needed by network-policy gadget.
-  verbs: ["list"]
-- apiGroups: ["gadget.kinvolk.io"]
-  resources: ["traces", "traces/status"]
-  # For traces, we need all rights on them as we define this resource.
-  verbs: ["delete", "deletecollection", "get", "list", "patch", "create", "update", "watch"]
-- apiGroups: ["*"]
-  resources: ["deployments", "replicasets", "statefulsets", "daemonsets", "jobs", "cronjobs", "replicationcontrollers"]
-  # Required to retrieve the owner references used by the seccomp gadget.
-  verbs: ["get"]
-- apiGroups: ["security-profiles-operator.x-k8s.io"]
-  resources: ["seccompprofiles"]
-  # Required for integration with the Kubernetes Security Profiles Operator
-  verbs: ["list", "watch", "create"]
-- apiGroups: ["security.openshift.io"]
-  # It is necessary to use the 'privileged' security context constraints to be
-  # able mount host directories as volumes, use the host networking, among others.
-  # This will be used only when running on OpenShift:
-  # https://docs.openshift.com/container-platform/4.9/authentication/managing-security-context-constraints.html#default-sccs_configuring-internal-oauth
-  resources: ["securitycontextconstraints"]
-  resourceNames: ["privileged"]
-  verbs: ["use"]
\ No newline at end of file
diff --git a/deploy/addons/inspektor-gadget/ig-clusterrolebinding.yaml b/deploy/addons/inspektor-gadget/ig-clusterrolebinding.yaml
deleted file mode 100644
index 3f9d3bc08..000000000
--- a/deploy/addons/inspektor-gadget/ig-clusterrolebinding.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: gadget-cluster-role-binding
-subjects:
-- kind: ServiceAccount
-  name: gadget
-  namespace: gadget
-roleRef:
-  kind: ClusterRole
-  name: gadget-cluster-role
-  apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/deploy/addons/inspektor-gadget/ig-configmap.yaml b/deploy/addons/inspektor-gadget/ig-configmap.yaml
deleted file mode 100644
index 444bf5b98..000000000
--- a/deploy/addons/inspektor-gadget/ig-configmap.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: gadget
-  namespace: gadget
-data:
-  config.yaml: |-
-    hook-mode: auto
-    fallback-pod-informer: true
-    events-buffer-length: 16384
-    containerd-socketpath: /run/containerd/containerd.sock
-    crio-socketpath: /run/crio/crio.sock
-    docker-socketpath: /run/docker.sock
-    podman-socketpath: /run/podman/podman.sock
-    operator:
-      oci:
-        verify-image: true
-        public-keys:
-          - |
-            -----BEGIN PUBLIC KEY-----
-            MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoDOC0gYSxZTopenGmX3ZFvQ1DSfh
-            Ir4EKRt5jC+mXaJ7c7J+oREskYMn/SfZdRHNSOjLTZUMDm60zpXGhkFecg==
-            -----END PUBLIC KEY-----
-        allowed-gadgets:
-          []
-        disallow-pulling: false
diff --git a/deploy/addons/inspektor-gadget/ig-crd.yaml b/deploy/addons/inspektor-gadget/ig-crd.yaml
index 4243ed5c8..eecab43bf 100644
--- a/deploy/addons/inspektor-gadget/ig-crd.yaml
+++ b/deploy/addons/inspektor-gadget/ig-crd.yaml
@@ -1,8 +1,11 @@
+
+---
 apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.4.1
+  creationTimestamp: null
   name: traces.gadget.kinvolk.io
 spec:
   group: gadget.kinvolk.io
@@ -123,4 +126,4 @@ status:
     kind: ""
     plural: ""
   conditions: []
-  storedVersions: []
\ No newline at end of file
+  storedVersions: []
diff --git a/deploy/addons/inspektor-gadget/ig-daemonset.yaml.tmpl b/deploy/addons/inspektor-gadget/ig-daemonset.yaml.tmpl
deleted file mode 100644
index 4f41c6f95..000000000
--- a/deploy/addons/inspektor-gadget/ig-daemonset.yaml.tmpl
+++ /dev/null
@@ -1,213 +0,0 @@
-apiVersion: apps/v1
-kind: DaemonSet
-metadata:
-  name: gadget
-  namespace: gadget
-  labels:
-    k8s-app: gadget
-spec:
-  selector:
-    matchLabels:
-      k8s-app: gadget
-  template:
-    metadata:
-      labels:
-        k8s-app: gadget
-      annotations:
-        # We need to set gadget container as unconfined so it is able to write
-        # /sys/fs/bpf as well as /sys/kernel/debug/tracing.
-        # Otherwise, we can have error like:
-        # "failed to create server failed to create folder for pinning bpf maps: mkdir /sys/fs/bpf/gadget: permission denied"
-        # (For reference, see: https://github.com/inspektor-gadget/inspektor-gadget/runs/3966318270?check_suite_focus=true#step:20:221)
-        container.apparmor.security.beta.kubernetes.io/gadget: "unconfined"
-        inspektor-gadget.kinvolk.io/option-hook-mode: "auto"
-    spec:
-      serviceAccount: gadget
-      hostPID: true
-      hostNetwork: true
-      nodeSelector:
-        kubernetes.io/os: "linux"
-      containers:
-      - name: gadget
-        terminationMessagePolicy: FallbackToLogsOnError
-        image: {{.CustomRegistries.InspektorGadget  | default .ImageRepository | default .Registries.InspektorGadget }}{{.Images.InspektorGadget}}
-        imagePullPolicy: "Always"
-        command: [ "/entrypoint" ]
-        lifecycle:
-          preStop:
-            exec:
-              command:
-                - "/cleanup"
-        readinessProbe:
-          periodSeconds: 5
-          timeoutSeconds: 2
-          exec:
-            command:
-              - /bin/gadgettracermanager
-              - -liveness
-        livenessProbe:
-          periodSeconds: 5
-          timeoutSeconds: 2
-          exec:
-            command:
-              - /bin/gadgettracermanager
-              - -liveness
-        env:
-          - name: NODE_NAME
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
-          - name: GADGET_POD_UID
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.uid
-          - name: TRACELOOP_NODE_NAME
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
-          - name: TRACELOOP_POD_NAME
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.name
-          - name: TRACELOOP_POD_NAMESPACE
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.namespace
-          - name: GADGET_IMAGE
-            value: "ghcr.io/inspektor-gadget/inspektor-gadget"
-          - name: INSPEKTOR_GADGET_VERSION
-            value: "v0.16.1"
-          - name: INSPEKTOR_GADGET_OPTION_HOOK_MODE
-            value: "auto"
-          - name: INSPEKTOR_GADGET_OPTION_FALLBACK_POD_INFORMER
-            value: "true"
-          # Make sure to keep these settings in sync with pkg/container-utils/runtime-client/interface.go
-          - name: INSPEKTOR_GADGET_CONTAINERD_SOCKETPATH
-            value: "/run/containerd/containerd.sock"
-          - name: INSPEKTOR_GADGET_CRIO_SOCKETPATH
-            value: "/run/crio/crio.sock"
-          - name: INSPEKTOR_GADGET_DOCKER_SOCKETPATH
-            value: "/run/docker.sock"
-          - name: HOST_ROOT
-            value: "/host"
-        securityContext:
-          capabilities:
-            add:
-              # We need CAP_NET_ADMIN to be able to create BPF link.
-              # Indeed, link_create is called with prog->type which equals
-              # BPF_PROG_TYPE_CGROUP_SKB.
-              # This value is then checked in
-              # bpf_prog_attach_check_attach_type() which also checks if we have
-              # CAP_NET_ADMIN:
-              # https://elixir.bootlin.com/linux/v5.14.14/source/kernel/bpf/syscall.c#L4099
-              # https://elixir.bootlin.com/linux/v5.14.14/source/kernel/bpf/syscall.c#L2967
-              - NET_ADMIN
-
-              # We need CAP_SYS_ADMIN to use Python-BCC gadgets because bcc
-              # internally calls bpf_get_map_fd_by_id() which contains the
-              # following snippet:
-              # if (!capable(CAP_SYS_ADMIN))
-              # 	return -EPERM;
-              # (https://elixir.bootlin.com/linux/v5.10.73/source/kernel/bpf/syscall.c#L3254)
-              #
-              # Details about this are given in:
-              # > The important design decision is to allow ID->FD transition for
-              # CAP_SYS_ADMIN only. What it means that user processes can run
-              # with CAP_BPF and CAP_NET_ADMIN and they will not be able to affect each
-              # other unless they pass FDs via scm_rights or via pinning in bpffs.
-              # ID->FD is a mechanism for human override and introspection.
-              # An admin can do 'sudo bpftool prog ...'. It's possible to enforce via LSM that
-              # only bpftool binary does bpf syscall with CAP_SYS_ADMIN and the rest of user
-              # space processes do bpf syscall with CAP_BPF isolating bpf objects (progs, maps,
-              # links) that are owned by such processes from each other.
-              # (https://lwn.net/Articles/820560/)
-              #
-              # Note that even with a kernel providing CAP_BPF, the above
-              # statement is still true.
-              - SYS_ADMIN
-
-              # We need this capability to get addresses from /proc/kallsyms.
-              # Without it, addresses displayed when reading this file will be
-              # 0.
-              # Thus, bcc_procutils_each_ksym will never call callback, so KSyms
-              # syms_ vector will be empty and it will return false.
-              # As a consequence, no prefix will be found in
-              # get_syscall_prefix(), so a default prefix (_sys) will be
-              # returned.
-              # Sadly, this default prefix is not used by the running kernel,
-              # which instead uses: __x64_sys_
-              - SYSLOG
-
-              # traceloop gadget uses strace which in turns use ptrace()
-              # syscall.
-              # Within kernel code, ptrace() calls ptrace_attach() which in
-              # turns calls __ptrace_may_access() which calls ptrace_has_cap()
-              # where CAP_SYS_PTRACE is finally checked:
-              # https://elixir.bootlin.com/linux/v5.14.14/source/kernel/ptrace.c#L284
-              - SYS_PTRACE
-
-              # Needed by setrlimit in gadgettracermanager and by the traceloop
-              # gadget.
-              - SYS_RESOURCE
-
-              # Needed for gadgets that don't dumb the memory rlimit.
-              # (Currently only applies to BCC python-based gadgets)
-              - IPC_LOCK
-
-              # Needed by BCC python-based gadgets to load the kheaders module:
-              # https://github.com/iovisor/bcc/blob/v0.24.0/src/cc/frontends/clang/kbuild_helper.cc#L158
-              - SYS_MODULE
-
-              # Needed by gadgets that open a raw sock like dns and snisnoop
-              - NET_RAW
-        volumeMounts:
-        - name: host
-          mountPath: /host
-        - name: run
-          mountPath: /run
-        - name: modules
-          mountPath: /lib/modules
-        - name: debugfs
-          mountPath: /sys/kernel/debug
-        - name: cgroup
-          mountPath: /sys/fs/cgroup
-        - name: bpffs
-          mountPath: /sys/fs/bpf
-        # We need to add a dedicated volume to store OCI image otherwise it
-        # will fail as the container root filesystem is read only.
-        # For this, we use an emptyDir without size limit.
-        - mountPath: /var/lib/ig
-          name: oci
-        - mountPath: /etc/ig
-          name: config
-          readOnly: true
-      tolerations: 
-      - effect: NoSchedule
-        operator: Exists
-      - effect: NoExecute
-        operator: Exists
-      volumes:
-      - name: host
-        hostPath:
-          path: /
-      - name: run
-        hostPath:
-          path: /run
-      - name: cgroup
-        hostPath:
-          path: /sys/fs/cgroup
-      - name: modules
-        hostPath:
-          path: /lib/modules
-      - name: bpffs
-        hostPath:
-          path: /sys/fs/bpf
-      - name: debugfs
-        hostPath:
-          path: /sys/kernel/debug
-      - name: oci
-        emptyDir:
-      - name: config
-        configMap:
-          name: gadget
-          defaultMode: 0o400
diff --git a/deploy/addons/inspektor-gadget/ig-deployment.yaml.tmpl b/deploy/addons/inspektor-gadget/ig-deployment.yaml.tmpl
new file mode 100644
index 000000000..06bad5264
--- /dev/null
+++ b/deploy/addons/inspektor-gadget/ig-deployment.yaml.tmpl
@@ -0,0 +1,376 @@
+---
+# This file is generated by 'make generate-manifests'; DO NOT EDIT.
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: gadget
+---
+# Source: gadget/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: gadget
+  namespace: gadget
+---
+# Source: gadget/templates/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: gadget
+  namespace: gadget
+data:
+    config.yaml: |-
+      hook-mode: auto
+      fallback-pod-informer: true
+      events-buffer-length: 16384
+      containerd-socketpath: /run/containerd/containerd.sock
+      crio-socketpath: /run/crio/crio.sock
+      docker-socketpath: /run/docker.sock
+      podman-socketpath: /run/podman/podman.sock
+      operator:
+        oci:
+          verify-image: true
+          public-keys:
+            - |
+              -----BEGIN PUBLIC KEY-----
+              MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoDOC0gYSxZTopenGmX3ZFvQ1DSfh
+              Ir4EKRt5jC+mXaJ7c7J+oREskYMn/SfZdRHNSOjLTZUMDm60zpXGhkFecg==
+              -----END PUBLIC KEY-----
+          allowed-gadgets:
+            []
+          disallow-pulling: false
+---
+# Source: gadget/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: gadget-cluster-role
+rules:
+  - apiGroups: [""]
+    resources: ["nodes/proxy"]
+    verbs: ["get"]
+  - apiGroups: [""]
+    resources: ["namespaces", "nodes", "pods"]
+    verbs: ["get", "watch", "list"]
+  - apiGroups: [""]
+    resources: ["services"]
+    # list is needed by network-policy gadget
+    # watch is needed by operators enriching with service informations
+    verbs: ["list", "watch"]
+  - apiGroups: ["gadget.kinvolk.io"]
+    resources: ["traces", "traces/status"]
+    # For traces, we need all rights on them as we define this resource.
+    verbs: ["delete", "deletecollection", "get", "list", "patch", "create", "update", "watch"]
+  - apiGroups: ["*"]
+    resources: ["deployments", "replicasets", "statefulsets", "daemonsets", "jobs", "cronjobs", "replicationcontrollers"]
+    # Required to retrieve the owner references used by the seccomp gadget.
+    verbs: ["get"]
+  - apiGroups: ["security-profiles-operator.x-k8s.io"]
+    resources: ["seccompprofiles"]
+    # Required for integration with the Kubernetes Security Profiles Operator
+    verbs: ["list", "watch", "create"]
+  - apiGroups: ["security.openshift.io"]
+    # It is necessary to use the 'privileged' security context constraints to be
+    # able mount host directories as volumes, use the host networking, among others.
+    # This will be used only when running on OpenShift:
+    # https://docs.openshift.com/container-platform/4.9/authentication/managing-security-context-constraints.html#default-sccs_configuring-internal-oauth
+    resources: ["securitycontextconstraints"]
+    resourceNames: ["privileged"]
+    verbs: ["use"]
+---
+# Source: gadget/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: gadget-cluster-role-binding
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: gadget-cluster-role
+subjects:
+  - kind: ServiceAccount
+    name: gadget
+    namespace: gadget
+---
+# Source: gadget/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+  name: gadget-role
+  namespace: gadget
+rules:
+  - apiGroups: [ "" ]
+    resources: [ "secrets" ]
+    # get secrets is needed for retrieving pull secret.
+    verbs: [ "get" ]
+---
+# Source: gadget/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+  name: gadget-role-binding
+  namespace: gadget
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: Role
+  name: gadget-role
+subjects:
+  - kind: ServiceAccount
+    name: gadget
+---
+# Source: gadget/templates/daemonset.yaml
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  labels:
+    k8s-app: gadget
+  name: gadget
+  namespace: gadget
+spec:
+  selector:
+    matchLabels:
+      k8s-app: gadget
+  template:
+    metadata:
+      labels:
+        k8s-app: gadget
+      annotations:
+        # We need to set gadget container as unconfined so it is able to write
+        # /sys/fs/bpf as well as /sys/kernel/debug/tracing.
+        # Otherwise, we can have error like:
+        # "failed to create server failed to create folder for pinning bpf maps: mkdir /sys/fs/bpf/gadget: permission denied"
+        # (For reference, see: https://github.com/inspektor-gadget/inspektor-gadget/runs/3966318270?check_suite_focus=true#step:20:221)
+        container.apparmor.security.beta.kubernetes.io/gadget: "unconfined"
+        inspektor-gadget.kinvolk.io/option-hook-mode: "auto"
+        # keep aligned with values in pkg/operators/prometheus/prometheus.go
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "2223"
+        prometheus.io/path: "/metrics"
+    spec:
+      serviceAccount: gadget
+      hostPID: false
+      hostNetwork: false
+      containers:
+        - name: gadget
+          terminationMessagePolicy: FallbackToLogsOnError
+          image: {{.CustomRegistries.InspektorGadget  | default .ImageRepository | default .Registries.InspektorGadget }}{{.Images.InspektorGadget}}
+          imagePullPolicy: Always
+          command: [ "/entrypoint" ]
+          lifecycle:
+            preStop:
+              exec:
+                command:
+                  - "/cleanup"
+          livenessProbe:
+            exec:
+              command:
+                - /bin/gadgettracermanager
+                - -liveness
+            periodSeconds: 5
+            timeoutSeconds: 2
+          readinessProbe:
+            exec:
+              command:
+                - /bin/gadgettracermanager
+                - -liveness
+            periodSeconds: 5
+            timeoutSeconds: 2
+          env:
+            - name: NODE_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: spec.nodeName
+            - name: GADGET_POD_UID
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.uid
+            - name: GADGET_IMAGE
+              value: "ghcr.io/inspektor-gadget/inspektor-gadget"
+            - name: INSPEKTOR_GADGET_VERSION
+              value: "latest"
+            - name: INSPEKTOR_GADGET_OPTION_HOOK_MODE
+              value: "auto"
+            - name: INSPEKTOR_GADGET_OPTION_FALLBACK_POD_INFORMER
+              value: "true"
+            - name: HOST_ROOT
+              value: "/host"
+            - name: IG_EXPERIMENTAL
+              value: "false"
+            - name: EVENTS_BUFFER_LENGTH
+              value: "16384"
+            - name: GADGET_TRACER_MANAGER_LOG_LEVEL
+              value: "info"
+          securityContext:
+            readOnlyRootFilesystem: true
+            # With hostPID/hostNetwork/privileged [1] set to false, we need to set appropriate
+            # SELinux context [2] to be able to mount host directories with correct permissions.
+            # This option is ignored if hostPID/hostNetwork/privileged is set to true or SELinux isn't enabled.
+            # See:
+            # 1 - https://github.com/cri-o/cri-o/blob/v1.27.0/server/sandbox_run_linux.go#L537
+            # 2 - https://github.com/cri-o/cri-o/blob/v1.27.0/server/container_create_linux.go#L310
+            seLinuxOptions:
+              type: "spc_t"
+            capabilities:
+              drop:
+                - ALL
+              add:
+                # We need CAP_SYS_ADMIN for gadgettracermanager due to several
+                # syscalls:
+                # - bpf(): It often checks if SYS_ADMIN is set, among others
+                #   there:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/kernel/bpf/syscall.c#L2602
+                # - perf_event_open(): The kernel checks if CAP_PERFMON or
+                #   CAP_SYS_ADMIN is set:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/kernel/events/core.c#L12406-L12409
+                # - fanotify_init(): CAP_SYS_ADMIN is required to use all the
+                #   functionalities offered by fanotify:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/fs/notify/fanotify/fanotify_user.c#L1404
+                # - fanotify_mark(): This capability is required to setup mount
+                #   or filesystem marks:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/fs/notify/fanotify/fanotify_user.c#L1745-L1754
+                # - mount(): We need this capability to modify the caller
+                #   namespace:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/fs/namespace.c#L1844-L1846
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/fs/namespace.c#L3609
+                # - setns(): SYS_ADMIN is needed to install various namespace:
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5ba9292eda36fd8e3c11f35ee065c/kernel/nsproxy.c#L574
+                #   https://github.com/torvalds/linux/blob/c42d9eeef8e5/kernel/cgroup/namespace.c#L103-L105
+                - SYS_ADMIN
+
+                # We need this capability to get addresses from /proc/kallsyms.
+                # Without it, addresses displayed when reading this file will be
+                # 0.
+                # Indeed, the socket-enricher needs to get the socket_file_ops
+                # to work correctly:
+                # https://github.com/inspektor-gadget/inspektor-gadget/blob/69692d54d951/pkg/gadgets/internal/socketenricher/tracer.go#L75
+                - SYSLOG
+
+                # Accessing some procfs files such as /proc/$pid/ns/mnt
+                # requires ptrace capability:
+                # https://github.com/inspektor-gadget/inspektor-gadget/blob/3c51ff5e9f5b/pkg/utils/host/namespaces.go#L65
+                # https://github.com/torvalds/linux/blob/c42d9eeef8e5/fs/proc/namespaces.c#L58
+                - SYS_PTRACE
+
+                # Needed by RemoveMemlock in gadgettracermanager:
+                # https://github.com/inspektor-gadget/inspektor-gadget/blob/f2b9826fc4ae046415cdee30ee4a25322fd3f0c0/pkg/gadgettracermanager/gadgettracermanager.go#L258
+                - SYS_RESOURCE
+
+                # Needed by mmap() called by gadgettracermanager:
+                # https://github.com/torvalds/linux/blob/c42d9eeef8e5/mm/mmap.c#L1281
+                # https://github.com/torvalds/linux/blob/c42d9eeef8e5/mm/mmap.c#L1161-L1162
+                - IPC_LOCK
+
+                # Needed by gadgets that open a raw sock like dns and snisnoop:
+                # https://github.com/inspektor-gadget/inspektor-gadget/blob/3c51ff5e9f5b/gadgets/trace_dns/program.bpf.c#L365-L366
+                - NET_RAW
+
+                # Needed to attach qdiscs and filters to network interfaces. See createClsActQdisc()
+                # and addTCFilter() in pkg/gadgets/internal/tcnetworktracer/tc.go
+                - NET_ADMIN
+          volumeMounts:
+            - mountPath: /host/bin
+              name: bin
+              readOnly: true
+            # We need to have read/write as we write NRI and OCI config files
+            # here.
+            - mountPath: /host/etc
+              name: etc
+              readOnly: false
+            # We need to have read/write as we write NRI and OCI binaries here.
+            - mountPath: /host/opt
+              name: opt
+              readOnly: false
+            - mountPath: /host/usr
+              name: usr
+              readOnly: true
+            - mountPath: /host/run
+              name: run
+              readOnly: true
+            - mountPath: /host/var
+              name: var
+              readOnly: true
+            # WARNING Despite mounting host proc as readonly, it is possible to
+            # write host file system using symlinks under /host/proc. The
+            # following command, ran from gadget pod, will result in writing to
+            # the host filesystem:
+            # touch /host/proc/1/root/foobar
+            # This limitation comes from Inspektor Gadget needing to be run as
+            # unconfined with regard to AppArmor and having the SYS_PTRACE
+            # capability.
+            - mountPath: /host/proc
+              name: proc
+              readOnly: true
+            - mountPath: /run
+              name: run
+            - mountPath: /sys/kernel/debug
+              name: debugfs
+            - mountPath: /sys/fs/cgroup
+              name: cgroup
+              readOnly: true
+            - mountPath: /sys/fs/bpf
+              name: bpffs
+            # We need to add a dedicated volume to store OCI image otherwise it
+            # will fail as the container root filesystem is read only.
+            # For this, we use an emptyDir without size limit.
+            - mountPath: /var/lib/ig
+              name: oci
+            - mountPath: /etc/ig
+              name: config
+              readOnly: true
+      nodeSelector:
+        kubernetes.io/os: linux
+      affinity:
+        {}
+      tolerations:
+        - effect: NoSchedule
+          operator: Exists
+        - effect: NoExecute
+          operator: Exists
+      volumes:
+        # /bin is needed to find runc.
+        - name: bin
+          hostPath:
+            path: /bin
+        # /etc is needed for several reasons:
+        # 1. entrypoint needs /etc/os-release to print information.
+        # 2. entrypoint needs /etc/nri to handle NRI hooks
+        # 3. entrypoint needs /etc/containers/oci to handle OCI hooks.
+        - name: etc
+          hostPath:
+            path: /etc
+        # /opt is needed for several reasons:
+        # 1. entrypoint needs /opt/nri to handle NRI hooks.
+        # 2. entrypoint needs /opt/hooks/oci to handle OCI hooks.
+        - name: opt
+          hostPath:
+            path: /opt
+        # /usr is needed to find runc.
+        - name: usr
+          hostPath:
+            path: /usr
+        - name: proc
+          hostPath:
+            path: /proc
+        - name: run
+          hostPath:
+            path: /run
+        # /var is needed by container-hook to fanoitfy mark certain directories
+        # e.g. needed in case of docker runtime on minikube (driver=kvm2)
+        - name: var
+          hostPath:
+            path: /var
+        - name: cgroup
+          hostPath:
+            path: /sys/fs/cgroup
+        - name: bpffs
+          hostPath:
+            path: /sys/fs/bpf
+        - name: debugfs
+          hostPath:
+            path: /sys/kernel/debug
+        - name: oci
+          emptyDir:
+        - name: config
+          configMap:
+            name: gadget
+            defaultMode: 0o400
diff --git a/deploy/addons/inspektor-gadget/ig-namespace.yaml b/deploy/addons/inspektor-gadget/ig-namespace.yaml
deleted file mode 100644
index 878088faa..000000000
--- a/deploy/addons/inspektor-gadget/ig-namespace.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
-  name: gadget
\ No newline at end of file
diff --git a/deploy/addons/inspektor-gadget/ig-role.yaml b/deploy/addons/inspektor-gadget/ig-role.yaml
deleted file mode 100644
index 7b7337718..000000000
--- a/deploy/addons/inspektor-gadget/ig-role.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
-  namespace: gadget
-  name: gadget-role
-rules:
-- apiGroups: [""]
-  resources: ["pods"]
-  # update is needed by traceloop gadget.
-  verbs: ["update"]
\ No newline at end of file
diff --git a/deploy/addons/inspektor-gadget/ig-rolebinding.yaml b/deploy/addons/inspektor-gadget/ig-rolebinding.yaml
deleted file mode 100644
index 35a7b905c..000000000
--- a/deploy/addons/inspektor-gadget/ig-rolebinding.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
-  name: gadget-role-binding
-  namespace: gadget
-subjects:
-- kind: ServiceAccount
-  name: gadget
-roleRef:
-  kind: Role
-  name: gadget-role
-  apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/deploy/addons/inspektor-gadget/ig-serviceaccount.yaml b/deploy/addons/inspektor-gadget/ig-serviceaccount.yaml
deleted file mode 100644
index c0102b538..000000000
--- a/deploy/addons/inspektor-gadget/ig-serviceaccount.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: gadget
-  namespace: gadget
\ No newline at end of file
diff --git a/deploy/gvisor/Dockerfile b/deploy/gvisor/Dockerfile
index 9ddb2bee9..45f241b57 100644
--- a/deploy/gvisor/Dockerfile
+++ b/deploy/gvisor/Dockerfile
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM golang:1.23.0 AS builder
+FROM golang:1.23.1 AS builder
 WORKDIR /app
 COPY go.mod go.sum ./
 RUN go mod download
diff --git a/deploy/iso/minikube-iso/go.hash b/deploy/iso/minikube-iso/go.hash
index 9014b5639..e75ab4aff 100644
--- a/deploy/iso/minikube-iso/go.hash
+++ b/deploy/iso/minikube-iso/go.hash
@@ -30,3 +30,4 @@ sha256  80648ef34f903193d72a59c0dff019f5f98ae0c9aa13ade0b0ecbff991a76f68  go1.22
 sha256  fed720678e728a7ca30ba8d1ded1caafe27d16028fab0232b8ba8e22008fb784  go1.22.4.src.tar.gz
 sha256  ac9c723f224969aee624bc34fd34c9e13f2a212d75c71c807de644bb46e112f6  go1.22.5.src.tar.gz
 sha256  42b7a8e80d805daa03022ed3fde4321d4c3bf2c990a144165d01eeecd6f699c6  go1.23.0.src.tar.gz
+sha256  6ee44e298379d146a5e5aa6b1c5b5d5f5d0a3365eabdd70741e6e21340ec3b0d  go1.23.1.src.tar.gz
diff --git a/deploy/iso/minikube-iso/package/runc-master/runc-master.hash b/deploy/iso/minikube-iso/package/runc-master/runc-master.hash
index a577a8182..375decffb 100644
--- a/deploy/iso/minikube-iso/package/runc-master/runc-master.hash
+++ b/deploy/iso/minikube-iso/package/runc-master/runc-master.hash
@@ -24,3 +24,4 @@ sha256 129ad7cd470e4bdc82cdd3d5f0aa93e43674bf8ea115da2b42a27361885fe3ee v1.1.11.
 sha256 be31b07d6a54a8f234016501c300ad04b6c428c56588e7eca8c3b663308db208 v1.1.12.tar.gz
 sha256 789d5749a08ef1fbe5d1999b67883206a68a4e58e6ca0151c411d678f3480b25 v1.1.13.tar.gz
 sha256 563cf57c38d2e7149234dbe6f63ca0751eb55ef8f586ed12a543dedc1aceba68 v1.1.14.tar.gz
+sha256 8446718a107f3e437bc33a4c9b89b94cb24ae58ed0a49d08cd83ac7d39980860 v1.1.15.tar.gz
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 28961d821..aaaedc571 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.14
-RUNC_MASTER_COMMIT = 2c9f5602f0ba3d9da1c2596322dfc4e156844890
+RUNC_MASTER_VERSION = v1.1.15
+RUNC_MASTER_COMMIT = bc20cb4497af9af01bea4a8044f1678ffca2745c
 RUNC_MASTER_SITE = https://github.com/opencontainers/runc/archive
 RUNC_MASTER_SOURCE = $(RUNC_MASTER_VERSION).tar.gz
 RUNC_MASTER_LICENSE = Apache-2.0
diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile
index f64d19314..84f31d744 100644
--- a/deploy/kicbase/Dockerfile
+++ b/deploy/kicbase/Dockerfile
@@ -21,7 +21,7 @@
 # this ARG needs to be global to use it in `FROM` & is updated for new versions of ubuntu:jammy-*
 ARG UBUNTU_JAMMY_IMAGE="ubuntu:jammy-20240911.1"
 # multi-stage docker build so we can build auto-pause for arm64
-FROM golang:1.23.0 as auto-pause
+FROM golang:1.23.1 as auto-pause
 WORKDIR /src
 # auto-pause depends on core minikube code so we need to pass the whole source code as the context
 # copy in the minimal amount of source code possible
diff --git a/go.mod b/go.mod
index fc83fc1a0..183d163da 100644
--- a/go.mod
+++ b/go.mod
@@ -28,7 +28,7 @@ require (
 	github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
 	github.com/google/go-cmp v0.6.0
 	github.com/google/go-containerregistry v0.20.2
-	github.com/google/go-github/v65 v65.0.0
+	github.com/google/go-github/v66 v66.0.0
 	github.com/google/slowjam v1.1.1
 	github.com/google/uuid v1.6.0
 	github.com/hashicorp/go-getter v1.7.6
@@ -49,7 +49,7 @@ require (
 	github.com/moby/patternmatcher v0.6.0
 	github.com/olekukonko/tablewriter v0.0.5
 	github.com/opencontainers/go-digest v1.0.0
-	github.com/opencontainers/runc v1.1.14
+	github.com/opencontainers/runc v1.1.15
 	github.com/otiai10/copy v1.14.0
 	github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
 	github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8
@@ -63,9 +63,9 @@ require (
 	github.com/spf13/viper v1.19.0
 	github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
 	go.opencensus.io v0.24.0
-	go.opentelemetry.io/otel v1.30.0
-	go.opentelemetry.io/otel/sdk v1.30.0
-	go.opentelemetry.io/otel/trace v1.30.0
+	go.opentelemetry.io/otel v1.31.0
+	go.opentelemetry.io/otel/sdk v1.31.0
+	go.opentelemetry.io/otel/trace v1.31.0
 	golang.org/x/build v0.0.0-20190927031335-2835ba2e683f
 	golang.org/x/crypto v0.28.0
 	golang.org/x/exp v0.0.0-20230905200255-921286631fa9
@@ -76,7 +76,7 @@ require (
 	golang.org/x/term v0.25.0
 	golang.org/x/text v0.19.0
 	gonum.org/v1/plot v0.14.0
-	google.golang.org/api v0.199.0
+	google.golang.org/api v0.200.0
 	gopkg.in/yaml.v2 v2.4.0
 	k8s.io/api v0.31.1
 	k8s.io/apimachinery v0.31.1
@@ -86,19 +86,19 @@ require (
 	k8s.io/klog/v2 v2.130.1
 	k8s.io/kubectl v0.31.1
 	k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
-	libvirt.org/go/libvirt v1.10006.0
+	libvirt.org/go/libvirt v1.10008.0
 	sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
 )
 
 require (
 	cel.dev/expr v0.16.1 // indirect
 	cloud.google.com/go v0.115.1 // indirect
-	cloud.google.com/go/auth v0.9.5 // indirect
+	cloud.google.com/go/auth v0.9.8 // indirect
 	cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
 	cloud.google.com/go/compute/metadata v0.5.2 // indirect
 	cloud.google.com/go/iam v1.2.1 // indirect
-	cloud.google.com/go/monitoring v1.21.0 // indirect
-	cloud.google.com/go/trace v1.11.0 // indirect
+	cloud.google.com/go/monitoring v1.21.1 // indirect
+	cloud.google.com/go/trace v1.11.1 // indirect
 	git.sr.ht/~sbinet/gg v0.5.0 // indirect
 	github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
 	github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.1 // indirect
@@ -228,20 +228,20 @@ require (
 	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
 	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect
-	go.opentelemetry.io/otel/metric v1.30.0 // indirect
+	go.opentelemetry.io/otel/metric v1.31.0 // indirect
 	go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect
 	go.uber.org/multierr v1.11.0 // indirect
 	go.uber.org/zap v1.27.0 // indirect
 	golang.org/x/image v0.11.0 // indirect
-	golang.org/x/net v0.29.0 // indirect
-	golang.org/x/time v0.6.0 // indirect
+	golang.org/x/net v0.30.0 // indirect
+	golang.org/x/time v0.7.0 // indirect
 	golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
-	google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
-	google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
-	google.golang.org/grpc v1.67.0 // indirect
+	google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect
+	google.golang.org/grpc v1.67.1 // indirect
 	google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a // indirect
-	google.golang.org/protobuf v1.34.2 // indirect
+	google.golang.org/protobuf v1.35.1 // indirect
 	gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
diff --git a/go.sum b/go.sum
index 685385872..d8c2ed04f 100644
--- a/go.sum
+++ b/go.sum
@@ -51,8 +51,8 @@ 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.9.5 h1:4CTn43Eynw40aFVr3GpPqsQponx2jv0BQpjvajsbbzw=
-cloud.google.com/go/auth v0.9.5/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM=
+cloud.google.com/go/auth v0.9.8 h1:+CSJ0Gw9iVeSENVCKJoLHhdUykDgXSc4Qn+gu2BRtR8=
+cloud.google.com/go/auth v0.9.8/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI=
 cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY=
 cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc=
 cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0=
@@ -133,8 +133,8 @@ cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHi
 cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM=
 cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY=
 cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s=
-cloud.google.com/go/monitoring v1.21.0 h1:EMc0tB+d3lUewT2NzKC/hr8cSR9WsUieVywzIHetGro=
-cloud.google.com/go/monitoring v1.21.0/go.mod h1:tuJ+KNDdJbetSsbSGTqnaBvbauS5kr3Q/koy3Up6r+4=
+cloud.google.com/go/monitoring v1.21.1 h1:zWtbIoBMnU5LP9A/fz8LmWMGHpk4skdfeiaa66QdFGc=
+cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c=
 cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA=
 cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o=
 cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ=
@@ -189,8 +189,8 @@ cloud.google.com/go/storage v1.44.0 h1:abBzXf4UJKMmQ04xxJf9dYM/fNl24KHoTuBjyJDX2
 cloud.google.com/go/storage v1.44.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE=
 cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw=
 cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g=
-cloud.google.com/go/trace v1.11.0 h1:UHX6cOJm45Zw/KIbqHe4kII8PupLt/V5tscZUkeiJVI=
-cloud.google.com/go/trace v1.11.0/go.mod h1:Aiemdi52635dBR7o3zuc9lLjXo3BwGaChEjCa3tJNmM=
+cloud.google.com/go/trace v1.11.1 h1:UNqdP+HYYtnm6lb91aNA5JQ0X14GnxkABGlfz2PzPew=
+cloud.google.com/go/trace v1.11.1/go.mod h1:IQKNQuBzH72EGaXEodKlNJrWykGZxet2zgjtS60OtjA=
 cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU=
 cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4=
 cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0=
@@ -871,8 +871,8 @@ github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYV
 github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo=
 github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8=
 github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
-github.com/google/go-github/v65 v65.0.0 h1:pQ7BmO3DZivvFk92geC0jB0q2m3gyn8vnYPgV7GSLhQ=
-github.com/google/go-github/v65 v65.0.0/go.mod h1:DvrqWo5hvsdhJvHd4WyVF9ttANN3BniqjP8uTFMNb60=
+github.com/google/go-github/v66 v66.0.0 h1:ADJsaXj9UotwdgK8/iFZtv7MLc8E8WBl62WLd/D/9+M=
+github.com/google/go-github/v66 v66.0.0/go.mod h1:+4SO9Zkuyf8ytMj0csN1NR/5OTR+MfqPp8P8dVlcvY4=
 github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
 github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
 github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
@@ -1336,8 +1336,8 @@ github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rm
 github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
 github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
 github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc=
-github.com/opencontainers/runc v1.1.14 h1:rgSuzbmgz5DUJjeSnw337TxDbRuqjs6iqQck/2weR6w=
-github.com/opencontainers/runc v1.1.14/go.mod h1:E4C2z+7BxR7GHXp0hAY53mek+x49X1LjPNeMTfRGvOA=
+github.com/opencontainers/runc v1.1.15 h1:QMmSU2q1YUg3iOJX11phnaDi2A5/zhx4BR6h+XZ1DMA=
+github.com/opencontainers/runc v1.1.15/go.mod h1:E4C2z+7BxR7GHXp0hAY53mek+x49X1LjPNeMTfRGvOA=
 github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
@@ -1666,8 +1666,8 @@ go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzox
 go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
 go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ=
 go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ=
-go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts=
-go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc=
+go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
+go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
 go.opentelemetry.io/otel/exporters/otlp v0.20.0 h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg=
 go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
 go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4=
@@ -1684,14 +1684,14 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCy
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY=
 go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
 go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw=
-go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w=
-go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ=
+go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
+go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
 go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
 go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
 go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
 go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E=
-go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE=
-go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg=
+go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
+go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
 go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
 go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
 go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY=
@@ -1700,8 +1700,8 @@ go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16g
 go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
 go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE=
 go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0=
-go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc=
-go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o=
+go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
+go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
 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=
@@ -1883,8 +1883,8 @@ golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfS
 golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
-golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
+golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
+golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -2112,8 +2112,8 @@ golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxb
 golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
-golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
+golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -2254,8 +2254,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.199.0 h1:aWUXClp+VFJmqE0JPvpZOK3LDQMyFKYIow4etYd9qxs=
-google.golang.org/api v0.199.0/go.mod h1:ohG4qSztDJmZdjK/Ar6MhbAmb/Rpi4JHOqagsh90K28=
+google.golang.org/api v0.200.0 h1:0ytfNWn101is6e9VBoct2wrGDjOi5vn7jw5KtaQgDrU=
+google.golang.org/api v0.200.0/go.mod h1:Tc5u9kcbjO7A8SwGlYj4IiVifJU01UqXtEgDMYmBmV8=
 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=
@@ -2371,12 +2371,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-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU=
-google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 h1:nFS3IivktIU5Mk6KQa+v6RKkHUpdQpphqGNLxqNnbEk=
+google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:tEzYTYZxbmVNOu0OAFH9HzdJtLn6h4Aj89zzlBCdHms=
+google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f h1:jTm13A2itBi3La6yTGqn8bVSrc3ZZ1r8ENHlIXBfnRA=
+google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f/go.mod h1:CLGoBuH1VHxAUXVPP8FfPwPEVJB6lz3URE5mY2SuayE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
 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=
@@ -2418,8 +2418,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu
 google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
 google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
 google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
-google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw=
-google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
+google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
+google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
 google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a h1:UIpYSuWdWHSzjwcAFRLjKcPXFZVVLXGEM23W+NWqipw=
 google.golang.org/grpc/stats/opentelemetry v0.0.0-20240907200651-3ffb98b2c93a/go.mod h1:9i1T9n4ZinTUZGgzENMi8MDDgbGC5mqTS75JAv6xN3A=
@@ -2438,8 +2438,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
 google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
-google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
+google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
+google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -2578,8 +2578,8 @@ k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
 k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
 k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-libvirt.org/go/libvirt v1.10006.0 h1:VzbLKReneWBIiplgOvZHxMiLLJ0HxAyp4MMPcYTHJjY=
-libvirt.org/go/libvirt v1.10006.0/go.mod h1:1WiFE8EjZfq+FCVog+rvr1yatKbKZ9FaFMZgEqxEJqQ=
+libvirt.org/go/libvirt v1.10008.0 h1:j+hybvOmBQFC2BiivOVCPE3ozpQWtxWXp9p1cGk0x1Y=
+libvirt.org/go/libvirt v1.10008.0/go.mod h1:1WiFE8EjZfq+FCVog+rvr1yatKbKZ9FaFMZgEqxEJqQ=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
diff --git a/hack/jenkins/installers/check_install_golang.ps1 b/hack/jenkins/installers/check_install_golang.ps1
index 78a2a74d7..1e1dabffa 100644
--- a/hack/jenkins/installers/check_install_golang.ps1
+++ b/hack/jenkins/installers/check_install_golang.ps1
@@ -31,7 +31,7 @@ AddToPathIfMissing -pathToAdd "C:\Program Files\Go\bin" -scope "Machine"
 AddToPathIfMissing -pathToAdd "$HOME\go\bin" -scope "User"
 
 # Download Go
-$GoVersion = "1.23.0"
+$GoVersion = "1.23.1"
 $CurrentGo = go version
 if ((!$?) -or ($CurrentGo -NotLike "*$GoVersion*")) {
     (New-Object Net.WebClient).DownloadFile("https://go.dev/dl/go$GoVersion.windows-amd64.zip", "$env:TEMP\golang.zip")
diff --git a/hack/jenkins/installers/check_install_golang.sh b/hack/jenkins/installers/check_install_golang.sh
index 62593928a..b331a504a 100755
--- a/hack/jenkins/installers/check_install_golang.sh
+++ b/hack/jenkins/installers/check_install_golang.sh
@@ -22,7 +22,7 @@ if (($# < 1)); then
   exit 1
 fi
 
-VERSION_TO_INSTALL=1.23.0
+VERSION_TO_INSTALL=1.23.1
 INSTALL_PATH=${1}
 
 function current_arch() {
diff --git a/hack/kicbase_version/os-package-list.txt b/hack/kicbase_version/os-package-list.txt
index b528c69e6..cf277b641 100644
--- a/hack/kicbase_version/os-package-list.txt
+++ b/hack/kicbase_version/os-package-list.txt
@@ -231,7 +231,7 @@ ii  ucf                             3.0043                                  all
 ii  udev                            249.11-0ubuntu3.12                      amd64        /dev/ and hotplug management daemon
 ii  usrmerge                        25ubuntu2                               all          Convert the system to the merged /usr directories scheme
 ii  util-linux                      2.37.2-4ubuntu3.4                       amd64        miscellaneous system utilities
-ii  vim-common                      2:8.2.3995-1ubuntu2.18                  all          Vi IMproved - Common files
-ii  vim-tiny                        2:8.2.3995-1ubuntu2.18                  amd64        Vi IMproved - enhanced vi editor - compact version
-ii  xxd                             2:8.2.3995-1ubuntu2.18                  amd64        tool to make (or reverse) a hex dump
+ii  vim-common                      2:8.2.3995-1ubuntu2.19                  all          Vi IMproved - Common files
+ii  vim-tiny                        2:8.2.3995-1ubuntu2.19                  amd64        Vi IMproved - enhanced vi editor - compact version
+ii  xxd                             2:8.2.3995-1ubuntu2.19                  amd64        tool to make (or reverse) a hex dump
 ii  zlib1g:amd64                    1:1.2.11.dfsg-2ubuntu9.2                amd64        compression library - runtime
diff --git a/hack/preload-images/kubernetes.go b/hack/preload-images/kubernetes.go
index 1f71d82f8..bc9be6730 100644
--- a/hack/preload-images/kubernetes.go
+++ b/hack/preload-images/kubernetes.go
@@ -20,7 +20,7 @@ import (
 	"context"
 	"strings"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 
 	"k8s.io/klog/v2"
 )
diff --git a/hack/update/amd_device_plugin_version/update_amd_device_plugin_version.go b/hack/update/amd_device_plugin_version/update_amd_device_plugin_version.go
new file mode 100644
index 000000000..ea90ee2eb
--- /dev/null
+++ b/hack/update/amd_device_plugin_version/update_amd_device_plugin_version.go
@@ -0,0 +1,57 @@
+/*
+Copyright 2024 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"
+	"fmt"
+	"time"
+
+	"k8s.io/klog/v2"
+	"k8s.io/minikube/hack/update"
+)
+
+var schema = map[string]update.Item{
+	"pkg/minikube/assets/addons.go": {
+		Replace: map[string]string{
+			`rocm/k8s-device-plugin:.*`: `rocm/k8s-device-plugin:{{.Version}}@{{.SHA}}",`,
+		},
+	},
+}
+
+type Data struct {
+	Version string
+	SHA     string
+}
+
+func main() {
+	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
+	defer cancel()
+
+	stable, _, _, err := update.GHReleases(ctx, "ROCm", "k8s-device-plugin")
+	if err != nil {
+		klog.Fatalf("Unable to get stable version: %v", err)
+	}
+	sha, err := update.GetImageSHA(fmt.Sprintf("rocm/k8s-device-plugin:%s", stable.Tag))
+	if err != nil {
+		klog.Fatalf("failed to get image SHA: %v", err)
+	}
+
+	data := Data{Version: stable.Tag, SHA: sha}
+
+	update.Apply(schema, data)
+}
diff --git a/hack/update/get_version/get_version.go b/hack/update/get_version/get_version.go
index 7d52a7731..383feae30 100644
--- a/hack/update/get_version/get_version.go
+++ b/hack/update/get_version/get_version.go
@@ -33,6 +33,7 @@ type dependency struct {
 }
 
 var dependencies = map[string]dependency{
+	"amd-gpu-device-plugin":   {addonsFile, `rocm/k8s-device-plugin:(.*)@`},
 	"buildkit":                {"deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.mk", `BUILDKIT_BIN_VERSION = (.*)`},
 	"calico":                  {"pkg/minikube/bootstrapper/images/images.go", `calicoVersion = "(.*)"`},
 	"cilium":                  {"pkg/minikube/cni/cilium.yaml", `quay.io/cilium/cilium:(.*)@`},
@@ -60,9 +61,9 @@ var dependencies = map[string]dependency{
 	"istio-operator":          {addonsFile, `istio/operator:(.*)@`},
 	"kindnetd":                {"pkg/minikube/bootstrapper/images/images.go", `kindnetd:(.*)"`},
 	"kong":                    {addonsFile, `kong:(.*)@`},
-	"kube-vip":                {"pkg/minikube/cluster/ha/kube-vip/kube-vip.go", `image: ghcr.io/kube-vip/kube-vip:(.*)`},
-	"volcano":                 {addonsFile, `volcanosh/vc-webhook-manager:(.*)@`},
 	"kong-ingress-controller": {addonsFile, `kong/kubernetes-ingress-controller:(.*)@`},
+	"kube-registry-proxy":     {addonsFile, `"k8s-minikube/kube-registry-proxy:(.*)@`},
+	"kube-vip":                {"pkg/minikube/cluster/ha/kube-vip/kube-vip.go", `image: ghcr.io/kube-vip/kube-vip:(.*)`},
 	"kubectl":                 {addonsFile, `bitnami/kubectl:(.*)@`},
 	"metrics-server":          {addonsFile, `metrics-server/metrics-server:(.*)@`},
 	"nerdctl":                 {"deploy/kicbase/Dockerfile", `NERDCTL_VERSION="(.*)"`},
@@ -72,6 +73,7 @@ var dependencies = map[string]dependency{
 	"registry":                {addonsFile, `registry:(.*)@`},
 	"runc":                    {"deploy/iso/minikube-iso/package/runc-master/runc-master.mk", `RUNC_MASTER_VERSION = (.*)`},
 	"ubuntu":                  {dockerfile, `ubuntu:jammy-(.*)"`},
+	"volcano":                 {addonsFile, `volcanosh/vc-webhook-manager:(.*)@`},
 	"yakd":                    {addonsFile, `marcnuri/yakd:(.*)@`},
 }
 
diff --git a/hack/update/github.go b/hack/update/github.go
index f1f350bb5..2043ccbf6 100644
--- a/hack/update/github.go
+++ b/hack/update/github.go
@@ -23,7 +23,7 @@ import (
 
 	"golang.org/x/mod/semver"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 )
 
 const (
diff --git a/hack/update/ingress_version/update_ingress_version.go b/hack/update/ingress_version/update_ingress_version.go
index b1cee5ec9..2ce449877 100644
--- a/hack/update/ingress_version/update_ingress_version.go
+++ b/hack/update/ingress_version/update_ingress_version.go
@@ -25,7 +25,7 @@ import (
 	"strings"
 	"time"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"golang.org/x/mod/semver"
 	"k8s.io/klog/v2"
 
diff --git a/hack/update/inspektor_gadget_version/update_inspektor_gadget_version.go b/hack/update/inspektor_gadget_version/update_inspektor_gadget_version.go
index fc56c413c..4512ece94 100644
--- a/hack/update/inspektor_gadget_version/update_inspektor_gadget_version.go
+++ b/hack/update/inspektor_gadget_version/update_inspektor_gadget_version.go
@@ -19,6 +19,10 @@ package main
 import (
 	"context"
 	"fmt"
+	"io"
+	"net/http"
+	"os"
+	"regexp"
 	"time"
 
 	"k8s.io/klog/v2"
@@ -58,4 +62,42 @@ func main() {
 	klog.Infof("inspektor-gadget stable version: %s", data.Version)
 
 	update.Apply(schema, data)
+	updateDeploymentYAML(stable)
+	updateCRDYAML(stable)
+}
+
+func updateDeploymentYAML(version string) {
+	res, err := http.Get(fmt.Sprintf("https://raw.githubusercontent.com/inspektor-gadget/inspektor-gadget/refs/tags/%s/pkg/resources/manifests/deploy.yaml", version))
+	if err != nil {
+		klog.Fatalf("failed to get yaml file: %v", err)
+	}
+	defer res.Body.Close()
+	yaml, err := io.ReadAll(res.Body)
+	if err != nil {
+		klog.Fatalf("failed to read body: %v", err)
+	}
+	replacements := map[string]string{
+		`ghcr\.io\/inspektor-gadget\/inspektor-gadget:.*`: "{{.CustomRegistries.InspektorGadget  | default .ImageRepository | default .Registries.InspektorGadget }}{{.Images.InspektorGadget}}",
+	}
+	for re, repl := range replacements {
+		yaml = regexp.MustCompile(re).ReplaceAll(yaml, []byte(repl))
+	}
+	if err := os.WriteFile("../../../deploy/addons/inspektor-gadget/ig-deployment.yaml.tmpl", yaml, 0644); err != nil {
+		klog.Fatalf("failed to write to YAML file: %v", err)
+	}
+}
+
+func updateCRDYAML(version string) {
+	res, err := http.Get(fmt.Sprintf("https://raw.githubusercontent.com/inspektor-gadget/inspektor-gadget/refs/tags/%s/pkg/resources/crd/bases/gadget.kinvolk.io_traces.yaml", version))
+	if err != nil {
+		klog.Fatalf("failed to get yaml file: %v", err)
+	}
+	defer res.Body.Close()
+	yaml, err := io.ReadAll(res.Body)
+	if err != nil {
+		klog.Fatalf("failed to read body: %v", err)
+	}
+	if err := os.WriteFile("../../../deploy/addons/inspektor-gadget/ig-crd.yaml", yaml, 0644); err != nil {
+		klog.Fatalf("failed to write to YAML file: %v", err)
+	}
 }
diff --git a/hack/update/kube_registry_proxy_version/update_kube_registry_proxy_version.go b/hack/update/kube_registry_proxy_version/update_kube_registry_proxy_version.go
new file mode 100644
index 000000000..34d98ebbe
--- /dev/null
+++ b/hack/update/kube_registry_proxy_version/update_kube_registry_proxy_version.go
@@ -0,0 +1,60 @@
+/*
+Copyright 2024 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"
+	"fmt"
+	"strings"
+	"time"
+
+	"k8s.io/klog/v2"
+
+	"k8s.io/minikube/hack/update"
+)
+
+var schema = map[string]update.Item{
+	"pkg/minikube/assets/addons.go": {
+		Replace: map[string]string{
+			`k8s-minikube/kube-registry-proxy:.*`: `k8s-minikube/kube-registry-proxy:{{.Version}}@{{.SHA}}",`,
+		},
+	},
+}
+
+type Data struct {
+	Version string
+	SHA     string
+}
+
+func main() {
+	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
+	defer cancel()
+
+	stable, err := update.StableVersion(ctx, "spowelljr", "kube-registry-proxy")
+	if err != nil {
+		klog.Fatalf("Unable to get stable version: %v", err)
+	}
+	stable = strings.TrimPrefix(stable, "v")
+	sha, err := update.GetImageSHA(fmt.Sprintf("gcr.io/k8s-minikube/kube-registry-proxy:%s", stable))
+	if err != nil {
+		klog.Fatalf("failed to get image SHA: %v", err)
+	}
+
+	data := Data{Version: stable, SHA: sha}
+
+	update.Apply(schema, data)
+}
diff --git a/hack/update/kubeadm_constants/update_kubeadm_constants.go b/hack/update/kubeadm_constants/update_kubeadm_constants.go
index e85d0dc26..1dc7067fc 100644
--- a/hack/update/kubeadm_constants/update_kubeadm_constants.go
+++ b/hack/update/kubeadm_constants/update_kubeadm_constants.go
@@ -29,7 +29,7 @@ import (
 	"text/template"
 	"time"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"golang.org/x/mod/semver"
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/hack/update"
diff --git a/hack/update/kubernetes_versions_list/update_kubernetes_versions_list.go b/hack/update/kubernetes_versions_list/update_kubernetes_versions_list.go
index e10826b02..3acc812e0 100644
--- a/hack/update/kubernetes_versions_list/update_kubernetes_versions_list.go
+++ b/hack/update/kubernetes_versions_list/update_kubernetes_versions_list.go
@@ -23,7 +23,7 @@ import (
 	"sort"
 	"time"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"golang.org/x/mod/semver"
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/hack/update"
diff --git a/hack/update/site_node_version/update_site_node_version.go b/hack/update/site_node_version/update_site_node_version.go
index 989299301..59aaa19f0 100644
--- a/hack/update/site_node_version/update_site_node_version.go
+++ b/hack/update/site_node_version/update_site_node_version.go
@@ -22,7 +22,7 @@ import (
 	"strings"
 	"time"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"golang.org/x/mod/semver"
 	"k8s.io/klog/v2"
 	"k8s.io/minikube/hack/update"
diff --git a/netlify.toml b/netlify.toml
index 651214e8c..42ce0171e 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -4,7 +4,7 @@ publish = "site/public/"
 command = "pwd && cd themes/docsy && npm install && git submodule update -f --init && cd ../.. && hugo"
 
 [build.environment]
-NODE_VERSION = "20.17.0"
+NODE_VERSION = "20.18.0"
 HUGO_VERSION = "v0.135.0"
 
 [context.production.environment]
diff --git a/pkg/addons/config.go b/pkg/addons/config.go
index 9bbafc183..63e26f436 100644
--- a/pkg/addons/config.go
+++ b/pkg/addons/config.go
@@ -131,6 +131,11 @@ var Addons = []*Addon{
 		validations: []setFn{isKVMDriverForNVIDIA},
 		callbacks:   []setFn{EnableOrDisableAddon},
 	},
+	{
+		name:      "amd-gpu-device-plugin",
+		set:       SetBool,
+		callbacks: []setFn{EnableOrDisableAddon},
+	},
 	{
 		name:      "olm",
 		set:       SetBool,
diff --git a/pkg/drivers/common.go b/pkg/drivers/common.go
index d7e3d3c44..f17590838 100644
--- a/pkg/drivers/common.go
+++ b/pkg/drivers/common.go
@@ -18,11 +18,12 @@ package drivers
 
 import (
 	"bufio"
+	"bytes"
 	"fmt"
 	"io"
+	"net"
 	"os"
 	"path/filepath"
-	"regexp"
 	"strings"
 	"syscall"
 
@@ -40,8 +41,6 @@ import (
 // LeasesPath is the path to dhcpd leases
 const LeasesPath = "/var/db/dhcpd_leases"
 
-var leadingZeroRegexp = regexp.MustCompile(`0([A-Fa-f0-9](:|$))`)
-
 // This file is for common code shared among internal machine drivers
 // Code here should not be called from within minikube
 
@@ -190,7 +189,7 @@ func fixMachinePermissions(path string) error {
 type DHCPEntry struct {
 	Name      string
 	IPAddress string
-	HWAddress string
+	HWAddress net.HardwareAddr
 	ID        string
 	Lease     string
 }
@@ -201,6 +200,13 @@ func GetIPAddressByMACAddress(mac string) (string, error) {
 }
 
 func getIPAddressFromFile(mac, path string) (string, error) {
+	// Due to https://openradar.appspot.com/FB15382970 we need to parse the MAC
+	// address and compare the bytes.
+	macAddress, err := parseMAC(mac)
+	if err != nil {
+		return "", err
+	}
+
 	log.Debugf("Searching for %s in %s ...", mac, path)
 	file, err := os.Open(path)
 	if err != nil {
@@ -215,7 +221,10 @@ func getIPAddressFromFile(mac, path string) (string, error) {
 	log.Debugf("Found %d entries in %s!", len(dhcpEntries), path)
 	for _, dhcpEntry := range dhcpEntries {
 		log.Debugf("dhcp entry: %+v", dhcpEntry)
-		if dhcpEntry.HWAddress == mac {
+		if dhcpEntry.HWAddress == nil {
+			continue
+		}
+		if bytes.Equal(dhcpEntry.HWAddress, macAddress) {
 			log.Debugf("Found match: %s", mac)
 			return dhcpEntry.IPAddress, nil
 		}
@@ -252,7 +261,13 @@ func parseDHCPdLeasesFile(file io.Reader) ([]DHCPEntry, error) {
 			dhcpEntry.IPAddress = val
 		case "hw_address":
 			// The mac addresses have a '1,' at the start.
-			dhcpEntry.HWAddress = val[2:]
+			macAddress, err := parseMAC(val[2:])
+			if err != nil {
+				log.Warnf("unable to parse hw_address in dhcp leases file: %q: %s",
+					val[2:], err)
+				continue
+			}
+			dhcpEntry.HWAddress = macAddress
 		case "identifier":
 			dhcpEntry.ID = val
 		case "lease":
@@ -264,7 +279,17 @@ func parseDHCPdLeasesFile(file io.Reader) ([]DHCPEntry, error) {
 	return dhcpEntries, scanner.Err()
 }
 
-// TrimMacAddress trimming "0" of the ten's digit
-func TrimMacAddress(rawUUID string) string {
-	return leadingZeroRegexp.ReplaceAllString(rawUUID, "$1")
+// parseMAC parse both standard fixeed size MAC address "%02x:..." and the
+// variable size MAC address on drawin "%x:...".
+func parseMAC(mac string) (net.HardwareAddr, error) {
+	hw := make(net.HardwareAddr, 6)
+	n, err := fmt.Sscanf(mac, "%x:%x:%x:%x:%x:%x",
+		&hw[0], &hw[1], &hw[2], &hw[3], &hw[4], &hw[5])
+	if n != len(hw) {
+		return nil, fmt.Errorf("invalid MAC address: %q", mac)
+	}
+	if err != nil {
+		return nil, fmt.Errorf("unable to parse MAC address: %q: %s", mac, err)
+	}
+	return hw, nil
 }
diff --git a/pkg/drivers/hyperkit/driver.go b/pkg/drivers/hyperkit/driver.go
index 8516655ca..2147f3a03 100644
--- a/pkg/drivers/hyperkit/driver.go
+++ b/pkg/drivers/hyperkit/driver.go
@@ -261,8 +261,6 @@ func (d *Driver) Start() error {
 		return errors.Wrap(err, "getting MAC address from UUID")
 	}
 
-	// Need to strip 0's
-	mac = pkgdrivers.TrimMacAddress(mac)
 	log.Debugf("Generated MAC %s", mac)
 
 	log.Debugf("Starting with cmdline: %s", d.Cmdline)
diff --git a/pkg/drivers/kic/oci/oci.go b/pkg/drivers/kic/oci/oci.go
index 3fcbe63b3..5e761db72 100644
--- a/pkg/drivers/kic/oci/oci.go
+++ b/pkg/drivers/kic/oci/oci.go
@@ -190,8 +190,14 @@ func CreateContainerNode(p CreateParams) error { //nolint to suppress cyclomatic
 		runArgs = append(runArgs, "--network", p.Network)
 		runArgs = append(runArgs, "--ip", p.IP)
 	}
-	if p.GPUs != "" {
+
+	if p.GPUs == "all" || p.GPUs == "nvidia" {
 		runArgs = append(runArgs, "--gpus", "all", "--env", "NVIDIA_DRIVER_CAPABILITIES=all")
+	} else if p.GPUs == "amd" {
+		/* https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/docker.html
+		 * "--security-opt seccomp=unconfined" is also required but included above.
+		 */
+		runArgs = append(runArgs, "--device", "/dev/kfd", "--device", "/dev/dri", "--group-add", "video", "--group-add", "render")
 	}
 
 	memcgSwap := hasMemorySwapCgroup()
diff --git a/pkg/drivers/kic/oci/types.go b/pkg/drivers/kic/oci/types.go
index 3cb6ec483..894679c4e 100644
--- a/pkg/drivers/kic/oci/types.go
+++ b/pkg/drivers/kic/oci/types.go
@@ -61,7 +61,7 @@ type CreateParams struct {
 	OCIBinary     string            // docker or podman
 	Network       string            // network name that the container will attach to
 	IP            string            // static IP to assign the container in the cluster network
-	GPUs          string            // add NVIDIA GPU devices to the container
+	GPUs          string            // add GPU devices to the container
 }
 
 // createOpt is an option for Create
diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go
index 7da6968d4..b581c93b1 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.45-1727731891-master"
+	Version = "v0.0.45-1728382586-19774"
 
 	// SHA of the kic base image
-	baseImageSHA = "d66dfd4a976cf0b4581cac255174cef4031588c4570fa4a795e0b3d42edc9122"
+	baseImageSHA = "5d8c4f6d838467365e214e2194dd0153a763e3f78723b5f2a8e06ef7b47409ec"
 	// The name of the GCR kicbase repository
 	gcrRepo = "gcr.io/k8s-minikube/kicbase-builds"
 	// The name of the Dockerhub kicbase repository
@@ -69,5 +69,5 @@ type Config struct {
 	StaticIP          string            // static IP for the kic cluster
 	ExtraArgs         []string          // a list of any extra option to pass to oci binary during creation time, for example --expose 8080...
 	ListenAddress     string            // IP Address to listen to
-	GPUs              string            // add NVIDIA GPU devices to the container
+	GPUs              string            // add GPU devices to the container
 }
diff --git a/pkg/drivers/qemu/qemu.go b/pkg/drivers/qemu/qemu.go
index 018974d07..5ccc8659d 100644
--- a/pkg/drivers/qemu/qemu.go
+++ b/pkg/drivers/qemu/qemu.go
@@ -505,10 +505,7 @@ func (d *Driver) Start() error {
 	case "socket_vmnet":
 		var err error
 		getIP := func() error {
-			// QEMU requires MAC address with leading 0s
-			// But socket_vmnet writes the MAC address to the dhcp leases file with leading 0s stripped
-			mac := pkgdrivers.TrimMacAddress(d.MACAddress)
-			d.IPAddress, err = pkgdrivers.GetIPAddressByMACAddress(mac)
+			d.IPAddress, err = pkgdrivers.GetIPAddressByMACAddress(d.MACAddress)
 			if err != nil {
 				return errors.Wrap(err, "failed to get IP address")
 			}
diff --git a/pkg/drivers/vfkit/vfkit.go b/pkg/drivers/vfkit/vfkit.go
index 7f3bfd36e..cee4727a7 100644
--- a/pkg/drivers/vfkit/vfkit.go
+++ b/pkg/drivers/vfkit/vfkit.go
@@ -265,8 +265,6 @@ func (d *Driver) Start() error {
 		return err
 	}
 
-	// Need to strip 0's
-	mac = pkgdrivers.TrimMacAddress(mac)
 	if err := d.setupIP(mac); err != nil {
 		return err
 	}
diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go
index 60cca7262..586b5a87e 100644
--- a/pkg/minikube/assets/addons.go
+++ b/pkg/minikube/assets/addons.go
@@ -277,11 +277,11 @@ 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.11.2@sha256:d5f8217feeac4887cb1ed21f27c2674e58be06bd8f5184cacea2a69abaf78dce",
+		"IngressController": "ingress-nginx/controller:v1.11.3@sha256:d56f135b6462cfc476447cfe564b83a45e8bb7da2774963b00d12161112270b7",
 		// https://github.com/kubernetes/ingress-nginx/blob/3476232f5c38383dd157ddaff3b4c7cebd57284e/deploy/static/provider/kind/deploy.yaml#L552
-		"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3",
+		"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v1.4.4@sha256:a9f03b34a3cbfbb26d103a14046ab2c5130a80c3d69d526ff8063d2b37b9fd3f",
 		// https://github.com/kubernetes/ingress-nginx/blob/3476232f5c38383dd157ddaff3b4c7cebd57284e/deploy/static/provider/kind/deploy.yaml#L601
-		"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3",
+		"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v1.4.4@sha256:a9f03b34a3cbfbb26d103a14046ab2c5130a80c3d69d526ff8063d2b37b9fd3f",
 	}, map[string]string{
 		"IngressController":        "registry.k8s.io",
 		"KubeWebhookCertgenCreate": "registry.k8s.io",
@@ -306,18 +306,11 @@ var Addons = map[string]*Addon{
 			"0640"),
 	}, false, "istio", "3rd party (Istio)", "", "https://istio.io/latest/docs/setup/platform-setup/minikube/", nil, nil),
 	"inspektor-gadget": NewAddon([]*BinAsset{
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-namespace.yaml", vmpath.GuestAddonsDir, "ig-namespace.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-serviceaccount.yaml", vmpath.GuestAddonsDir, "ig-serviceaccount.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-role.yaml", vmpath.GuestAddonsDir, "ig-role.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-rolebinding.yaml", vmpath.GuestAddonsDir, "ig-rolebinding.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-clusterrole.yaml", vmpath.GuestAddonsDir, "ig-clusterrole.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-clusterrolebinding.yaml", vmpath.GuestAddonsDir, "ig-clusterrolebinding.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-configmap.yaml", vmpath.GuestAddonsDir, "ig-configmap.yaml", "0640"),
 		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-crd.yaml", vmpath.GuestAddonsDir, "ig-crd.yaml", "0640"),
-		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-daemonset.yaml.tmpl", vmpath.GuestAddonsDir, "ig-daemonset.yaml", "0640"),
+		MustBinAsset(addons.InspektorGadgetAssets, "inspektor-gadget/ig-deployment.yaml.tmpl", vmpath.GuestAddonsDir, "ig-deployment.yaml", "0640"),
 	}, false, "inspektor-gadget", "3rd party (inspektor-gadget.io)", "https://github.com/orgs/inspektor-gadget/people", "https://minikube.sigs.k8s.io/docs/handbook/addons/inspektor-gadget/",
 		map[string]string{
-			"InspektorGadget": "inspektor-gadget/inspektor-gadget:v0.32.0@sha256:03e677e1cf9d2c9bea454e3dbcbcef20b3022e987534a2874eb1abc5bc3e73ec",
+			"InspektorGadget": "inspektor-gadget/inspektor-gadget:v0.33.0@sha256:66a9ee9ff75b254d99ec9521af92c2aee19a0faf7bb4a5d7b89787c3817c671c",
 		}, map[string]string{
 			"InspektorGadget": "ghcr.io",
 		}),
@@ -341,7 +334,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.31.1@sha256:da4a9868e20d941636087cb8624a4bb441f5249d69e8f3d27e53c7d4d280a5f3",
+		"Kubectl": "bitnami/kubectl:1.31.1@sha256:b509ab6000477ebe788df3509a8c4177e91238ee3003f33edea0931be3794340",
 	}, map[string]string{
 		"Kubectl": "docker.io",
 	}),
@@ -407,7 +400,7 @@ var Addons = map[string]*Addon{
 			"registry-proxy.yaml",
 			"0640"),
 	}, false, "registry", "minikube", "", "", map[string]string{
-		"KubeRegistryProxy": "k8s-minikube/kube-registry-proxy:0.0.7@sha256:9fd683b2e47c5fded3410c69f414f05cdee737597569f52854347f889b118982",
+		"KubeRegistryProxy": "k8s-minikube/kube-registry-proxy:0.0.8@sha256:60ab3508367ad093b4b891231572577371a29f838d61e64d7f7d093d961c862c",
 		"Registry":          "registry:2.8.3@sha256:ac0192b549007e22998eb74e8d8488dcfe70f1489520c3b144a6047ac5efbe90",
 	}, map[string]string{
 		"KubeRegistryProxy": "gcr.io",
@@ -494,6 +487,17 @@ var Addons = map[string]*Addon{
 	}, map[string]string{
 		"NvidiaDevicePlugin": "registry.k8s.io",
 	}),
+	"amd-gpu-device-plugin": NewAddon([]*BinAsset{
+		MustBinAsset(addons.AmdGpuDevicePluginAssets,
+			"gpu/amd-gpu-device-plugin.yaml.tmpl",
+			vmpath.GuestAddonsDir,
+			"amd-gpu-device-plugin.yaml",
+			"0640"),
+	}, false, "amd-gpu-device-plugin", "3rd party (AMD)", "", "https://minikube.sigs.k8s.io/docs/tutorials/amd/", map[string]string{
+		"AmdDevicePlugin": "rocm/k8s-device-plugin:1.25.2.8@sha256:f3835498cf2274e0a07c32b38c166c05a876f8eb776d756cc06805e599a3ba5f",
+	}, map[string]string{
+		"AmdDevicePlugin": "docker.io",
+	}),
 	"logviewer": NewAddon([]*BinAsset{
 		MustBinAsset(addons.LogviewerAssets,
 			"logviewer/logviewer-dp-and-svc.yaml.tmpl",
@@ -522,7 +526,7 @@ var Addons = map[string]*Addon{
 			"gvisor-runtimeclass.yaml",
 			"0640"),
 	}, false, "gvisor", "minikube", "", "https://minikube.sigs.k8s.io/docs/handbook/addons/gvisor/", map[string]string{
-		"GvisorAddon": "k8s-minikube/gvisor-addon:v0.0.1@sha256:d29adbddc7a44dab4c675c0eaea398907fe1f33f5f723274b0d40195b3076cae",
+		"GvisorAddon": "k8s-minikube/gvisor-addon:v0.0.2@sha256:511bf52bdec6be2b846f98e92addf70c544044f96e35085f85ae9bdcd4df2da2",
 	}, map[string]string{
 		"GvisorAddon": "gcr.io",
 	}),
@@ -593,8 +597,8 @@ var Addons = map[string]*Addon{
 			"gcp-auth-webhook.yaml",
 			"0640"),
 	}, false, "gcp-auth", "Google", "", "https://minikube.sigs.k8s.io/docs/handbook/addons/gcp-auth/", map[string]string{
-		"KubeWebhookCertgen": "ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3",
-		"GCPAuthWebhook":     "k8s-minikube/gcp-auth-webhook:v0.1.2@sha256:e6c5b3bc32072ea370d34c27836efd11b3519d25bd444c2a8efc339cff0e20fb",
+		"KubeWebhookCertgen": "ingress-nginx/kube-webhook-certgen:v1.4.4@sha256:a9f03b34a3cbfbb26d103a14046ab2c5130a80c3d69d526ff8063d2b37b9fd3f",
+		"GCPAuthWebhook":     "k8s-minikube/gcp-auth-webhook:v0.1.3@sha256:94f0c448171b974aab7b4a96d00feb5799b1d69827a738a4f8b4b30c17fb74e7",
 	}, map[string]string{
 		"GCPAuthWebhook":     "gcr.io",
 		"KubeWebhookCertgen": "registry.k8s.io",
diff --git a/pkg/minikube/bootstrapper/images/images.go b/pkg/minikube/bootstrapper/images/images.go
index 209bfd1b8..59aa00f90 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:v20240813-c6f155d6")
+	return path.Join(repo, "kindnetd:v20241007-36f62932")
 }
 
 // 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 2f4c95638..a8387ee15 100644
--- a/pkg/minikube/cni/flannel.yaml
+++ b/pkg/minikube/cni/flannel.yaml
@@ -144,7 +144,7 @@ spec:
         - name: cni-plugin
           mountPath: /opt/cni/bin
       - name: install-cni
-        image: docker.io/flannel/flannel:v0.25.6
+        image: docker.io/flannel/flannel:v0.25.7
         command:
         - cp
         args:
@@ -158,7 +158,7 @@ spec:
           mountPath: /etc/kube-flannel/
       containers:
       - name: kube-flannel
-        image: docker.io/flannel/flannel:v0.25.6
+        image: docker.io/flannel/flannel:v0.25.7
         command:
         - /opt/bin/flanneld
         args:
diff --git a/pkg/minikube/constants/constants_kubeadm_images.go b/pkg/minikube/constants/constants_kubeadm_images.go
index fcb770369..eb3d784c3 100644
--- a/pkg/minikube/constants/constants_kubeadm_images.go
+++ b/pkg/minikube/constants/constants_kubeadm_images.go
@@ -18,6 +18,11 @@ package constants
 
 var (
 	KubeadmImages = map[string]map[string]string{
+		"v1.32.0-alpha.1": {
+			"coredns/coredns": "v1.11.3",
+			"etcd":            "3.5.16-0",
+			"pause":           "3.10",
+		},
 		"v1.30.5": {
 			"coredns/coredns": "v1.11.3",
 			"etcd":            "3.5.15-0",
diff --git a/pkg/minikube/constants/constants_kubernetes_versions.go b/pkg/minikube/constants/constants_kubernetes_versions.go
index ad9dcb616..407c2ea11 100644
--- a/pkg/minikube/constants/constants_kubernetes_versions.go
+++ b/pkg/minikube/constants/constants_kubernetes_versions.go
@@ -21,6 +21,7 @@ package constants
 // ValidKubernetesVersions is a list of Kubernetes versions in order from newest to oldest
 // This is used when outputting Kubernetes versions and to select the latest patch version when unspecified
 var ValidKubernetesVersions = []string{
+	"v1.32.0-alpha.1",
 	"v1.31.1",
 	"v1.31.0",
 	"v1.31.0-rc.1",
diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go
index d96e230a2..8b06f042d 100644
--- a/pkg/minikube/cruntime/cruntime.go
+++ b/pkg/minikube/cruntime/cruntime.go
@@ -156,7 +156,7 @@ type Config struct {
 	// InsecureRegistry list of insecure registries
 	InsecureRegistry []string
 	// GPUs add GPU devices to the container
-	GPUs bool
+	GPUs string
 }
 
 // ListContainersOptions are the options to use for listing containers
diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go
index 4c27c11dc..2a4dd310d 100644
--- a/pkg/minikube/cruntime/docker.go
+++ b/pkg/minikube/cruntime/docker.go
@@ -75,7 +75,7 @@ type Docker struct {
 	Init              sysinit.Manager
 	UseCRI            bool
 	CRIService        string
-	GPUs              bool
+	GPUs              string
 }
 
 // Name is a human readable name for Docker
@@ -580,13 +580,17 @@ func (r *Docker) configureDocker(driver string) error {
 		},
 		StorageDriver: "overlay2",
 	}
-	if r.GPUs {
+
+	if r.GPUs == "all" || r.GPUs == "nvidia" {
 		assets.Addons["nvidia-device-plugin"].EnableByDefault()
 		daemonConfig.DefaultRuntime = "nvidia"
 		runtimes := &dockerDaemonRuntimes{}
 		runtimes.Nvidia.Path = "/usr/bin/nvidia-container-runtime"
 		daemonConfig.Runtimes = runtimes
+	} else if r.GPUs == "amd" {
+		assets.Addons["amd-gpu-device-plugin"].EnableByDefault()
 	}
+
 	daemonConfigBytes, err := json.Marshal(daemonConfig)
 	if err != nil {
 		return err
diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go
index ec2577064..bef15b0b1 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/19696"
+	isoBucket := "minikube-builds/iso/19774"
 
 	return []string{
 		fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH),
diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go
index ccf6e830e..75de4f1c3 100755
--- a/pkg/minikube/node/start.go
+++ b/pkg/minikube/node/start.go
@@ -419,7 +419,7 @@ func configureRuntimes(runner cruntime.CommandRunner, cc config.ClusterConfig, k
 		InsecureRegistry:  cc.InsecureRegistry,
 	}
 	if cc.GPUs != "" {
-		co.GPUs = true
+		co.GPUs = cc.GPUs
 	}
 	cr, err := cruntime.New(co)
 	if err != nil {
diff --git a/pkg/perf/monitor/github.go b/pkg/perf/monitor/github.go
index e673c908b..6102b0762 100644
--- a/pkg/perf/monitor/github.go
+++ b/pkg/perf/monitor/github.go
@@ -22,7 +22,7 @@ import (
 	"os"
 	"time"
 
-	"github.com/google/go-github/v65/github"
+	"github.com/google/go-github/v66/github"
 	"github.com/pkg/errors"
 	"golang.org/x/oauth2"
 )
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index 533f49917..06308e92e 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.45-1727731891-master@sha256:d66dfd4a976cf0b4581cac255174cef4031588c4570fa4a795e0b3d42edc9122")
+      --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.45-1728382586-19774@sha256:5d8c4f6d838467365e214e2194dd0153a763e3f78723b5f2a8e06ef7b47409ec")
       --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)
@@ -57,7 +57,7 @@ minikube start [flags]
       --feature-gates string              A set of key=value pairs that describe feature gates for alpha/experimental features.
       --force                             Force minikube to perform possibly dangerous operations
       --force-systemd                     If set, force the container runtime to use systemd as cgroup manager. Defaults to false.
-  -g, --gpus string                       Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)
+  -g, --gpus string                       Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)
       --ha                                Create Highly Available Multi-Control Plane Cluster with a minimum of three control-plane nodes that will also be marked for work.
       --host-dns-resolver                 Enable host resolver for NAT DNS requests (virtualbox driver only) (default true)
       --host-only-cidr string             The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.59.1/24")
diff --git a/site/content/en/docs/tutorials/amd.md b/site/content/en/docs/tutorials/amd.md
new file mode 100644
index 000000000..8760e6762
--- /dev/null
+++ b/site/content/en/docs/tutorials/amd.md
@@ -0,0 +1,114 @@
+---
+title: "Using AMD GPUs with minikube"
+linkTitle: "Using AMD GPUs with minikube"
+weight: 1
+date: 2024-10-04
+---
+
+This tutorial shows how to start minikube with support for AMD GPUs.
+
+Support is provided by the [AMD GPU device plugin for Kubernetes](https://github.com/ROCm/k8s-device-plugin).
+
+
+## Prerequisites
+
+- Linux
+- Latest AMD GPU Drivers 6.2.1 or greater
+- minikube v1.35.0 or later (docker driver only)
+
+## Using the docker driver
+
+- Ensure you have an AMD driver installed, you can check if one is installed by running `rocminfo`, if one is not installed follow the [Radeon™ Driver Installation Guide](https://amdgpu-install.readthedocs.io/en/latest/)
+
+- Delete existing minikube (optional)
+
+  If you have an existing minikube instance, you may need to delete it if it was built before installing the AMD drivers.
+  ```shell
+  minikube delete
+  ```
+  
+- Start minikube:
+  ```shell
+  minikube start --driver docker --container-runtime docker --gpus amd
+  ```
+
+## Verifying the GPU is available
+
+Test the AMD GPUs are available to the cluster.
+
+1. Create the following Job:
+
+    ```shell
+    cat <<'EOF' | kubectl apply -f -
+    apiVersion: batch/v1
+    kind: Job
+    metadata:
+      name: amd-gpu-check
+      labels:
+        purpose: amd-gpu-check
+    spec:
+      ttlSecondsAfterFinished: 100
+      template:
+        spec:
+          restartPolicy: Never
+          securityContext:
+            supplementalGroups: 
+            - 44
+            - 110
+          containers:
+            - name: amd-gpu-checker
+              image: rocm/rocm-terminal
+              workingDir: /root
+              command: ["rocminfo"]
+              args: []
+              resources:
+                limits:
+                  amd.com/gpu: 1 # requesting a GPU
+    EOF
+    ```
+
+2. Check the Job output `kubectl logs jobs/amd-gpu-check` looks something like the following:
+
+    ```plain
+    ROCk module version 6.8.5 is loaded
+    =====================    
+    HSA System Attributes    
+    =====================    
+    Runtime Version:         1.14
+    Runtime Ext Version:     1.6
+    System Timestamp Freq.:  1000.000000MHz
+    Sig. Max Wait Duration:  18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
+    Machine Model:           LARGE                              
+    System Endianness:       LITTLE                             
+    Mwaitx:                  DISABLED
+    DMAbuf Support:          YES
+
+    ==========               
+    HSA Agents               
+    ==========               
+    *******                  
+    Agent 1                  
+    *******                  
+      Name:                    AMD Ryzen 7 7840U w/ Radeon  780M Graphics
+      Uuid:                    CPU-XX                             
+    ...
+    ```
+
+## Where can I learn more about GPU passthrough?
+
+See the excellent documentation at
+<https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF>
+
+## Why does minikube not support AMD GPUs on Windows?
+
+minikube supports Windows host through Hyper-V or VirtualBox.
+
+- VirtualBox doesn't support PCI passthrough for [Windows
+  host](https://www.virtualbox.org/manual/ch09.html#pcipassthrough).
+
+- Hyper-V supports DDA (discrete device assignment) but [only for Windows Server
+  2016](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/plan/plan-for-deploying-devices-using-discrete-device-assignment)
+
+Since the only possibility of supporting GPUs on minikube on Windows is on a
+server OS where users don't usually run minikube, we haven't invested time in
+trying to support GPUs on minikube on Windows.
diff --git a/translations/de.json b/translations/de.json
index 1d5c00a83..05feaaa32 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -65,7 +65,8 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "Nachdem das Addon aktiviert wurde, führen Sie bitte \"minikube tunnel\" aus, dann sind ihre Resourcen über \"127.0.0.1\" erreichbar",
 	"Aliases": "Aliase",
 	"All existing scheduled stops cancelled": "Alle derzeit existierenden und geplanten Stops wurden storniert.",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "Erlaube PODs auf die NVIDIA Grafikkarten zuzugreifen. Mögliche Optionen: [all,nvidia] (nur für Docker Treiber mit Docker Container Runtime)",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "Erlaube PODs auf die Grafikkarten zuzugreifen. Mögliche Optionen: [all,nvidia,amd] (nur für Docker Treiber mit Docker Container Runtime)",
 	"Allow user prompts for more information": "Benutzer-Eingabeaufforderungen für zusätzliche Informationen zulassen",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Alternatives Bild-Repository zum Abrufen von Docker-Images. Dies ist hilfreich, wenn Sie nur eingeschränkten Zugriff auf gcr.io haben. Stellen Sie \"auto\" ein, dann wählt minikube eins für sie aus. Nutzer vom chinesischen Festland können einen lokalen gcr.io-Mirror wie registry.cn-hangzhou.aliyuncs.com/google_containers verwenden.",
 	"Alternatively you could install one of these drivers:": "Alternativ könnten Sie einen dieser Treiber installieren:",
diff --git a/translations/es.json b/translations/es.json
index 011a48d60..46f4a453c 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -66,7 +66,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "",
 	"Aliases": "Aliases",
 	"All existing scheduled stops cancelled": "",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
 	"Allow user prompts for more information": "Permitir que el usuario solicite más información",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Repositorio de imágenes alternativo del que extraer imágenes de Docker. Puedes usarlo cuando tengas acceso limitado a gcr.io. Si quieres que minikube elija uno por ti, solo tienes que definir el valor como \"auto\". Los usuarios de China continental pueden utilizar réplicas locales de gcr.io, como registry.cn-hangzhou.aliyuncs.com/google_containers",
 	"Alternatively you could install one of these drivers:": "Alternativamente, puede installar uno de estos drivers:",
diff --git a/translations/fr.json b/translations/fr.json
index 08d660255..a1f4f274c 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -68,7 +68,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "Après que le module est activé, veuiller exécuter \"minikube tunnel\" et vos ressources ingress seront disponibles à \"127.0.0.1\"",
 	"Aliases": "Alias",
 	"All existing scheduled stops cancelled": "Tous les arrêts programmés existants annulés",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "Autorisez les pods à utiliser vos GPU NVIDIA. Les options incluent : [all,nvidia] (pilote Docker avec environnement d'exécution de conteneur Docker uniquement)",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "Autorisez les pods à utiliser vos GPU. Les options incluent : [all,nvidia,amd] (pilote Docker avec environnement d'exécution de conteneur Docker uniquement)",
 	"Allow user prompts for more information": "Autoriser les utilisateurs à saisir plus d'informations",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Autre dépôt d'images d'où extraire des images Docker. Il peut être utilisé en cas d'accès limité à gcr.io. Définissez-le sur \"auto\" pour permettre à minikube de choisir la valeur à votre place. Pour les utilisateurs situés en Chine continentale, vous pouvez utiliser des miroirs gcr.io locaux tels que registry.cn-hangzhou.aliyuncs.com/google_containers.",
 	"Alternatively you could install one of these drivers:": "Vous pouvez également installer l'un de ces pilotes :",
diff --git a/translations/ja.json b/translations/ja.json
index db61e0358..86400896c 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -62,7 +62,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "アドオンを有効にした後、「minikube tunnel」を実行することで、ingress リソースが「127.0.0.1」で利用可能になります",
 	"Aliases": "エイリアス",
 	"All existing scheduled stops cancelled": "既存のスケジュールされていたすべての停止がキャンセルされました",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
 	"Allow user prompts for more information": "ユーザーによる詳細情報の入力をできるようにします",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Docker イメージを取得するための代替イメージリポジトリー。これは、gcr.io へのアクセスが制限されている場合に使用できます。これを「auto」に設定すると、minikube によって自動的に指定されるようになります。中国本土のユーザーの場合、registry.cn-hangzhou.aliyuncs.com/google_containers などのローカル gcr.io ミラーを使用できます",
 	"Alternatively you could install one of these drivers:": "代わりに、これらのドライバーのいずれかをインストールすることもできます:",
diff --git a/translations/ko.json b/translations/ko.json
index 8410eec22..40ff84cd2 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -68,7 +68,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "애드온이 활성화된 후 \"minikube tunnel\"을 실행하면 인그레스 리소스를 \"127.0.0.1\"에서 사용할 수 있습니다",
 	"Aliases": "별칭",
 	"All existing scheduled stops cancelled": "예정된 모든 중지 요청이 취소되었습니다",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "pod 가 NVIDIA GPU를 사용할 수 있도록 허용합니다. 옵션은 다음과 같습니다: [all,nvidia] (Docker 드라이버와 Docker 컨테이너 런타임만 해당)",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "pod 가 GPU를 사용할 수 있도록 허용합니다. 옵션은 다음과 같습니다: [all,nvidia,amd] (Docker 드라이버와 Docker 컨테이너 런타임만 해당)",
 	"Allow user prompts for more information": "추가 정보를 위해 사용자 프롬프트를 허용합니다",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "도커 이미지를 가져올 대체 이미지 저장소입니다. gcr.io에 제한된 액세스 권한이 있는 경우 사용할 수 있습니다. \"auto\"로 설정하여 minikube가 대신 결정하도록 할 수 있습니다. 중국 본토 사용자는 registry.cn-hangzhou.aliyuncs.com/google_containers와 같은 로컬 gcr.io 미러를 사용할 수 있습니다",
 	"Alternatively you could install one of these drivers:": "또는 다음 드라이버 중 하나를 설치할 수 있습니다:",
diff --git a/translations/pl.json b/translations/pl.json
index e65b15139..99db20249 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -65,7 +65,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "Po włączeniu addona wykonaj komendę \"minikube tunnel\". Twoje zasoby będą dostępne pod adresem \"127.0.0.1\"",
 	"Aliases": "Aliasy",
 	"All existing scheduled stops cancelled": "Wszystkie zaplanowane zatrzymania zostały anulowane",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
 	"Allow user prompts for more information": "",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "",
 	"Alternatively you could install one of these drivers:": "",
diff --git a/translations/ru.json b/translations/ru.json
index cef057cff..33124128e 100644
--- a/translations/ru.json
+++ b/translations/ru.json
@@ -57,7 +57,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "",
 	"Aliases": "",
 	"All existing scheduled stops cancelled": "",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
 	"Allow user prompts for more information": "",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "",
 	"Alternatively you could install one of these drivers:": "",
diff --git a/translations/strings.txt b/translations/strings.txt
index 919c80475..a22ec186d 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -57,7 +57,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "",
 	"Aliases": "",
 	"All existing scheduled stops cancelled": "",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "",
 	"Allow user prompts for more information": "",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "",
 	"Alternatively you could install one of these drivers:": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index a0f8aac06..3bf849bc5 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -75,7 +75,7 @@
 	"After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "插件启用后，请运行 \"minikube tunnel\" 您的 ingress 资源将在 \"127.0.0.1\"",
 	"Aliases": "别名",
 	"All existing scheduled stops cancelled": "取消所有已计划的停止",
-	"Allow pods to use your NVIDIA GPUs. Options include: [all,nvidia] (Docker driver with Docker container-runtime only)": "所有 pods 使用您的英伟达 GPUs。选项包括:[all,nvidia](仅支持Docker容器运行时的Docker驱动程序)",
+	"Allow pods to use your GPUs. Options include: [all,nvidia,amd] (Docker driver with Docker container-runtime only)": "允许 pods 使用您的 GPUs。选项包括:[all,nvidia,amd](仅支持Docker容器运行时的Docker驱动程序)",
 	"Allow user prompts for more information": "允许用户提示以获取更多信息",
 	"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \"auto\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "用于从中拉取 docker 镜像的备选镜像存储库。如果您对 gcr.io 的访问受到限制，则可以使用该镜像存储库。将镜像存储库设置为“auto”可让 minikube 为您选择一个存储库。对于中国大陆用户，您可以使用本地 gcr.io 镜像，例如 registry.cn-hangzhou.aliyuncs.com/google_containers",
 	"Alternatively you could install one of these drivers:": "或者你也可以安装以下驱动程序：",
@@ -932,34 +932,34 @@
 	"To connect to this cluster, use:  --context={{.name}}": "",
 	"To connect to this cluster, use: kubectl --context={{.name}}": "如需连接到此集群，请使用 kubectl --context={{.name}}",
 	"To connect to this cluster, use: kubectl --context={{.name}}__1": "如需连接到此集群，请使用 kubectl --context={{.name}}",
-	"To connect to this cluster, use: kubectl --context={{.profile_name}}": "",
-	"To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "",
+	"To connect to this cluster, use: kubectl --context={{.profile_name}}": "如需连接到此集群，请使用 kubectl --context={{.profile_name}}",
+	"To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "要禁用测试版通知，请运行: 'minikube config set WantBetaUpdateNotification false'",
 	"To disable this notice, run: 'minikube config set WantUpdateNotification false'\n": "要禁用此通知，请运行：'minikube config set WantUpdateNotification false'",
 	"To disable update notices in general, run: 'minikube config set WantUpdateNotification false'\n": "要禁用更新通知，请运行：'minikube config set WantUpdateNotification false'\n",
-	"To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "",
-	"To see addons list for other profiles use: `minikube addons -p name list`": "",
+	"To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "要获取新的外部镜像，可能需要配置代理：https://minikube.sigs.k8s.io/docs/reference/networking/proxy/",
+	"To see addons list for other profiles use: `minikube addons -p name list`": "要查看其他配置文件的插件列表，请使用: `minikube addons -p name list`",
 	"To set your Google Cloud project,  run:\n\n\t\tgcloud config set project \u003cproject name\u003e\n\nor set the GOOGLE_CLOUD_PROJECT environment variable.": "要设置您的 Google Cloud 项目，请运行：\n\n\t\tgcloud config set project \u003cproject name\u003e\n\n或设置 GOOGLE_CLOUD_PROJECT 环境变量。",
 	"To start a cluster, run: \"{{.command}}\"": "要启动一个集群，请运行： \"{{.command}}\"",
 	"To start minikube with Hyper-V, Powershell must be in your PATH`": "要使用 Hyper-V 启动 minikube，Powershell 必须在您的 PATH 中",
 	"To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:": "如需以您自己的用户身份使用 kubectl 或 minikube 命令，您可能需要重新定位该命令。例如，如需覆盖您的自定义设置，请运行：",
 	"Troubleshooting Commands:": "故障排除命令",
 	"Try 'minikube delete' to force new SSL certificates to be installed": "尝试 'minikube delete' 强制安装新的 SSL 证书",
-	"Try 'minikube delete', and disable any conflicting VPN or firewall software": "",
+	"Try 'minikube delete', and disable any conflicting VPN or firewall software": "尝试 'minikube delete'，并禁用任何冲突的VPN或防火墙软件",
 	"Try one or more of the following to free up space on the device:\n\t\n\t\t\t1. Run \"docker system prune\" to remove unused Docker data (optionally with \"-a\")\n\t\t\t2. Increase the storage allocated to Docker for Desktop by clicking on:\n\t\t\t\tDocker icon \u003e Preferences \u003e Resources \u003e Disk Image Size\n\t\t\t3. Run \"minikube ssh -- docker system prune\" if using the Docker container runtime": "尝试以下一种或多种方法以释放设备上的空间：\n\t\n\t\t\t1. 运行 \"docker system prune\" 以删除未使用的 Docker 数据（可选 \"-a\"）\n\t\t\t2. 通过点击以下路径增加分配给 Docker for Desktop 的存储空间：\n\t\t\t\tDocker 图标 \u003e Preferences \u003e Resources \u003e Disk Image Size\n\t\t\t3. 如果使用 Docker 容器运行时，运行 \"minikube ssh -- docker system prune\"",
 	"Try one or more of the following to free up space on the device:\n\t\n\t\t\t1. Run \"sudo podman system prune\" to remove unused podman data\n\t\t\t2. Run \"minikube ssh -- docker system prune\" if using the Docker container runtime": "",
 	"Trying to delete invalid profile {{.profile}}": "尝试删除无效的配置文件 {{.profile}}",
 	"Tunnel successfully started": "隧道成功启动",
 	"Unable to bind flags": "无法绑定标志",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "无法创建专用网络，这可能会导致重启后集群 IP 发生变化：{{.error}}",
-	"Unable to delete profile(s): {{.error}}": "",
-	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
+	"Unable to delete profile(s): {{.error}}": "无法删除配置文件: {{.error}}",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "无法检测到指定主次版本 v{{.majorminor}} 的最新补丁版本。",
 	"Unable to determine a default driver to use. Try specifying --vm-driver, or see https://minikube.sigs.k8s.io/docs/start/": "无法确定要使用的默认驱动。尝试通过 --vm-dirver 指定，或者查阅 https://minikube.sigs.k8s.io/docs/start/",
 	"Unable to enable dashboard": "无法启用仪表盘",
 	"Unable to fetch latest version info": "无法获取最新版本信息",
 	"Unable to find any control-plane nodes": "无法找到任何控制平面节点",
 	"Unable to find control plane": "无法找到控制平面",
 	"Unable to generate docs": "无法生成文档",
-	"Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "",
+	"Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "无法生成文档。请确保指定的路径是一个目录，存在 \u0026 您有权限写入它。",
 	"Unable to get CPU info: {{.err}}": "无法获取 CPU 信息: {{.err}}",
 	"Unable to get bootstrapper: {{.error}}": "无法获取引导程序：{{.error}}",
 	"Unable to get command runner": "无法获取命令执行器",
@@ -982,17 +982,17 @@
 	"Unable to load cached images from config file.": "无法从配置文件中加载缓存的镜像。",
 	"Unable to load cached images: {{.error}}": "无法加载缓存的镜像：{{.error}}",
 	"Unable to load config: {{.error}}": "无法加载配置：{{.error}}",
-	"Unable to load control-plane node {{.name}} host (will try others): {{.err}}": "",
-	"Unable to load control-plane node {{.name}} host: {{.err}}": "",
+	"Unable to load control-plane node {{.name}} host (will try others): {{.err}}": "无法加载控制平台节点主机 {{.name}}(将尝试其他主机): {{.err}}",
+	"Unable to load control-plane node {{.name}} host: {{.err}}": "无法加载控制平台节点主机 {{.name}}: {{.err}}",
 	"Unable to load profile: {{.error}}": "无法加载配置文件: {{.error}}",
 	"Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "无法解析“{{.kubernetes_version}}”：{{.error}}",
 	"Unable to parse default Kubernetes version from constants: {{.error}}": "无法从常量中解析默认的 Kubernetes 版本号： {{.error}}",
 	"Unable to parse memory '{{.memory}}': {{.error}}": "",
 	"Unable to parse oldest Kubernetes version from constants: {{.error}}": "无法从常量中解析最旧的 Kubernetes 版本号： {{.error}}",
-	"Unable to parse version.json: {{.error}}, json: {{.json}}": "",
+	"Unable to parse version.json: {{.error}}, json: {{.json}}": "无法解析 version.json: {{.error}}, json: {{.json}}",
 	"Unable to pick a default driver. Here is what was considered, in preference order:": "无法选择默认驱动程序。以下是按优先顺序考虑的内容：",
 	"Unable to pull images, which may be OK: {{.error}}": "无法拉取镜像，有可能是正常状况：{{.error}}",
-	"Unable to push cached images: {{.error}}": "",
+	"Unable to push cached images: {{.error}}": "无法推送缓存镜像: {{.error}}",
 	"Unable to remove machine directory": "无法删除machine目录",
 	"Unable to restart cluster, will reset it: {{.error}}": "无法重启集群，将进行重置：{{.error}}",
 	"Unable to restart control-plane node(s), will reset cluster: {{.error}}": "无法重启 control-plane 节点，将重置集群: {{.error}}",


Test patch:
diff --git a/.github/workflows/update-gotestsum-version.yml b/.github/workflows/update-gotestsum-version.yml
index 1000915cc..02e48552f 100644
--- a/.github/workflows/update-gotestsum-version.yml
+++ b/.github/workflows/update-gotestsum-version.yml
@@ -6,7 +6,7 @@ on:
     - cron: "0 10 * * 1"
 env:
   GOPROXY: https://proxy.golang.org
-  GO_VERSION: '1.23.0'
+  GO_VERSION: '1.23.1'
 permissions:
   contents: read
 
@@ -14,7 +14,7 @@ jobs:
   bump-gotestsum-version:
     runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
       - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
         with:
           go-version: ${{env.GO_VERSION}}
diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go
index c19e151d3..6f468b632 100644
--- a/cmd/minikube/cmd/start_test.go
+++ b/cmd/minikube/cmd/start_test.go
@@ -814,7 +814,10 @@ func TestValidateGPUs(t *testing.T) {
 		{"nvidia", "docker", "", ""},
 		{"all", "kvm", "docker", "The gpus flag can only be used with the docker driver and docker container-runtime"},
 		{"nvidia", "docker", "containerd", "The gpus flag can only be used with the docker driver and docker container-runtime"},
-		{"cat", "docker", "docker", `The gpus flag must be passed a value of "nvidia" or "all"`},
+		{"cat", "docker", "docker", `The gpus flag must be passed a value of "nvidia", "amd" or "all"`},
+		{"amd", "docker", "docker", ""},
+		{"amd", "docker", "", ""},
+		{"amd", "docker", "containerd", "The gpus flag can only be used with the docker driver and docker container-runtime"},
 	}
 
 	for _, tc := range tests {
diff --git a/pkg/drivers/common_test.go b/pkg/drivers/common_test.go
index 3a6d0569e..ee35cdb23 100644
--- a/pkg/drivers/common_test.go
+++ b/pkg/drivers/common_test.go
@@ -54,6 +54,13 @@ var validLeases = []byte(`{
         identifier=1,a2:b3:c4:d5:e6:f7
         lease=0x597e1267
 }
+{
+        name=bootp
+        ip_address=192.168.105.2
+        hw_address=1,8e:1:99:9c:54:b1
+        identifier=1,8e:1:99:9c:54:b1
+        lease=0x597e1268
+}
 {
         name=bar
         ip_address=192.168.64.3
@@ -98,6 +105,14 @@ func Test_getIpAddressFromFile(t *testing.T) {
 			"1.2.3.4",
 			false,
 		},
+		{
+			// bootp use "%x" format instead of "%02x"
+			// https://openradar.appspot.com/FB15382970
+			"valid-bootp",
+			args{"8e:01:99:9c:54:b1", dhcpFile},
+			"192.168.105.2",
+			false,
+		},
 		{
 			"duplicate",
 			args{"a4:b5:c6:d7:e8:f9", dhcpFile},
diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md
index 073824364..e3b78a4d2 100644
--- a/site/content/en/docs/contrib/tests.en.md
+++ b/site/content/en/docs/contrib/tests.en.md
@@ -65,6 +65,9 @@ tests disabling an addon on a non-existing cluster
 #### validateNvidiaDevicePlugin
 tests the nvidia-device-plugin addon by ensuring the pod comes up and the addon disables
 
+#### validateAmdGpuDevicePlugin
+tests the amd-gpu-device-plugin addon by ensuring the pod comes up and the addon disables
+
 #### validateYakdAddon
 
 ## TestCertOptions
diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go
index 759a15d61..e9ec27e75 100644
--- a/test/integration/addons_test.go
+++ b/test/integration/addons_test.go
@@ -100,7 +100,7 @@ func TestAddons(t *testing.T) {
 		// so we override that here to let minikube auto-detect appropriate cgroup driver
 		os.Setenv(constants.MinikubeForceSystemdEnv, "")
 
-		args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth", "--addons=cloud-spanner", "--addons=inspektor-gadget", "--addons=nvidia-device-plugin", "--addons=yakd", "--addons=volcano"}, StartArgs()...)
+		args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth", "--addons=cloud-spanner", "--addons=inspektor-gadget", "--addons=nvidia-device-plugin", "--addons=yakd", "--addons=volcano", "--addons=amd-gpu-device-plugin"}, StartArgs()...)
 		if !NoneDriver() {
 			args = append(args, "--addons=ingress", "--addons=ingress-dns", "--addons=storage-provisioner-rancher")
 		}
@@ -115,12 +115,13 @@ func TestAddons(t *testing.T) {
 		t.Fatalf("Failed setup for addon tests")
 	}
 
+	type TestCase = struct {
+		name      string
+		validator validateFunc
+	}
 	// Run tests in serial to avoid collision
 	t.Run("serial", func(t *testing.T) {
-		tests := []struct {
-			name      string
-			validator validateFunc
-		}{
+		tests := []TestCase{
 			{"Volcano", validateVolcanoAddon},
 			{"GCPAuth", validateGCPAuthAddon},
 		}
@@ -137,10 +138,7 @@ func TestAddons(t *testing.T) {
 
 	// Parallelized tests
 	t.Run("parallel", func(t *testing.T) {
-		tests := []struct {
-			name      string
-			validator validateFunc
-		}{
+		tests := []TestCase{
 			{"Registry", validateRegistryAddon},
 			{"Ingress", validateIngressAddon},
 			{"InspektorGadget", validateInspektorGadgetAddon},
@@ -152,7 +150,9 @@ func TestAddons(t *testing.T) {
 			{"LocalPath", validateLocalPathAddon},
 			{"NvidiaDevicePlugin", validateNvidiaDevicePlugin},
 			{"Yakd", validateYakdAddon},
+			{"AmdGpuDevicePlugin", validateAmdGpuDevicePlugin},
 		}
+
 		for _, tc := range tests {
 			tc := tc
 			if ctx.Err() == context.DeadlineExceeded {
@@ -878,6 +878,7 @@ func validateLocalPathAddon(ctx context.Context, t *testing.T, profile string) {
 		t.Skipf("skip local-path test on none driver")
 	}
 	defer disableAddon(t, "storage-provisioner-rancher", profile)
+	defer PostMortemLogs(t, profile)
 
 	// Create a test PVC
 	rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "apply", "-f", filepath.Join(*testdataDir, "storage-provisioner-rancher", "pvc.yaml")))
@@ -953,26 +954,34 @@ func validateDisablingAddonOnNonExistingCluster(ctx context.Context, t *testing.
 
 // validateNvidiaDevicePlugin tests the nvidia-device-plugin addon by ensuring the pod comes up and the addon disables
 func validateNvidiaDevicePlugin(ctx context.Context, t *testing.T, profile string) {
+	defer disableAddon(t, "nvidia-device-plugin", profile)
 	defer PostMortemLogs(t, profile)
 
 	if _, err := PodWait(ctx, t, profile, "kube-system", "name=nvidia-device-plugin-ds", Minutes(6)); err != nil {
 		t.Fatalf("failed waiting for nvidia-device-plugin-ds pod: %v", err)
 	}
-	if rr, err := Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "nvidia-device-plugin", "-p", profile)); err != nil {
-		t.Errorf("failed to disable nvidia-device-plugin: args %q : %v", rr.Command(), err)
+}
+
+// validateAmdGpuDevicePlugin tests the amd-gpu-device-plugin addon by ensuring the pod comes up and the addon disables
+func validateAmdGpuDevicePlugin(ctx context.Context, t *testing.T, profile string) {
+	if !(DockerDriver() && amd64Platform()) {
+		t.Skipf("skip amd gpu test on all but docker driver and amd64 platform")
+	}
+	defer disableAddon(t, "amd-gpu-device-plugin", profile)
+	defer PostMortemLogs(t, profile)
+
+	if _, err := PodWait(ctx, t, profile, "kube-system", "name=amd-gpu-device-plugin", Minutes(6)); err != nil {
+		t.Fatalf("failed waiting for amd-gpu-device-plugin pod: %v", err)
 	}
 }
 
 func validateYakdAddon(ctx context.Context, t *testing.T, profile string) {
+	defer disableAddon(t, "yakd", profile)
 	defer PostMortemLogs(t, profile)
 
 	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)
-	}
 }
 
 func disableAddon(t *testing.T, addon, profile string) {
diff --git a/test/integration/main_test.go b/test/integration/main_test.go
index 051c302b2..895d15fef 100644
--- a/test/integration/main_test.go
+++ b/test/integration/main_test.go
@@ -180,6 +180,11 @@ func arm64Platform() bool {
 	return runtime.GOARCH == "arm64"
 }
 
+// amd64Platform returns true if running on amd64/* platform
+func amd64Platform() bool {
+	return runtime.GOARCH == "amd64"
+}
+
 // NeedsPortForward returns access to endpoints with this driver needs port forwarding
 // (Docker on non-Linux platforms and rootless KIC requires ports to be forwarded to 127.0.0.1)
 func NeedsPortForward() bool {