pingcap / pingcap/tidb-operator

Support testing for multiple kubernetes versions

Open
#4,786 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/doc test/e2e
Dominant language
Go
Stars
1.3k
Forks
540
Avg merge
3d 2h
Merged PRs (30d)
18

Description

Feature Request

Enforce tests for TiDB operator for the three most recent k8s minor versions.

Is your feature request related to a problem? Please describe:

Currently, the k8s version for e2e is effectively pinned to v1.18.2:
https://github.com/pingcap/tidb-operator/blob/89faa4d976e070543d349d14637cacae073248d7/hack/e2e.sh#L204
We need to test TiDB operator against more recent k8s versions and give a clear commitment on which k8s versions the operator is tested so people won't get surprised running the operator of specific versions on tested k8s versions.

Describe the feature you'd like:

K8s's version skew policy^1 ensures that the most recent three minor releases are tested and supported.
It would be ideal if we could always ensure the latest release tested for the three most recent k8s minor versions at the data of its release. If this is valid, then with our regular release cadence, we can guarantee that there's a tested upgrade path for upgrading both TiDB operator and k8s.

Describe alternatives you've considered:

Keep an LTE version of TiDB operator. That could be challenging since some k8s upstream APIs we're using could be deprecated in the future. It's hard to keep the same TiDB operator running on all k8s versions.

Teachability, Documentation, Adoption, Migration Strategy:

Would be helpful to test against multiple k8s versions and then mention the tested k8s versions in the release notes (like this[^2] one) for each release in the future.

[^2]: TiDB operator v1.3.9 release note: https://docs.pingcap.com/tidb-in-kubernetes/stable/release-1.3.9

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting hack/e2e.sh around line 204 to understand how the current Kubernetes version is selected and how end-to-end tests are invoked. Determine how to run those tests against the three most recent Kubernetes minor versions, then document the tested versions in each release's notes. Done means the versions are tested and clearly reported for future releases.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, infrastructure, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.