diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c696bec3f2c4b2ef047b8e8057e4d30ff7a6765a..f08a2a25eb38400b21933f04b18f8d94acac2f81 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -58,6 +58,10 @@ jobs:
       K8S_TEST_VERSION: ${{ matrix.k8s-test }}
       ENV: gha-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.k3s }}
 
+      # These ginkgo flags were only added in 2.17+2.18, which is available in Kubernetes v1.31+
+      # Can be simplified once we no longer test <1.31.
+      GINKGO_EXTRA_ARGS: ${{ (matrix.k3s != 'v1.29' && matrix.k3s != 'v1.30') && '--silence-skips --github-output' || '' }}
+
     steps:
       - uses: actions/checkout@v4
 
diff --git a/test/e2e/kubernetes/Makefile b/test/e2e/kubernetes/Makefile
index 74cc9995cfe490c3bd94de671dd10401e05b310b..3bd13ec0e0d5bc3fb5caca4a8602d7a9b37551e0 100644
--- a/test/e2e/kubernetes/Makefile
+++ b/test/e2e/kubernetes/Makefile
@@ -4,6 +4,7 @@ K8S_TEST_VERSION ?= v1.32.1
 
 GINKGO = bin/ginkgo
 GINKGO_ARGS = -v --flake-attempts=2
+GINKGO_EXTRA_ARGS ?= ""
 
 E2E = bin/e2e.test
 E2E_ARGS = -storage.testdriver=$(CURDIR)/testdriver.yaml
@@ -16,14 +17,14 @@ bin:
 			kubernetes/test/bin/ginkgo
 
 parallel: bin
-	$(GINKGO) $(GINKGO_ARGS) \
+	$(GINKGO) $(GINKGO_ARGS) $(GINKGO_EXTRA_ARGS) \
 		-nodes=12 \
 		-focus='External.Storage' \
 		-skip='\[Feature:|\[Disruptive\]|\[Serial\]' \
 		$(E2E) -- $(E2E_ARGS)
 
 serial: bin
-	$(GINKGO) $(GINKGO_ARGS) \
+	$(GINKGO) $(GINKGO_ARGS) $(GINKGO_EXTRA_ARGS) \
 		-focus='External.Storage.*(\[Feature:|\[Serial\])' \
 		$(E2E) -- $(E2E_ARGS)