diff --git a/docs/canonicalk8s/snap/howto/upgrades.md b/docs/canonicalk8s/snap/howto/upgrades.md index 076aaf1a9e..c6545d82ca 100644 --- a/docs/canonicalk8s/snap/howto/upgrades.md +++ b/docs/canonicalk8s/snap/howto/upgrades.md @@ -60,7 +60,13 @@ To upgrade to a new minor version, the snap channel needs to be changed. snap info k8s ``` -2. **Change the snap channel:** +2. **Check version specific instructions and possible manual steps** + +Please check [Upgrade notes] for any version-specific considerations or manual +steps before upgrading. + + +3. **Change the snap channel:** The {{product}} snap channel can be changed by using the `snap refresh` command. @@ -69,7 +75,7 @@ command. snap refresh --channel=1.33/stable k8s ``` -3. **Verify the upgrade:** +4. **Verify the upgrade:** Ensure that the upgrade was successful by checking the version of the snap and confirming that the cluster is ready: @@ -104,3 +110,5 @@ snap refresh k8s --hold=24h [Version Skew Policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/ [backup guide]: ./backup-restore.md [snap documentation]: https://snapcraft.io/docs/managing-updates +[Upgrade notes]: ../reference/upgrading + diff --git a/docs/canonicalk8s/snap/reference/releases.md b/docs/canonicalk8s/snap/reference/releases.md index ce006cdb8b..d06082f30d 100644 --- a/docs/canonicalk8s/snap/reference/releases.md +++ b/docs/canonicalk8s/snap/reference/releases.md @@ -13,6 +13,16 @@ and backwards-incompatible changes. /snap/reference/versions/1.32 ``` +## Upgrade notes + +Instructions on how to upgrade between versions on {{product}} + +```{toctree} +:titlesonly: +:maxdepth: 2 +/snap/reference/upgrading.md +``` + ## Release policy and schedule diff --git a/docs/canonicalk8s/snap/reference/upgrading.md b/docs/canonicalk8s/snap/reference/upgrading.md new file mode 100644 index 0000000000..6c38901698 --- /dev/null +++ b/docs/canonicalk8s/snap/reference/upgrading.md @@ -0,0 +1,55 @@ +# Upgrade notes + +## Upgrade 1.32 to 1.33 + +If you are not using dual stack networking, you can simply run: + +```bash +sudo snap refresh k8s --channel=1.33/stable +``` + +All components will be updated automatically. + +### Additional steps for dual-stack environments + +If your cluster is configured with dual stack networking (IPv4 and IPv6), +you’ll need to make a manual adjustment before refreshing. {{product}} 1.33 +includes Cilium v1.17, which introduces a stricter requirement for dual stack: +each node must report both IPv4 and IPv6 addresses to the API server. +If this is not satisfied, the Cilium agent pods will fail to start. +For each node in the cluster: + +- Update the `--node-ip` flag in the kubelet configuration file +`/var/snap/k8s/common/args/kubelet` to include both the IPv4 and IPv6 addresses +(comma-separated) from the network interface that is used to connect the node +to the cluster network: + +```bash +--node-ip=, +``` + +- Restart the `kubelet` service + +```bash +sudo systemctl restart snap.k8s.kubelet.service +``` + +- Restart the Cilium DaemonSet: + +```bash +sudo k8s kubectl rollout restart daemonset cilium -n kube-system +``` + +Now you can run the snap `refresh` command to perform the upgrade. + +### Verify the upgrade + +Check the `k8s` snap version has been updated and the cluster is back in the +`Ready` state. + +``` +snap info k8s +sudo k8s status --wait-ready +``` + +