[release-1.7] upgrade Longhorn to 1.11.3 (gating on Kubernetes version >= 1.34)
closes #4382 (closed)
What does this MR do and why?
This MR introduce Longhorn 1.11.3 support in Sylva 1.7 with a Kubernetes version gate.
Longhorn 1.11.3 requires Kubernetes 1.34 or newer, while Sylva 1.7 supports Kubernetes 1.33, 1.34, and 1.35. Therefore, Longhorn 1.11.3 must only be selected for Kubernetes >= 1.34.
Changes
Added the following chart versions:
Longhorn:
109.3.2+up1.11.3
Longhorn CRD:
109.3.2+up1.11.3
Added Kubernetes based selection conditions:
-
Kubernetes < 1.34 selects Longhorn 1.11.2
-
Kubernetes >= 1.34 selects Longhorn 1.11.3
The existing intermediate version remains unchanged:
Longhorn < 1.10 during an upgrade selects 1.10.2
Upgrade behavior
For an upgrade from Sylva 1.6 with Longhorn 1.9.2:
The first reconciliation selects Longhorn 1.10.2 as the required intermediate version.
After Longhorn reports version >= 1.10, the next reconciliation selects:
-
Longhorn 1.11.2 when Kubernetes is < 1.34
-
Longhorn 1.11.3 when Kubernetes is >= 1.34
pipeline logs showing intermediate upgrade logs for 1.10.2:
2026/09/07 13:49:08.780313 HelmRelease/longhorn state changed: Updated - ObservedGeneration is 2 whereas Generation is 3
2026/09/07 13:49:09.153686 HelmRelease/longhorn state changed: UpgradeSucceeded - Helm upgrade succeeded for release longhorn-system/longhorn.v3 with chart longhorn@108.2.1+up1.10.2This preserves the existing two step upgrade path and avoids upgrading directly from unsupported old Longhorn versions.
Fresh-install behavior
For a fresh Sylva 1.7 installation:
-
Kubernetes 1.33 selects Longhorn 1.11.2
-
Kubernetes 1.34 or 1.35 selects Longhorn 1.11.3
Related reference(s)
https://github.com/longhorn/longhorn/releases/tag/v1.11.3
Test coverage
CI configuration
Below you can choose test deployment variants to run in this MR's CI.
Click to open to CI configuration
Legend:
| Icon | Meaning | Available values |
|---|---|---|
| Infra Provider | capd, capo, capm3 |
|
| Bootstrap Provider | kubeadm (alias kadm), rke2, okd, ck8s |
|
| Node OS | ubuntu, suse, na, leapmicro |
|
| Deployment Options | Deployment option list and description | |
| Pipeline Scenarios | Available scenario list and description | |
| Enabled units | Any available units name, by default apply to management and workload cluster. Can be prefixed by mgmt: or wkld: to be applied only to a specific cluster type |
|
| Disabled units | Any available units name, by default apply to management and workload cluster. Can be prefixed by mgmt: or wkld: to be applied only to a specific cluster type |
|
| Target platform | Can be used to select specific deployment environment Available platform list and description | |
| Pipeline control | autorun, manual or blocking. Can be used to override global config and start a deployment pipeline the required way |
-
🎬 preview☁️ capd🚀 kadm🐧 ubuntu -
🎬 preview☁️ capo🚀 rke2🐧 suse -
🎬 preview☁️ capm3🚀 rke2🐧 ubuntu -
☁️ capd🚀 kadm🛠️ light-deploy🐧 ubuntu -
☁️ capd🚀 rke2🛠️ light-deploy🐧 suse -
☁️ capo🚀 rke2🐧 suse -
☁️ capo🚀 rke2🐧 leapmicro -
☁️ capo🚀 kadm🐧 ubuntu -
☁️ capo🚀 kadm🐧 ubuntu🟢 neuvector,mgmt:harbor -
☁️ capo🚀 rke2🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capo🚀 kadm🎬 wkld-k8s-upgrade🐧 ubuntu -
☁️ capo🚀 rke2🎬 rolling-update-no-wkld🛠️ ha🐧 suse -
☁️ capo🚀 rke2🎬 sylva-upgrade🛠️ ha🐧 ubuntu -
☁️ capo🚀 rke2🎬 sylva-upgrade-from-1.6.x🛠️ ha,misc🐧 ubuntu -
☁️ capo🚀 rke2🛠️ ha,misc🐧 ubuntu -
☁️ capo🚀 rke2🛠️ misc🐧 ubuntu🟢 mgmt:harbor🔴 neuvector -
☁️ capo🚀 rke2🛠️ ha,misc,openbao🐧 suse -
☁️ capo🚀 rke2🐧 suse🎬 upgrade-from-prev-tag -
☁️ capm3🚀 rke2🐧 suse -
☁️ capm3🚀 kadm🐧 ubuntu -
☁️ capm3🚀 ck8s🐧 ubuntu -
☁️ capm3🚀 kadm🎬 rolling-update-no-wkld🛠️ ha,misc🐧 ubuntu -
☁️ capm3🚀 rke2🎬 wkld-k8s-upgrade🛠️ ha🐧 suse -
☁️ capm3🚀 kadm🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capm3🚀 rke2🎬 upgrade-from-prev-release-branch🛠️ ha🐧 suse -
☁️ capm3🚀 rke2🛠️ misc,ha🐧 suse -
☁️ capm3🚀 rke2🎬 sylva-upgrade🛠️ ha,misc🐧 suse -
☁️ capm3🚀 kadm🎬 rolling-update🛠️ ha🐧 suse -
☁️ capm3🚀 ck8s🎬 rolling-update🛠️ ha🐧 ubuntu -
☁️ capm3🚀 rke2|okd🎬 no-update🐧 ubuntu|na -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-from-release-1.6 -
☁️ capm3🚀 rke2🐧 suse🎬 upgrade-to-main
Global config for deployment pipelines
- autorun pipelines
- allow failure on pipelines
- record sylvactl events
Notes:
- Enabling
autorunwill make deployment pipelines to be run automatically without human interaction - Disabling
allow failurewill make deployment pipelines mandatory for pipeline success. - if both
autorunandallow failureare disabled, deployment pipelines will need manual triggering but will be blocking the pipeline
Be aware: after configuration change, pipeline is not triggered automatically.
Please run it manually (by clicking the run pipeline button in Pipelines tab) or push new code.