perform weave connect replace on node delete with empty peer list
This commit is contained in:
1 parent
ea423755cc
commit
f334575e69
2 files changed
+21
No files matched your search
@@ -3,6 +3,7 @@ package api
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
// Expose calls the router to assign the given IP addr to the weave bridge.
|
||||
@@ -10,3 +11,9 @@ func (client *Client) Expose(ipAddr *net.IPNet) error {
|
||||
_, err := client.httpVerb("POST", fmt.Sprintf("/expose/%s", ipAddr), nil)
|
||||
return err
|
||||
}
|
||||
|
||||
// ReplacePeers replace the current set of peers
|
||||
func (client *Client) ReplacePeers(peers []string) error {
|
||||
_, err := client.httpVerb("POST", "/connect", url.Values{"replace": {"true"}, "peer": peers})
|
||||
return err
|
||||
}
|
||||
@@ -201,6 +201,16 @@ func reclaimPeer(weave weaveClient, cml *configMapAnnotations, storedPeerList *p
|
||||
return true, err
|
||||
}
|
||||
|
||||
// resetPeers replaces the peers list with empty list of peers
|
||||
func resetPeers() error {
|
||||
weave := weaveapi.NewClient(os.Getenv("WEAVE_HTTP_ADDR"), common.Log)
|
||||
err := weave.ReplacePeers(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// regiesters with Kubernetes API server for node delete events. Node delete event handler
|
||||
// invokes reclaimRemovedPeers to remove it from IPAM so that IP space is reclaimed
|
||||
func registerForNodeUpdates(client *kubernetes.Clientset, stopCh <-chan struct{}, nodeName, peerName string) {
|
||||
@@ -219,6 +229,10 @@ func registerForNodeUpdates(client *kubernetes.Clientset, stopCh <-chan struct{}
|
||||
if err != nil {
|
||||
common.Log.Fatalf("[kube-peers] Error while reclaiming space: %v", err)
|
||||
}
|
||||
err = resetPeers()
|
||||
if err != nil {
|
||||
common.Log.Fatalf("[kube-peers] Error resetting peer list: %v", err)
|
||||
}
|
||||
},
|
||||
})
|
||||
informerFactory.WaitForCacheSync(stopCh)
|
||||
|
||||
Reference in new issue
Block a user