Separate DeviceProvider into focused interfaces#364
Merged
Conversation
The E2E test built images with custom names (ironcore.dev/network-operator:test) that did not match the image reference in config/manager/manager.yaml (ghcr.io/ironcore-dev/network-operator). Since the deploy target does not override the kustomization image, the Kind cluster pulled the stale image from the registry instead of using the locally built one. Fix by using the Makefile default image names in the E2E test constants so that docker-build, kind-load, and the deployment all reference the same image. Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
Split the monolithic DeviceProvider interface into three distinct interfaces based on their concerns: - DeviceProvider: read-only device metadata (GetDeviceInfo, ListPorts, GetLastRebootTime) - MaintenanceProvider: disruptive lifecycle operations (Reboot, FactoryReset) - ProvisioningProvider: ZTP/POAP lifecycle (added Reprovision alongside existing HashProvisioningPassword and VerifyProvisioned) The DeviceController no longer hard-gates on DeviceProvider. Providers that don't implement it (e.g. openconfig) now go through a minimal reconciliation path that tracks reachability without fetching hardware metadata. Maintenance actions probe for the correct interface per operation and emit a warning event if unsupported. Fixes #278 Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
05f6786 to
68fa3ef
Compare
sven-rosenzweig
approved these changes
May 20, 2026
Merging this branch changes the coverage (1 decrease, 1 increase)
Coverage by fileChanged files (no unit tests)
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
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Split the monolithic DeviceProvider interface into three distinct interfaces based on their concerns:
The DeviceController no longer hard-gates on DeviceProvider. Providers that don't implement it (e.g. openconfig) now go through a minimal reconciliation path that tracks reachability without fetching hardware metadata. Maintenance actions probe for the correct interface per operation and emit a warning event if unsupported.
Fixes #278