Compare commits

..

1 Commits

Author SHA1 Message Date
Kay Yan
fe0328f38a docs: clarify Kubernetes support window (#13216)
Document the rolling three-minor Kubernetes support window and derive the README minimum version from kube_version_min_required.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-08-10 09:46:04 +00:00
4 changed files with 16 additions and 8 deletions

View File

@@ -145,11 +145,12 @@ Note:
## Container Runtime Notes ## Container Runtime Notes
- The cri-o version should be aligned with the respective kubernetes version (i.e. kube_version=1.20.x, crio_version=1.20) - The CRI-O minor version should match the Kubernetes minor version.
## Requirements ## Requirements
- **Minimum required version of Kubernetes is v1.30** - **Minimum required version of Kubernetes is v1.34.0**
- **Ansible v2.14+, Jinja 2.11+ and python-netaddr is installed on the machine that will run Ansible commands** - **Ansible v2.14+, Jinja 2.11+ and python-netaddr is installed on the machine that will run Ansible commands**
- The target servers must have **access to the Internet** in order to pull docker images. Otherwise, additional configuration is required (See [Offline Environment](docs/operations/offline-environment.md)) - The target servers must have **access to the Internet** in order to pull docker images. Otherwise, additional configuration is required (See [Offline Environment](docs/operations/offline-environment.md))
- The target servers are configured to allow **IPv4 forwarding**. - The target servers are configured to allow **IPv4 forwarding**.

View File

@@ -4,7 +4,7 @@ The Kubespray Project is released on an as-needed basis. The process is as follo
1. An issue is proposing a new release with a changelog since the last release. Please see [a good sample issue](https://github.com/kubernetes-sigs/kubespray/issues/8325) 1. An issue is proposing a new release with a changelog since the last release. Please see [a good sample issue](https://github.com/kubernetes-sigs/kubespray/issues/8325)
1. At least one of the [approvers](OWNERS_ALIASES) must approve this release 1. At least one of the [approvers](OWNERS_ALIASES) must approve this release
1. (Only for major releases) The `kube_version_min_required` variable is set to `n-1` 1. (Only for major releases) Keep Kubernetes binary checksums and per-minor component mappings for the default Kubernetes minor and the two previous minors (a support floor of `n-2`). The oldest `kubelet_checksums` entry determines `kube_version_min_required`.
1. (Only for major releases) Remove hashes for [EOL versions](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md) of kubernetes from `*_checksums` variables. 1. (Only for major releases) Remove hashes for [EOL versions](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md) of kubernetes from `*_checksums` variables.
1. Create the release note with [Kubernetes Release Notes Generator](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md). See the following `Release note creation` section for the details. 1. Create the release note with [Kubernetes Release Notes Generator](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md). See the following `Release note creation` section for the details.
1. An approver creates [new release in GitHub](https://github.com/kubernetes-sigs/kubespray/releases/new) using a version and tag name like `vX.Y.Z` and attaching the release notes 1. An approver creates [new release in GitHub](https://github.com/kubernetes-sigs/kubespray/releases/new) using a version and tag name like `vX.Y.Z` and attaching the release notes
@@ -30,10 +30,11 @@ The Kubespray Project is released on an as-needed basis. The process is as follo
which ends once the milestone is closed. Then only a next major or minor release which ends once the milestone is closed. Then only a next major or minor release
can be done. can be done.
* Kubespray major and minor releases are bound to the given `kube_version` major/minor * Kubespray major and minor releases support the default `kube_version` major/minor and
version numbers and other components' arbitrary versions, like etcd or network plugins. the two previous Kubernetes minor versions when their Kubernetes binary checksums and
Older or newer component versions are not supported and not tested for the given required per-minor component mappings are present. Other component versions are supported
release (even if included in the checksum variables, like `kubeadm_checksums`). only when selected by the corresponding version mappings; a checksum entry alone does not
imply support.
* There is no unstable releases and no APIs, thus Kubespray doesn't follow * There is no unstable releases and no APIs, thus Kubespray doesn't follow
[semver](https://semver.org/). Every version describes only a stable release. [semver](https://semver.org/). Every version describes only a stable release.

View File

@@ -2,7 +2,7 @@ ansible==11.13.0
# Prevented passlib version conflicts # Prevented passlib version conflicts
bcrypt<6 bcrypt<6
# Needed for community.crypto module # Needed for community.crypto module
cryptography==50.0.0 cryptography==49.0.0
# Needed for jinja2 json_query templating # Needed for jinja2 json_query templating
jmespath==1.1.0 jmespath==1.1.0
# Needed for ansible.utils.ipaddr # Needed for ansible.utils.ipaddr

View File

@@ -20,6 +20,12 @@
marker: '<!-- {mark} ANSIBLE MANAGED BLOCK -->' marker: '<!-- {mark} ANSIBLE MANAGED BLOCK -->'
block: "\n{{ lookup('ansible.builtin.template', 'readme_versions.md.j2') }}\n\n" block: "\n{{ lookup('ansible.builtin.template', 'readme_versions.md.j2') }}\n\n"
path: ../README.md path: ../README.md
- name: Render minimum Kubernetes version in README.md
lineinfile:
path: ../README.md
regexp: '^- \*\*Minimum required version of Kubernetes is v.*\*\*$'
line: "- **Minimum required version of Kubernetes is v{{ kube_version_min_required }}**"
insertafter: '^## Requirements$'
- name: Render Dockerfiles - name: Render Dockerfiles
template: template:
src: "{{ item }}.j2" src: "{{ item }}.j2"