Skip to content

Bump default CNI config cniVersion to 1.0.0 - #2526

Open
tsorya wants to merge 1 commit into
flannel-io:masterfrom
tsorya:bump-cni-version-1.0.0
Open

Bump default CNI config cniVersion to 1.0.0#2526
tsorya wants to merge 1 commit into
flannel-io:masterfrom
tsorya:bump-cni-version-1.0.0

Conversation

@tsorya

@tsorya tsorya commented Aug 7, 2026

Copy link
Copy Markdown

What

Raise the cniVersion declared in the default CNI configuration from 0.3.1 to 1.0.0 in all shipped manifests and the Helm chart.

Why

OpenShift 4.23+ upgraded multus to CNI spec 1.1.0, which requires delegate plugins to declare cniVersion >= 0.4.0. Flannel's manifests still declared 0.3.1, causing multus to crash on startup:

failed to load the primary CNI configuration as a multus delegate
with error 'delegate cni version is 0.3.1 while top level cni version is 1.1.0'

Files changed

  • Documentation/kube-flannel.yml
  • Documentation/kustomization/kube-flannel/kube-flannel.yml
  • Documentation/minikube.yml
  • chart/kube-flannel/values.yaml

Why it's safe

  • Every supported container runtime accepts 1.0.0 configs (containerd ≥ 1.6, CRI-O ≥ 1.24)
  • The flannel CNI plugin (flannel-io/cni-plugin) already supports CNI spec 1.0.0
  • Existing pod attachments are unaffected on upgrade: the runtime caches each attachment's config and replays the original cniVersion at DEL time

Reference

Testing

  • OpenShift 4.23+ with multus 1.1.0 — flannel as primary CNI
  • Standard kubeadm cluster — no regression
  • Upgrade path 0.3.1 → 1.0.0 — existing pods unaffected

OpenShift 4.23+ upgraded multus to CNI spec 1.1.0, which requires
delegate plugins to declare cniVersion >= 0.4.0. Flannel's manifests
and Helm chart still declared 0.3.1, causing multus to crash on
startup:

  failed to load the primary CNI configuration as a multus delegate
  with error 'delegate cni version is 0.3.1 while top level cni
  version is 1.1.0'

Raise the declared cniVersion from 0.3.1 to 1.0.0 in all shipped
configurations:
- Documentation/kube-flannel.yml
- Documentation/kustomization/kube-flannel/kube-flannel.yml
- Documentation/minikube.yml
- chart/kube-flannel/values.yaml

This is safe because:
- Every supported container runtime accepts 1.0.0 configs
  (containerd >= 1.6, CRI-O >= 1.24)
- The flannel CNI plugin (github.com/flannel-io/cni-plugin) already
  supports CNI spec 1.0.0
- Existing pod attachments are unaffected on upgrade: the runtime
  caches each attachment's config and replays the original cniVersion
  at DEL time

Reference: projectcalico/calico#12965, projectcalico/calico#13352
(same fix applied to Calico). Cilium already shipped 1.1.0 support
via cilium/cilium#37028.

Signed-off-by: Igal Tsoiref <itsoiref@redhat.com>
@tsorya
tsorya marked this pull request as ready for review August 10, 2026 23:41
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.

2 participants