From 2636d40c09ee07da813063414b74bbf1ab30dbd9 Mon Sep 17 00:00:00 2001 From: Gleb Kogtev Date: Sat, 15 Feb 2025 00:26:16 +0300 Subject: [PATCH 1/2] Add multusKeepConfig option Signed-off-by: Gleb Kogtev --- docs/thick-plugin.md | 4 +++- pkg/server/config/generator.go | 1 + pkg/server/config/manager.go | 7 +++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/thick-plugin.md b/docs/thick-plugin.md index a8c9eae47..8e9d83bdc 100644 --- a/docs/thick-plugin.md +++ b/docs/thick-plugin.md @@ -66,6 +66,7 @@ The server configuration is encoded in JSON, and allows the following keys: - `"socketDir"`: Specify the location where the unix domain socket used for client/server communication will be located. This is the location where the **Daemon** will read the configuration from. Defaults to `"/run/multus"`. +- `multusKeepConfig`: Specify whether to keep the generated multus CNI config or not. Defaults to `false`, which means that the multus config file (e.g. `/etc/cni/net.d/00-multus.conf` will be deleted automatically when the multus-daemon is deleted). - `"metricsPort"`: Metrics port (of multus' metric exporter); by default, no port is provided. - `"logFile"`: the path to where the daemon logs will be persisted. @@ -89,7 +90,8 @@ Below you can see an example of the daemon configuration: "cniVersion": "0.3.1", "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", - "multusAutoconfigDir": "/host/etc/cni/net.d" + "multusAutoconfigDir": "/host/etc/cni/net.d", + "multusKeepConfig": true, } ``` diff --git a/pkg/server/config/generator.go b/pkg/server/config/generator.go index a6f15977d..38a4c7764 100644 --- a/pkg/server/config/generator.go +++ b/pkg/server/config/generator.go @@ -59,6 +59,7 @@ type MultusConf struct { MultusConfigFile string `json:"multusConfigFile,omitempty"` MultusMasterCni string `json:"multusMasterCNI,omitempty"` MultusAutoconfigDir string `json:"multusAutoconfigDir,omitempty"` + MultusKeepConfig bool `json:"multusKeepConfig,omitempty"` ForceCNIVersion bool `json:"forceCNIVersion,omitempty"` OverrideNetworkName bool `json:"overrideNetworkName,omitempty"` } diff --git a/pkg/server/config/manager.go b/pkg/server/config/manager.go index 6b450c13a..92667e4f7 100644 --- a/pkg/server/config/manager.go +++ b/pkg/server/config/manager.go @@ -159,8 +159,11 @@ func (m *Manager) Start(ctx context.Context, wg *sync.WaitGroup) error { _ = logging.Errorf("error watching file: %v", err) } logging.Verbosef("ConfigWatcher done") - logging.Verbosef("Delete old config @ %v", multusConfigFile) - os.Remove(multusConfigFile) + + if !m.multusConfig.MultusKeepConfig { + logging.Verbosef("Delete old config @ %v", multusConfigFile) + os.Remove(multusConfigFile) + } }() return nil From bfc8f36cc4bcf9f0b0a8916902dac0ab83d149d9 Mon Sep 17 00:00:00 2001 From: Gleb Kogtev Date: Sat, 15 Feb 2025 00:32:52 +0300 Subject: [PATCH 2/2] gofmt --- pkg/server/config/generator.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/server/config/generator.go b/pkg/server/config/generator.go index 38a4c7764..554ead04d 100644 --- a/pkg/server/config/generator.go +++ b/pkg/server/config/generator.go @@ -59,7 +59,7 @@ type MultusConf struct { MultusConfigFile string `json:"multusConfigFile,omitempty"` MultusMasterCni string `json:"multusMasterCNI,omitempty"` MultusAutoconfigDir string `json:"multusAutoconfigDir,omitempty"` - MultusKeepConfig bool `json:"multusKeepConfig,omitempty"` + MultusKeepConfig bool `json:"multusKeepConfig,omitempty"` ForceCNIVersion bool `json:"forceCNIVersion,omitempty"` OverrideNetworkName bool `json:"overrideNetworkName,omitempty"` }