Skip to content

Add L3 port-channel support with member interface layer management#227

Open
felix-kaestner wants to merge 1 commit intomainfrom
feat/l3-port-channel
Open

Add L3 port-channel support with member interface layer management#227
felix-kaestner wants to merge 1 commit intomainfrom
feat/l3-port-channel

Conversation

@felix-kaestner
Copy link
Contributor

Enable IPv4, VRF membership, and BFD on Aggregate (port-channel) interfaces in the CRD API and NX-OS provider. Handle the member interface layer problem where NX-OS requires Physical members of an L3 port-channel to be Layer3 even without their own IP address.

  • Relax CEL validation to allow L3 config on Aggregate interfaces
  • Add AggregateParent to EnsureInterfaceRequest for member awareness
  • Set Layer3/VRF/medium on Aggregate when IPv4 is configured (NX-OS)
  • Set Layer3 on Physical members of L3 Aggregates (NX-OS)
  • Add aggregateToMembers watch with field-scoped update predicate
  • Add golden files, provider fixtures, and controller integration tests
  • Add L3 port-channel sample manifests and Tiltfile entries

@hardikdr hardikdr added the area/metal-automation Automation processes within the Metal project. label Mar 12, 2026
@hardikdr hardikdr added this to Roadmap Mar 12, 2026
@felix-kaestner felix-kaestner force-pushed the feat/l3-port-channel branch 2 times, most recently from ae2d70a to fdfe1ba Compare March 13, 2026 16:48
@felix-kaestner felix-kaestner marked this pull request as ready for review March 13, 2026 16:49
@felix-kaestner felix-kaestner requested a review from a team as a code owner March 13, 2026 16:49
@felix-kaestner felix-kaestner force-pushed the feat/l3-port-channel branch 5 times, most recently from 1e5193e to 8aec06b Compare March 15, 2026 14:28
Enable IPv4, VRF membership, and BFD on Aggregate (port-channel)
interfaces in the CRD API and NX-OS provider. Handle the member
interface layer problem where NX-OS requires Physical members of an
L3 port-channel to be Layer3 even without their own IP address.

- Relax CEL validation to allow L3 config on Aggregate interfaces
- Add AggregateParent to EnsureInterfaceRequest for member awareness
- Set Layer3/VRF/medium on Aggregate when IPv4 is configured (NX-OS)
- Set Layer3 on Physical members of L3 Aggregates (NX-OS)
- Add aggregateToMembers watch with field-scoped update predicate
- Add golden files, provider fixtures, and controller integration tests
- Add L3 port-channel sample manifests and Tiltfile entries
@github-actions
Copy link

Merging this branch will decrease overall coverage

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/controller/core 62.91% (-0.17%) 👎
github.com/ironcore-dev/network-operator/internal/provider 52.00% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos 10.67% (-0.00%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1/interface_types.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/api/core/v1alpha1/prefix_types.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller.go 73.62% (-1.38%) 417 (+25) 307 (+13) 110 (+12) 👎
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/intf.go 18.44% (+0.51%) 141 (-4) 26 115 (-4) 👍
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/provider.go 0.06% (-0.00%) 1548 (+5) 1 1547 (+5) 👎
github.com/ironcore-dev/network-operator/internal/provider/provider.go 52.00% (ø) 25 13 12

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/ironcore-dev/network-operator/api/core/v1alpha1/prefix_types_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/intf_test.go

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/metal-automation Automation processes within the Metal project.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants