Skip to content

feat/multi provider support - #470

Merged
sven-rosenzweig merged 2 commits into
mainfrom
feat/multi_provider_support
Sep 16, 2026
Merged

sven-rosenzweig merged 2 commits into
mainfrom
feat/multi_provider_support

Conversation

@sven-rosenzweig

@sven-rosenzweig sven-rosenzweig commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Migrate to Multi Provider Support

With this commit, we do not use the provider flag anymore.
The provider func now is loaded dynamically on every reconciliation.
Requires the device.spec.provider field to be set on every device.

@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 3 times, most recently from 31d11c8 to f2aed7d Compare July 30, 2026 11:48
@github-actions github-actions Bot added size/L and removed size/XL labels Jul 30, 2026
@sven-rosenzweig sven-rosenzweig changed the title Feat/multi provider support feat/multi provider support Aug 6, 2026
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 5 times, most recently from 68eb544 to b448d2a Compare August 6, 2026 13:42
@sven-rosenzweig

Copy link
Copy Markdown
Contributor Author

Do not merge until the device.spec.provider field is introduced everywhere.

@sven-rosenzweig
sven-rosenzweig marked this pull request as ready for review August 6, 2026 13:48
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 2 times, most recently from 1dd9e0a to 33ea131 Compare August 6, 2026 13:49
Comment thread api/core/v1alpha1/device_types.go Outdated
Comment thread internal/controller/cisco/nx/bordergateway_controller.go Outdated
Comment thread api/core/v1alpha1/device_types.go Outdated
Comment thread internal/controller/core/device_controller.go Outdated
Comment thread internal/provider/provider.go Outdated
Comment thread internal/provider/provider.go Outdated
Comment thread internal/provider/provider.go
Comment thread internal/provisioning/http.go Outdated
Comment thread Tiltfile
Comment thread api/core/v1alpha1/device_types.go Outdated
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 3 times, most recently from c176384 to 12cc2bb Compare August 11, 2026 09:36
@hardikdr hardikdr added the area/switch-automation Automation processes for network switch management and operations. label Aug 21, 2026
@hardikdr hardikdr added this to Roadmap Aug 21, 2026
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 7 times, most recently from d42c3a8 to 8a3cd40 Compare September 15, 2026 08:30
Comment thread internal/controller/cisco/nx/bordergateway_controller.go Outdated
Comment thread internal/provider/provider.go
Comment thread internal/controller/evpn/fabric_controller.go Outdated
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 3 times, most recently from e291039 to cb52a49 Compare September 16, 2026 08:14
Replace 'openconfig' with 'openconfig.networking.metal.ironcore.dev'.

Signed-off-by: Sven Rosenzweig <sven.rosenzweig@sap.com>
With this commit, we do not use the provider flag anymore.
The provider func now is loaded dynamically on every reconciliation.
Requires the `device.spec.provider` field to be set on every device.

Signed-off-by: Sven Rosenzweig <sven.rosenzweig@sap.com>
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch from cb52a49 to 47109bd Compare September 16, 2026 13:31
@github-actions

Copy link
Copy Markdown

