From 5f32ead97857db21347814cf9d7181733cfe7377 Mon Sep 17 00:00:00 2001 From: Michael Weibel Date: Fri, 28 Aug 2026 17:41:09 +0200 Subject: [PATCH] Use explicit Kubernetes versions for integration tests - Add .github/kubernetes-versions.json config file - Update helpers/test-matrix to read from config instead of using dynamic release-set detection from k8test - Document version update process in README.md This prevents CI breakage when new Kubernetes releases outpace cri-tools support. Versions are now updated manually per the 3-latest-minor-releases policy. --- .github/kubernetes-versions.json | 7 +++++++ README.md | 14 ++++++++++++++ helpers/test-matrix | 7 +++---- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 .github/kubernetes-versions.json diff --git a/.github/kubernetes-versions.json b/.github/kubernetes-versions.json new file mode 100644 index 0000000..64d9d48 --- /dev/null +++ b/.github/kubernetes-versions.json @@ -0,0 +1,7 @@ +{ + "versions": [ + "1.36.0", + "1.35.0", + "1.34.0" + ] +} diff --git a/README.md b/README.md index af16114..19439c7 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,20 @@ For example, if the current release is `1.29.0`, we support the following: Older releases should work as well, but we do not test them automatically, and we may decide not to fix bugs related to older releases. +Integration tests run against explicit Kubernetes versions defined in `.github/kubernetes-versions.json`. + +To update tested versions: +1. Edit `.github/kubernetes-versions.json` +2. Update to the 3 latest minor releases +3. Commit and push + +Example: +```json +{ + "versions": ["1.36.0", "1.35.0", "1.34.0"] +} +``` + ## Try It Out To test the CCM on a vanilla Kubernetes cluster, you can use `helpers/run-in-test-cluster`. This will create a small Kubernetes cluster at cloudscale.ch, diff --git a/helpers/test-matrix b/helpers/test-matrix index c4dda20..56f9a65 100755 --- a/helpers/test-matrix +++ b/helpers/test-matrix @@ -1,14 +1,13 @@ #!/usr/bin/env bash set -euo pipefail -# Make sure the k8test/helpers/release-set CLI is available -source helpers/run-in-test-cluster -ensure-k8test > /dev/null +# Read explicit Kubernetes versions from config +K8S_VERSIONS=$(jq -r '.versions' .github/kubernetes-versions.json) # Returns the matrix entry for the given index (1-n) function matrixentry { # Kubernetes releases - k8test/helpers/release-set --kubernetes=$(( 1 - $1 )) --limit kubernetes | jq -r '.kubernetes.version' + echo "$K8S_VERSIONS" | jq -r ".[$(( $1 - 1 ))]" # The the private subnet range echo "10.100.$1.0/24"