addressing review comments
This commit is contained in:
1 parent
df467be26e
commit
4a40380d0f
1 file changed
+16
-7
+16
-7
@@ -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)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user