···1# RKE2 Version
23-RKE2, Kubernetes, and other clustered software has the property of not being able to update atomically.
4-Most software in nixpkgs, like for example bash, can be updated as part of a `nixos-rebuild switch`
5-without having to worry about the old and the new bash interacting in some way.
0000000067> [!NOTE]
8-> Upgrade the server nodes first, one at a time. Once all servers have been upgraded, you may then upgrade agent nodes.
0910## Release Channels
1112-RKE2 has three main release channels, which are: `stable`, `latest` and `testing`.
01314-The `stable` channel is the default channel and is recommended for production use.
15-The `latest` channel is the latest release.
16-The `testing` channel is the latest release, including pre-releases.
1718-| Channel | Description |
19-| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20-| `stable` | **(Default)** Stable is recommended for production environments. These releases have been through a period of community hardening, and are compatible with the most recent release of Rancher. |
21-| `latest` | Latest is recommended for trying out the latest features. These releases have not yet been through a period of community hardening, and may not be compatible with Rancher. |
22-| `testing` | The most recent release, including pre-releases. |
2324-Learn more about the [RKE2 release channels](https://docs.rke2.io/upgrade/manual_upgrade).
02526-For an exhaustive and up-to-date list of channels, you can visit the
27-[rke2 channel service API](https://update.rke2.io/v1-release/channels).
28-For more technical details on how channels work, you can see the [channelserver project](https://github.com/rancher/channelserver).
2930-> [!TIP]
31-> When attempting to upgrade to a new version of RKE2,
32-> the [Kubernetes version skew policy](https://kubernetes.io/docs/setup/release/version-skew-policy) applies.
33-> Ensure that your plan **does not skip intermediate minor versions** when upgrading. Nothing in the upgrade process will
34-> protect you against unsupported changes to the Kubernetes version.
000
···1# RKE2 Version
23+RKE2, Kubernetes, and other clustered software has the property of not being able to update
4+atomically. Most software in nixpkgs, like for example bash, can be updated as part of a
5+`nixos-rebuild switch` without having to worry about the old and the new bash interacting in some
6+way. RKE2/Kubernetes, on the other hand, is typically run across several machines, and each machine
7+is updated independently. As such, different versions of the package and NixOS module must maintain
8+compatibility with each other through temporary version skew during updates. The upstream Kubernetes
9+project documents this in their
10+[version-skew policy](https://kubernetes.io/releases/version-skew-policy/#supported-component-upgrade-order).
11+12+Within nixpkgs, we strive to maintain a valid "upgrade path" that does not run afoul of the upstream
13+version skew policy.
1415> [!NOTE]
16+> Upgrade the server nodes first, one at a time. Once all servers have been upgraded, you may then
17+> upgrade agent nodes.
1819## Release Channels
2021+RKE2 has two named release channels, i.e. `stable` and `latest`. Additionally, there exists a
22+release channel tied to each Kubernetes minor version, e.g. `v1.32`.
2324+Nixpkgs follows active minor version release channels (typically 4 at a time) and sets aliases for
25+`rke2_stable` and `rke2_latest` accordingly.
02627+Patch releases should be backported to to the latest stable release branch, however, new minor
28+versions are not backported.
0002930+For further information visit the
31+[RKE2 release channels documentation](https://docs.rke2.io/upgrades/manual_upgrade?_highlight=manua#release-channels).
3233+## EOL Versions
003435+Approximately every 4 months a minor RKE2 version reaches EOL. EOL versions should be removed from
36+`nixpkgs-unstable`, preferably by throwing with an explanatory message in
37+`pkgs/top-level/aliases.nix`. With stable releases, however, it isn't expected that packages will be
38+removed. Instead we set `meta.knownVulnerabilities` for stable EOL packages, like it is also done
39+for EOL JDKs, browser engines, Node.js versions, etc.
40+41+For further information on the RKE2 lifecycle, see the
42+[SUSE Product Support Lifecycle page](https://www.suse.com/lifecycle#rke2).
···1291 ring-daemon = throw "'ring-daemon' has been renamed to/replaced by 'jami-daemon'"; # Converted to throw 2024-10-17
1292 rippled = throw "rippled has been removed as it was broken and had not been updated since 2022"; # Added 2024-11-25
1293 rippled-validator-keys-tool = throw "rippled-validator-keys-tool has been removed as it was broken and had not been updated since 2022"; # Added 2024-11-25
01294 rockbox_utility = rockbox-utility; # Added 2022-03-17
1295 rnix-hashes = throw "'rnix-hashes' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
1296 rpiboot-unstable = throw "'rpiboot-unstable' has been renamed to/replaced by 'rpiboot'"; # Converted to throw 2024-10-17
···1291 ring-daemon = throw "'ring-daemon' has been renamed to/replaced by 'jami-daemon'"; # Converted to throw 2024-10-17
1292 rippled = throw "rippled has been removed as it was broken and had not been updated since 2022"; # Added 2024-11-25
1293 rippled-validator-keys-tool = throw "rippled-validator-keys-tool has been removed as it was broken and had not been updated since 2022"; # Added 2024-11-25
1294+ rke2_testing = throw "'rke2_testing' has been removed from nixpkgs as the RKE2 testing channel no longer serves releases"; # Added 2025-06-02
1295 rockbox_utility = rockbox-utility; # Added 2022-03-17
1296 rnix-hashes = throw "'rnix-hashes' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
1297 rpiboot-unstable = throw "'rpiboot-unstable' has been renamed to/replaced by 'rpiboot'"; # Converted to throw 2024-10-17