Skip to content

feat/multi provider support - #470

Open
sven-rosenzweig wants to merge 2 commits into
mainfrom
feat/multi_provider_support
Open

feat/multi provider support#470
sven-rosenzweig wants to merge 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

// Provider is the driver that will be used to create & delete the interface.
Provider provider.ProviderFunc
// Provider provider.ProviderFunc

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why commented out?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftover of my development process. No sepcific reason for this.

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
ValidateSourceIP bool
Provider provider.ProvisioningProvider
Port int
// Provider provider.ProvisioningProvider

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why commented out?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No specific reason.

Comment thread Tiltfile
Comment thread api/core/v1alpha1/device_types.go Outdated
Replace 'openconfig' with 'openconfig.networking.metal.ironcore.dev'.

Signed-off-by: Sven Rosenzweig <sven.rosenzweig@sap.com>
@sven-rosenzweig
sven-rosenzweig force-pushed the feat/multi_provider_support branch 2 times, most recently from 205ce1c to c176384 Compare August 11, 2026 09:28
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 c176384 to 12cc2bb Compare August 11, 2026 09:36
@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 1.72% (ø)
github.com/ironcore-dev/network-operator/cmd 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx 63.94% (-1.12%) 👎
github.com/ironcore-dev/network-operator/internal/controller/core 60.73% (-0.79%) 👎
github.com/ironcore-dev/network-operator/internal/provider 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/iosxr 34.90% (ø)
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos 9.26% (ø)
github.com/ironcore-dev/network-operator/internal/provider/openconfig 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/provisioning 75.41% (-0.74%) 👎

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 48.48% (ø) 33 16 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% (ø) 300 (-8) 0 300 (-8)
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/bordergateway_controller.go 52.70% (-0.27%) 241 (+5) 127 (+2) 114 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/system_controller.go 64.46% (-1.05%) 121 (+5) 78 (+2) 43 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/vpcdomain_controller.go 76.42% (-2.23%) 212 (+6) 162 50 (+6) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/aaa_controller.go 0.00% (ø) 142 (+3) 0 142 (+3)
github.com/ironcore-dev/network-operator/internal/controller/core/acl_controller.go 56.94% (-1.21%) 144 (+3) 82 62 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/banner_controller.go 56.98% (-1.01%) 172 (+3) 98 74 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_controller.go 69.58% (-0.04%) 240 (+3) 167 (+2) 73 (+1) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_peer_controller.go 57.54% (-0.54%) 325 (+3) 187 138 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/certificate_controller.go 58.23% (-1.13%) 158 (+3) 92 66 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/configbackup_controller.go 62.50% (-0.41%) 216 (+3) 135 (+1) 81 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/device_controller.go 62.50% (-1.27%) 272 (+7) 170 (+1) 102 (+6) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/dhcprelay_controller.go 65.13% (-0.76%) 261 (+3) 170 91 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/dns_controller.go 60.28% (-1.31%) 141 (+3) 85 56 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller.go 65.40% (-0.94%) 211 (+3) 138 73 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/evpninstance_controller.go 60.85% (+1.24%) 258 (+3) 157 (+5) 101 (-2) 👍
github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller.go 71.11% (-0.54%) 585 (+3) 416 (-1) 169 (+4) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/isis_controller.go 59.09% (-1.02%) 176 (+3) 104 72 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/lldp_controller.go 68.64% (-0.95%) 220 (+3) 151 69 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/managementaccess_controller.go 56.74% (-1.23%) 141 (+3) 80 61 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ntp_controller.go 56.74% (-1.23%) 141 (+3) 80 61 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/nve_controller.go 67.12% (-0.47%) 219 (+3) 147 (+1) 72 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ospf_controller.go 58.94% (-0.87%) 207 (+3) 122 85 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/pim_controller.go 58.62% (-1.03%) 174 (+3) 102 72 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/prefixset_controller.go 60.42% (-0.58%) 144 (+3) 87 (+1) 57 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/routingpolicy_controller.go 65.98% (-1.56%) 194 (+3) 128 (-1) 66 (+4) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/snmp_controller.go 56.74% (-1.23%) 141 (+3) 80 61 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/syslog_controller.go 56.94% (-1.21%) 144 (+3) 82 62 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/user_controller.go 55.81% (-0.99%) 172 (+3) 96 76 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vlan_controller.go 60.78% (-1.22%) 153 (+3) 93 60 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vrf_controller.go 60.99% (-1.33%) 141 (+3) 86 55 (+3) 👎
github.com/ironcore-dev/network-operator/internal/provider/cisco/iosxr/provider.go 21.08% (ø) 223 47 176
github.com/ironcore-dev/network-operator/internal/provider/cisco/nxos/provider.go 0.38% (ø) 2127 8 2119
github.com/ironcore-dev/network-operator/internal/provider/openconfig/provider.go 0.00% (ø) 14 0 14
github.com/ironcore-dev/network-operator/internal/provider/provider.go 0.00% (ø) 55 (+13) 0 55 (+13)
github.com/ironcore-dev/network-operator/internal/provisioning/http.go 75.41% (-0.74%) 244 (+5) 184 (+2) 60 (+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/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/provisioning/http_test.go

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