Skip to content

docs: correct supported Kubernetes versions - #2167

Open
joedrf wants to merge 2 commits into
linkerd:mainfrom
joedrf:fix-k8s-versions
Open

joedrf wants to merge 2 commits into
linkerd:mainfrom
joedrf:fix-k8s-versions

Conversation

@joedrf

@joedrf joedrf commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

What

The Supported Kubernetes Versions
table has drifted from the Kubernetes versions supported by the stable releases
of each Linkerd version. The troubleshooting page also still says Linkerd needs
Kubernetes 1.13.0.

reference/k8s-versions.md

Linkerd Was Now Source
2.15 1.22 – 1.29 1.22 – 1.31 enterprise-2.15.6 raised the maximum to 1.31
2.16 1.22 – 1.29 1.22 – 1.31 enterprise-2.16.0
2.17 1.22 – 1.31 1.22 – 1.32 enterprise-2.17.0
2.18 1.22 – 1.32 1.23 – 1.32 linkerd/linkerd2#13691 raised the minimum to 1.23 (CEL validation for the Gateway API) before version-2.18, and linkerd check --pre rejects 1.22 (see Verification)
2.19 1.22 – 1.35 in docs and 2-edge; 1.29 – 1.35 in 2.19 1.29 – 1.37 The 2.19 docs and enterprise-2.19.0 give 1.29 as the minimum. enterprise-2.19.10 added 1.36 and enterprise-2.19.13 added 1.37
2.20 1.31 – 1.35 1.31 – 1.37 enterprise-2.20.2 added 1.36 and enterprise-2.20.5 added 1.37

The new ranges match the
BEL versions page,
except for the 2.18 minimum. There, linkerd check --pre from both
edge-25.4.4 and enterprise-2.18.16 rejects 1.22. Raising the maxima to
follow the stable releases does what #2110 did for 2.19 and Kubernetes 1.35.

Because the maximum now changes in minor releases, the note under the table now
says that only the minimum almost never changes. It also says that the maximum
can require a later minor release.

tasks/troubleshooting.md

"Linkerd requires at least version 1.13.0" is below the minimum of every
version these docs cover. In 2.14 and later, the sentence now links to the
table. 2.10–2.13 have no table, so their pages state the minimum inline (taken
from minAPIVersion at each stable-2.1x tag). In docs and 2-edge, the
example failure is now real output (see Verification). Older versions keep
their existing example.

Scope

Each change is applied to every versioned copy that contains it (2.10–2.19,
docs, 2-edge), following #1961 and #2149. The 2.14 table already matches.
2-edge alone shows every change except the inline minimums in 2.10–2.13.

Verification

  • linkerd check --pre against k3s v1.30.6: edge-26.6.3 (version-2.20),
    edge-26.11.1 and enterprise-2.20.5 all fail with
    Kubernetes is on version [1.30.6], but version [1.31.0] or more recent is required.
  • linkerd check --pre against k3s v1.22.17: edge-25.4.4 (version-2.18),
    edge-25.10.7 (version-2.19), enterprise-2.18.16 and enterprise-2.19.13
    all fail with ... but version [1.23.0] or more recent is required.
  • Lowest --kube-version that helm template accepts for the linkerd-crds
    chart: 1.23 for 2025.4.4 and 2025.10.7, and 1.31 for 2026.6.3 and
    2026.11.1.
  • make lint (markdownlint-cli 0.39.0) and make check (Hugo 0.158.0,
    htmltest) pass.

…leases

The table had drifted from the Kubernetes versions supported by the
stable releases of each Linkerd version:

- 2.15 and 2.16: maximum 1.29 -> 1.31
- 2.17: maximum 1.31 -> 1.32
- 2.18: minimum 1.22 -> 1.23. linkerd/linkerd2#13691 raised the minimum
  to 1.23 (CEL validation for the Gateway API) before version-2.18, and
  `linkerd check --pre` from 2.18 rejects Kubernetes 1.22.
- 2.19: minimum 1.22 -> 1.29 in docs/ and 2-edge/, matching the 2.19
  docs; maximum 1.35 -> 1.37
- 2.20: maximum 1.35 -> 1.37

Support for newer Kubernetes versions is now added in minor releases,
so the note under the table says that the maximum can require a later
minor release.

Applied to every versioned copy of the page (2.15-2.19, docs, 2-edge).

Signed-off-by: joedrf <joe@buoyant.io>
The kubernetes-version check section said that Linkerd requires at
least Kubernetes 1.13.0. That is below the minimum of every Linkerd
version these docs cover (2.10 already required 1.16). Point to the
supported Kubernetes versions table instead, or state the minimum
inline for 2.10-2.13, which have no such table.

In docs/ and 2-edge/, also replace the example failure with real
`linkerd check --pre` output against Kubernetes 1.30. Older versions
keep their existing example.

Signed-off-by: joedrf <joe@buoyant.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant