Register the Node when GetNode Returns NotFound (#254)

This commit is contained in:
Robbie Zhang
2018-07-11 14:57:09 -07:00
committed by GitHub
parent 6543b0d410
commit 6723b0d719

View File

@@ -279,11 +279,18 @@ func (s *Server) Stop() {
func (s *Server) updateNode() { func (s *Server) updateNode() {
opts := metav1.GetOptions{} opts := metav1.GetOptions{}
n, err := s.k8sClient.CoreV1().Nodes().Get(s.nodeName, opts) n, err := s.k8sClient.CoreV1().Nodes().Get(s.nodeName, opts)
if err != nil { if err != nil && !errors.IsNotFound(err) {
log.Println("Failed to retrieve node:", err) log.Println("Failed to retrieve node:", err)
return return
} }
if errors.IsNotFound(err) {
if err = s.registerNode(); err != nil {
log.Println("Failed to register node:", err)
return
}
}
n.ResourceVersion = "" // Blank out resource version to prevent object has been modified error n.ResourceVersion = "" // Blank out resource version to prevent object has been modified error
n.Status.Conditions = s.provider.NodeConditions() n.Status.Conditions = s.provider.NodeConditions()
@@ -292,7 +299,7 @@ func (s *Server) updateNode() {
n.Status.Allocatable = capacity n.Status.Allocatable = capacity
n.Status.Addresses = s.provider.NodeAddresses() n.Status.Addresses = s.provider.NodeAddresses()
n, err = s.k8sClient.CoreV1().Nodes().UpdateStatus(n) n, err = s.k8sClient.CoreV1().Nodes().UpdateStatus(n)
if err != nil { if err != nil {
log.Println("Failed to update node:", err) log.Println("Failed to update node:", err)