Skip to content

Conversation

@nirs
Copy link
Contributor

@nirs nirs commented Sep 4, 2025

We use constants.OldestKubernetesVersion for testing the oldest version and limiting --kubernetes-version when starting the clusters. Our tradition is testing 6 releases back from current version, but we were testing 14 release back (1.20.0).

For upgrading containerd to latest version (v2.1.4) we need to upgrade to a newer release. Upgrade constants.OldestKubernetesVersion to 1.28.0 which seems to pass all tests.

legacyVersion() used in version_upgrade_test.go was 1.26.0. The comment in file mention that this should be release from the last 6 month. We do see failures in the relevant tests (TestRunningBinaryUpgrade) in many builds so I bumped it as well to 1.32.0 (2 releases back from current).

In preload_test.go we tested --kubernetes-version=1.24.4 which is not compatible with containerd v2. Use legacyVersion() instead so we don't need to maintain another version.

We had many example of --kubernetes-version in the docs using older version which are not supported. Replace all example with current version to minimize future maintenance. We need to automated this later so updating the version in minikube will also update the examples.

With this change we have 2 places to update kubernetes versions:

  • constants.*KubernetesVersion
  • legacyVersion()

We use constants.OldestKubernetesVersion for testing the oldest version
and limiting --kubernetes-version when starting the clusters. Our
tradition is testing 6 releases back from current version, but we were
testing 14 release back (1.20.0).

For upgrading containerd to latest version (v2.1.4) we need to upgrade
to a newer release. Upgrade constants.OldestKubernetesVersion to 1.28.0
which seems to pass all tests.

legacyVersion() used in version_upgrade_test.go was 1.26.0. The comment
in file mention that this should be release from the last 6 month. We do
see failures in the relevant tests (TestRunningBinaryUpgrade) in many
builds so I bumped it as well to 1.32.0 (2 releases back from current).

In preload_test.go we tested --kubernetes-version=1.24.4 which is not
compatible with containerd v2. Use legacyVersion() instead so we don't
need to maintain another version.

We had many example of --kubernetes-version in the docs using older
version which are not supported. Replace all example with current
version to minimize future maintenance. We need to automated this later
so updating the version in minikube will also update the examples.

With this change we have 2 places to update kubernetes versions:
- constants.*KubernetesVersion
- legacyVersion()
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Sep 4, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: nirs
Once this PR has been reviewed and has the lgtm label, please assign spowelljr for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Sep 4, 2025
@medyagh medyagh changed the title Update Kubernetes versions test: Update Kubernetes versions Sep 4, 2025
@medyagh medyagh changed the title test: Update Kubernetes versions Update oldest supported Kubernetes versions Sep 4, 2025
startArgs = append(startArgs, StartArgs()...)
k8sVersion := "v1.24.4"
startArgs = append(startArgs, fmt.Sprintf("--kubernetes-version=%s", k8sVersion))
startArgs = append(startArgs, fmt.Sprintf("--kubernetes-version=%s", legacyVersion()))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this one is a test that we specifically do NOT have a preload for this kubernetes version and we are testing that no preload for this...this might break the test

I might be wrong but I am feeling we chose ""v1.24.4" as one that wont ever get a preload for testing purposes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be possible, but we cannot do this. The tested version must be dynamic and change each time we update k8s version, on every release. If this test depend on not having a preload we need to find another way to cause to make preload lookup to fail, or delete the test.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.24.4 is is too old to be compatible with containerd v2. Even 1.28 is not supported.

@nirs
Copy link
Contributor Author

nirs commented Sep 4, 2025

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Sep 4, 2025
@minikube-pr-bot
Copy link

kvm2 driver with docker runtime

┌────────────────┬──────────┬────────────────────────┐
│    COMMAND     │ MINIKUBE │ MINIKUBE  ( PR 21490 ) │
├────────────────┼──────────┼────────────────────────┤
│ minikube start │ 49.2s    │ 49.4s                  │
│ enable ingress │ 15.7s    │ 15.8s                  │
└────────────────┴──────────┴────────────────────────┘

Times for minikube start: 49.6s 48.9s 49.7s 49.0s 48.9s
Times for minikube (PR 21490) start: 50.3s 47.5s 47.8s 48.6s 52.6s

Times for minikube ingress: 15.8s 15.8s 15.8s 15.3s 15.8s
Times for minikube (PR 21490) ingress: 15.8s 15.8s 15.8s 15.8s 15.8s

docker driver with docker runtime

┌────────────────┬──────────┬────────────────────────┐
│    COMMAND     │ MINIKUBE │ MINIKUBE  ( PR 21490 ) │
├────────────────┼──────────┼────────────────────────┤
│ minikube start │ 23.7s    │ 23.1s                  │
│ enable ingress │ 14.3s    │ 13.5s                  │
└────────────────┴──────────┴────────────────────────┘

Times for minikube start: 25.6s 21.0s 23.1s 22.1s 26.8s
Times for minikube (PR 21490) start: 22.5s 22.0s 25.8s 22.1s 23.0s

Times for minikube ingress: 17.1s 13.6s 13.6s 13.6s 13.6s
Times for minikube (PR 21490) ingress: 13.1s 13.6s 13.6s 13.7s 13.7s

docker driver with containerd runtime

┌────────────────┬──────────┬────────────────────────┐
│    COMMAND     │ MINIKUBE │ MINIKUBE  ( PR 21490 ) │
├────────────────┼──────────┼────────────────────────┤
│ minikube start │ 22.9s    │ 24.3s                  │
│ enable ingress │ 28.1s    │ 23.9s                  │
└────────────────┴──────────┴────────────────────────┘

Times for minikube start: 20.9s 25.5s 21.7s 25.6s 20.7s
Times for minikube (PR 21490) start: 24.6s 22.0s 24.7s 24.1s 25.9s

Times for minikube ingress: 24.1s 24.1s 24.2s 40.1s 28.1s
Times for minikube (PR 21490) ingress: 24.1s 24.1s 24.1s 23.6s 23.6s

@minikube-pr-bot
Copy link

Here are the number of top 10 failed tests in each environments with lowest flake rate.

Environment Test Name Flake Rate
KVM_Linux_crio (4 failed) TestFunctional/parallel/ImageCommands/ImageRemove(gopogh) 2.50% (chart)

Besides the following environments also have failed tests:

  • Docker_Linux_crio_arm64: 13 failed (gopogh)

  • Docker_Linux_crio: 16 failed (gopogh)

To see the flake rates of all tests by environment, click here.

@medyagh medyagh merged commit dbab274 into kubernetes:master Sep 5, 2025
40 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants