Skip to content

Commit

Permalink
Merge pull request kubernetes#74389 from answer1991/sync-cni-config-i…
Browse files Browse the repository at this point in the history
…n-goroutine

sync CNI config in goroutine
  • Loading branch information
k8s-ci-robot authored Feb 23, 2019
2 parents 46d7e9c + 4fe13c2 commit b77e4e2
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
1 change: 1 addition & 0 deletions pkg/kubelet/dockershim/network/cni/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ go_library(
"//pkg/kubelet/container:go_default_library",
"//pkg/kubelet/dockershim/network:go_default_library",
"//pkg/util/bandwidth:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/github.com/containernetworking/cni/libcni:go_default_library",
"//vendor/github.com/containernetworking/cni/pkg/types:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
Expand Down
13 changes: 10 additions & 3 deletions pkg/kubelet/dockershim/network/cni/cni.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ import (
"sort"
"strings"
"sync"
"time"

"github.com/containernetworking/cni/libcni"
cnitypes "github.com/containernetworking/cni/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/klog"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2"
Expand All @@ -38,6 +40,10 @@ import (

const (
CNIPluginName = "cni"

// defaultSyncConfigPeriod is the default period to sync CNI config
// TODO: consider making this value configurable or to be a more appropriate value.
defaultSyncConfigPeriod = time.Second * 5
)

type cniNetworkPlugin struct {
Expand Down Expand Up @@ -194,6 +200,10 @@ func (plugin *cniNetworkPlugin) Init(host network.Host, hairpinMode kubeletconfi
plugin.host = host

plugin.syncNetworkConfig()

// start a goroutine to sync network config from confDir periodically to detect network config updates in every 5 seconds
go wait.Forever(plugin.syncNetworkConfig, defaultSyncConfigPeriod)

return nil
}

Expand Down Expand Up @@ -264,9 +274,6 @@ func (plugin *cniNetworkPlugin) Name() string {
}

func (plugin *cniNetworkPlugin) Status() error {
// sync network config from confDir periodically to detect network config updates
plugin.syncNetworkConfig()

// Can't set up pods if we don't have any CNI network configs yet
return plugin.checkInitialized()
}
Expand Down

0 comments on commit b77e4e2

Please sign in to comment.