Merging this branch will decrease overall coverage

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1 2.61% (ø)
github.com/ironcore-dev/network-operator/cmd 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx 69.12% (-0.44%) 👎
github.com/ironcore-dev/network-operator/internal/controller/core 62.99% (-0.92%) 👎
github.com/ironcore-dev/network-operator/internal/controller/evpn 84.96% (-0.89%) 👎
github.com/ironcore-dev/network-operator/internal/provider 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/iosxr 37.06% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos 7.13% (ø)
github.com/ironcore-dev/network-operator/internal/provider/openconfig 9.05% (ø)
github.com/ironcore-dev/network-operator/internal/provisioning 74.07% (-0.58%) 👎
github.com/ironcore-dev/network-operator/test/gnmi 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/device_types.go 52.78% (ø) 36 19 17
github.com/ironcore-dev/network-operator/api/core/v1alpha1/groupversion_info.go 0.00% (ø) 2 0 2
github.com/ironcore-dev/network-operator/cmd/main.go 0.00% (ø) 488 (-14) 0 488 (-14)
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/bordergateway_controller.go 57.76% (-0.63%) 277 (+3) 160 117 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/system_controller.go 70.34% (-1.49%) 145 (+3) 102 43 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/vpcdomain_controller.go 81.22% (+0.31%) 245 (+4) 199 (+4) 46 👍
github.com/ironcore-dev/network-operator/internal/controller/core/aaa_controller.go 0.00% (ø) 168 (+3) 0 168 (+3)
github.com/ironcore-dev/network-operator/internal/controller/core/acl_controller.go 60.77% (-1.02%) 181 (+3) 110 71 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/banner_controller.go 61.40% (-0.87%) 215 (+3) 132 83 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_controller.go 70.63% (-1.46%) 286 (+3) 202 (-2) 84 (+5) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_peer_controller.go 60.21% (-0.48%) 377 (+3) 227 150 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/certificate_controller.go 63.13% (-0.97%) 198 (+3) 125 73 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/configbackup_controller.go 60.38% (-1.04%) 371 (+3) 224 (-2) 147 (+5) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/device_controller.go 68.40% (-1.19%) 326 (+7) 223 (+1) 103 (+6) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/dhcprelay_controller.go 67.52% (-0.65%) 314 (+3) 212 102 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/dns_controller.go 63.48% (-1.09%) 178 (+3) 113 65 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller.go 68.09% (-0.80%) 257 (+3) 175 82 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/evpninstance_controller.go 62.38% (-1.91%) 311 (+3) 194 (-4) 117 (+7) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller.go 74.14% (-0.33%) 669 (+3) 496 173 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/isis_controller.go 62.50% (-0.88%) 216 (+3) 135 81 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/lldp_controller.go 69.11% (-0.81%) 259 (+3) 179 80 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/managementaccess_controller.go 60.67% (-1.04%) 178 (+3) 108 70 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ntp_controller.go 60.67% (-1.04%) 178 (+3) 108 70 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/nve_controller.go 68.58% (-0.80%) 261 (+3) 179 82 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ospf_controller.go 64.84% (-1.16%) 256 (+3) 166 (-1) 90 (+4) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/pim_controller.go 62.15% (-0.88%) 214 (+3) 133 81 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/prefixset_controller.go 62.98% (-1.06%) 181 (+3) 114 67 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/probe_controller.go 53.56% (-0.40%) 407 (+3) 218 189 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/routingpolicy_controller.go 70.71% (-1.75%) 239 (+3) 169 (-2) 70 (+5) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/snmp_controller.go 60.67% (-1.04%) 178 (+3) 108 70 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/syslog_controller.go 60.77% (-1.02%) 181 (+3) 110 71 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/user_controller.go 59.91% (-0.86%) 212 (+3) 127 85 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vlan_controller.go 63.49% (-1.02%) 189 (+3) 120 69 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vrf_controller.go 64.04% (-1.10%) 178 (+3) 114 64 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/evpn/fabric_controller.go 84.96% (-0.89%) 838 (+4) 712 (-4) 126 (+8) 👎
github.com/ironcore-dev/network-operator/internal/provider/cisco/iosxr/provider.go 22.26% (ø) 337 75 262
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/provider.go 0.24% (ø) 3306 8 3298
github.com/ironcore-dev/network-operator/internal/provider/openconfig/provider.go 7.14% (ø) 14 1 13
github.com/ironcore-dev/network-operator/internal/provider/provider.go 0.00% (ø) 54 (+12) 0 54 (+12)
github.com/ironcore-dev/network-operator/internal/provisioning/http.go 74.07% (-0.58%) 297 (+5) 220 (+2) 77 (+3) 👎

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/internal/controller/cisco/nx/bordergateway_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/suite_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/system_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/vpcdomain_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/acl_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/banner_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/bgp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/bgp_peer_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/certificate_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/configbackup_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/device_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/dhcprelay_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/dns_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/evpninstance_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/isis_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/lldp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/managementaccess_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ntp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/nve_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ospf_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/pim_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/prefixset_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/probe_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/routingpolicy_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/snmp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/suite_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/syslog_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/user_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/vlan_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/vrf_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/evpn/fabric_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/evpn/suite_test.go
  • github.com/ironcore-dev/network-operator/internal/provisioning/http_test.go
  • github.com/ironcore-dev/network-operator/test/gnmi/gnmi_suite_test.go
  • github.com/ironcore-dev/network-operator/test/gnmi/gnmi_test.go

@sven-rosenzweig
sven-rosenzweig merged commit e886bb3 into main Sep 16, 2026
26 checks passed
@sven-rosenzweig
sven-rosenzweig deleted the feat/multi_provider_support branch September 16, 2026 13:38
@github-project-automation github-project-automation Bot moved this to Done in Roadmap Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/switch-automation Automation processes for network switch management and operations. size/L

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants