underlay: sync NetworkManager IP config to OVS bridge #2949
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.
What type of this PR
Which issue(s) this PR fixes:
Fixes #(issue-number)
WHAT
🤖 Generated by Copilot at 4aa324c
This pull request adds a new feature to support NetworkManager on Linux nodes by creating a
networkManagerSyncer
type that syncs network configuration between NetworkManager and OVS bridges. It also refactors the controller code to use receiver methods instead of global functions for provider network initialization and cleanup, improving modularity and testability. The changes affect the filespkg/daemon/controller_linux.go
,pkg/daemon/controller.go
,pkg/daemon/init_linux.go
,pkg/daemon/init.go
,pkg/daemon/ovs_linux.go
,pkg/daemon/init_windows.go
, andpkg/daemon/nm_linux.go
.🤖 Generated by Copilot at 4aa324c
HOW
🤖 Generated by Copilot at 4aa324c
networkManagerSyncer
and its methods to handle the synchronization of network configuration between NetworkManager and OVS bridges on Linux nodes (link)nmSyncer *networkManagerSyncer
to theController
struct to store a reference to the network manager syncer instance (link)initRuntime
function of the controller (link)ovsInitProviderNetwork
,ovsCleanProviderNetwork
,configProviderNic
, andchangeProvideNicName
to use the receiverc *Controller
instead of global functions, making the code more modular and testable (link, link, link, link, link, link, link, link, link, link)nmSetManaged
from the filepkg/daemon/init_linux.go
as they are no longer needed (link, link)InitOVSBridges
function as it is now handled by the network manager syncer (link)configProviderNic
function (link)changeProvideNicName
function (link)