• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Mellanox / network-operator / 32228666185
63%

Build:
DEFAULT BRANCH: master
Ran 19 Aug 2026 07:40AM UTC
Jobs 1
Files 63
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Aug 2026 07:37AM UTC coverage: 63.081% (+0.6%) from 62.464%
32228666185

push

github

web-flow
feat: support meta-plugins for secondary networks (#3028)

## What

- add the optional `spec.metaPlugins` field to `MacvlanNetwork` and
`HostDeviceNetwork`
- render a CNI configuration list with the primary plugin first,
followed by the supplied meta-plugins in their original order
- preserve the existing single-plugin `NetworkAttachmentDefinition` when
`metaPlugins` is empty
- regenerate both source and Helm CRDs, and document the new field

## Why

k8s-launch-kit uses one `secondaryNetworkMetaPlugins` helper across
non-Spectrum-X secondary-network profiles. SR-IOV profiles already work
because the SR-IOV Network Operator accepts `spec.metaPlugins`, but
launch-kit also emits the same field for Macvlan RDMA-shared and
host-device profiles. Network Operator did not expose that field or
build a CNI configuration list, leaving those generated profiles unable
to use either feature.

The launch-kit use cases are:

- `profile.routing: source-based` adds the `sbr` CNI plugin so traffic
sourced from a rail IP leaves through that rail's interface and gateway.
- `profile.ignoreARP: true` adds the `tuning` CNI plugin before `sbr`,
setting `arp_ignore=1`, `arp_announce=2`, and `rp_filter=0` at both
`all` and `IFNAME` scopes. This prevents ARP flux between pod rails from
advertising one rail's IP through another rail's VF/MAC and steering
RoCE traffic to the wrong HCA.

The API and fragment format intentionally match the established SR-IOV
Network Operator contract. This is additive and backwards compatible:
without `metaPlugins`, rendered NAD configuration is unchanged.

## Testing

- `go build ./...`
- `KUBEBUILDER_ASSETS=<envtest-assets> go test ./... -count=1`
- focused MacvlanNetwork and HostDeviceNetwork state rendering tests
with the launch-kit `tuning` + `sbr` fragment
- focused MacvlanNetwork and HostDeviceNetwork controller envtests
- `make lint`
- `make check-manifests`

1 of 1 new or added line in 1 file covered. (100.0%)

13 existing lines in 5 files now uncovered.

5049 of 8004 relevant lines covered (63.08%)

45.37 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
84.54
-1.55% pkg/state/state_skel.go
2
61.95
8.85% controllers/mofed_wait_labels.go
2
69.85
20.59% controllers/nicnodepolicy_controller.go
2
73.43
0.0% pkg/state/state_ofed.go
1
81.62
0.0% controllers/nicclusterpolicy_controller.go
Jobs
ID Job ID Ran Files Coverage
1 32228666185.1 19 Aug 2026 07:40AM UTC 63
63.08
GitHub Action Run
Source Files on build 32228666185
  • Tree
  • List 63
  • Changed 7
  • Source Changed 1
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32228666185
  • b06827e0 on github
  • Prev Build on master (#32228652704)
  • Next Build on master (#32632245848)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc