Merge pull request #30557 from freehan/cniconfig

Automatic merge from submit-queue

move syncNetworkConfig to Init for cni network plugin

start syncNetworkConfig routine in `Init` instead of probing. This fixes a bug where the syncNetworkConfig runs periodically even `cni` network plugin is not in use.
This commit is contained in:
Kubernetes Submit Queue 2016-08-13 05:58:33 -07:00 committed by GitHub
commit 7d00b427ef

View File

@ -51,6 +51,8 @@ type cniNetworkPlugin struct {
host network.Host
execer utilexec.Interface
nsenterPath string
pluginDir string
vendorCNIDirPrefix string
}
type cniNetwork struct {
@ -64,14 +66,12 @@ func probeNetworkPluginsWithVendorCNIDirPrefix(pluginDir, vendorCNIDirPrefix str
defaultNetwork: nil,
loNetwork: getLoNetwork(vendorCNIDirPrefix),
execer: utilexec.New(),
pluginDir: pluginDir,
vendorCNIDirPrefix: vendorCNIDirPrefix,
}
plugin.syncNetworkConfig(pluginDir, vendorCNIDirPrefix)
// sync network config from pluginDir periodically to detect network config updates
go wait.Forever(func() {
plugin.syncNetworkConfig(pluginDir, vendorCNIDirPrefix)
}, 10*time.Second)
// sync NetworkConfig in best effort during probing.
plugin.syncNetworkConfig()
return []network.NetworkPlugin{plugin}
}
@ -144,11 +144,16 @@ func (plugin *cniNetworkPlugin) Init(host network.Host, hairpinMode componentcon
}
plugin.host = host
// sync network config from pluginDir periodically to detect network config updates
go wait.Forever(func() {
plugin.syncNetworkConfig()
}, 10*time.Second)
return nil
}
func (plugin *cniNetworkPlugin) syncNetworkConfig(pluginDir, vendorCNIDirPrefix string) {
network, err := getDefaultCNINetwork(pluginDir, vendorCNIDirPrefix)
func (plugin *cniNetworkPlugin) syncNetworkConfig() {
network, err := getDefaultCNINetwork(plugin.pluginDir, plugin.vendorCNIDirPrefix)
if err != nil {
glog.Errorf("error updating cni config: %s", err)
return