addressing review comments

This commit is contained in:
Murali Reddy committed 2018-10-24 13:45:35 +05:30
1 parent df467be26e
commit 4a40380d0f
1 file changed
+16 -7
+16 -7
View File
@@ -72,7 +72,8 @@ type weaveClient interface {
// For each of those peers that is no longer listed as a node by
// Kubernetes, remove it from Weave IPAM
func reclaimRemovedPeers(kube kubernetes.Interface, weave weaveClient, cml *configMapAnnotations, myPeerName, myNodeName string) error {
func reclaimRemovedPeers(kube kubernetes.Interface, cml *configMapAnnotations, myPeerName, myNodeName string) error {
weave := weaveapi.NewClient(os.Getenv("WEAVE_HTTP_ADDR"), common.Log)
for loopsWhenNothingChanged := 0; loopsWhenNothingChanged < 3; loopsWhenNothingChanged++ {
if err := cml.Init(); err != nil {
return err
@@ -209,8 +210,18 @@ func registerForNodeUpdates(client *kubernetes.Clientset, stopCh <-chan struct{}
common.Log.Debugln("registering for updates for node delete events")
nodeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
DeleteFunc: func(obj interface{}) {
node := obj.(*v1core.Node)
common.Log.Debugln("[kube-peers] Nodes deleted:", node.Name)
nodeObj, ok := obj.(*v1core.Node)
if !ok {
tombstone, ok := obj.(cache.DeletedFinalStateUnknown)
if !ok {
common.Log.Fatalf("[kube-peers] Couldn't get node object from tombstone: %#v", obj)
}
nodeObj, ok = tombstone.Obj.(*v1core.Node)
if !ok {
common.Log.Fatalf("[kube-peers] Tombstone contained object that is not a Node: %#v", obj)
}
}
common.Log.Debugln("[kube-peers] Nodes deleted:", nodeObj.Name)
config, err := rest.InClusterConfig()
if err != nil {
common.Log.Fatalf("[kube-peers] Could not get cluster config: %v", err)
@@ -220,14 +231,13 @@ func registerForNodeUpdates(client *kubernetes.Clientset, stopCh <-chan struct{}
common.Log.Fatalf("[kube-peers] Could not make Kubernetes connection: %v", err)
}
cml := newConfigMapAnnotations(configMapNamespace, configMapName, client)
weave := weaveapi.NewClient(os.Getenv("WEAVE_HTTP_ADDR"), common.Log)
// add random delay to avoid all nodes acting on node delete event at the same
// time leading to contention to use `weave-net` configmap
r := rand.Intn(5000)
time.Sleep(time.Duration(r) * time.Millisecond)
err = reclaimRemovedPeers(client, weave, cml, peerName, nodeName)
err = reclaimRemovedPeers(client, cml, peerName, nodeName)
if err != nil {
common.Log.Fatalf("[kube-peers] Error while reclaiming space: %v", err)
}
@@ -296,8 +306,7 @@ func main() {
}
common.Log.Infoln("[kube-peers] Added myself to peer list", list)
weave := weaveapi.NewClient(os.Getenv("WEAVE_HTTP_ADDR"), common.Log)
err = reclaimRemovedPeers(c, weave, cml, peerName, nodeName)
err = reclaimRemovedPeers(c, cml, peerName, nodeName)
if err != nil {
common.Log.Fatalf("[kube-peers] Error while reclaiming space: %v", err)
}