Skip to content

[fix] CAPL dual-stack Cilium public IPv6 NodePort datapath#1050

Merged
komer3 merged 1 commit into
mainfrom
fix-dual-stack
Mar 23, 2026
Merged

[fix] CAPL dual-stack Cilium public IPv6 NodePort datapath#1050
komer3 merged 1 commit into
mainfrom
fix-dual-stack

Conversation

@komer3

@komer3 komer3 commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

What

This PR updates the CAPL manifest generation sources for dual-stack Cilium so generated kubeadm-dual-stack manifests render the correct NodePort and device settings directly in the template.

Changes included:

  • bump the shared Cilium chart default to 1.18.7
  • add explicit Cilium devices for eth0 and eth1 in the kubeadm dual-stack flavor
  • set nodePort.addresses to both 0.0.0.0/0 and ::/0
  • set nodePort.directRoutingDevice to eth0
  • remove the redundant IPv4-only --nodeport-addresses=0.0.0.0/0 CLI flag from the same generated config

Why

The generated CAPL dual-stack manifest was not carrying the full Cilium values needed for the public IPv6 NodePort datapath. It still rendered an IPv4-only --nodeport-addresses=0.0.0.0/0 flag and dropped the explicit multi-NIC NodePort settings from the generated configuration.

By moving the dual-stack NodePort settings into the rendered Cilium values template and using a single source of truth, the generated manifest now covers the public IPv6 NodePort datapath correctly. With these settings rendered directly, the intended datapaths should now all be working.

Verification

Verified by rendering the flavor locally with:

kustomize build templates/flavors/kubeadm/dual-stack

Confirmed in the rendered Cilium config:

  • version: 1.18.7
  • devices: [eth0, eth1]
  • nodePort.addresses contains both 0.0.0.0/0 and ::/0
  • nodePort.directRoutingDevice: eth0
  • no rendered --nodeport-addresses=... extra arg

Upgrade the shared Cilium chart default to 1.18.7 and update the kubeadm dual-stack flavor to render explicit multi-NIC nodePort settings in the Cilium values template.

Replace the old IPv4-only --nodeport-addresses flag with nodePort.addresses for both 0.0.0.0/0 and ::/0, add explicit devices for eth0 and eth1, and set directRoutingDevice to eth0.

This fixes the public IPv6 NodePort datapath in generated CAPL manifests. With the dual-stack values rendered directly in the template, all intended datapaths should now be covered by the generated config.
@komer3 komer3 changed the title Fix CAPL dual-stack Cilium public IPv6 NodePort datapath [fix] CAPL dual-stack Cilium public IPv6 NodePort datapath Mar 23, 2026
@komer3 komer3 added the bugfix label Mar 23, 2026
@codecov

codecov Bot commented Mar 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.88%. Comparing base (29a897c) to head (6f3adcf).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1050   +/-   ##
=======================================
  Coverage   67.88%   67.88%           
=======================================
  Files          71       71           
  Lines        6480     6480           
=======================================
  Hits         4399     4399           
  Misses       1808     1808           
  Partials      273      273           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@komer3

komer3 commented Mar 23, 2026

Copy link
Copy Markdown
Contributor Author

@komer3
komer3 merged commit 253d9f3 into main Mar 23, 2026
19 of 20 checks passed
@komer3
komer3 deleted the fix-dual-stack branch March 23, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants