From 0639d7e91a28108105694a7d729e7840b7251269 Mon Sep 17 00:00:00 2001 From: Paul Morie Date: Fri, 2 Sep 2016 17:01:43 -0400 Subject: [PATCH 1/2] UPSTREAM: 32000: Update node status instead of node in kubelet --- vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go | 2 +- vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index 259385ab9838..20720d486f80 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -1219,7 +1219,7 @@ func (kl *Kubelet) tryRegisterWithApiServer(node *api.Node) bool { // annotation. requiresUpdate := kl.reconcileCMADAnnotationWithExistingNode(node, existingNode) if requiresUpdate { - if _, err := kl.kubeClient.Core().Nodes().Update(existingNode); err != nil { + if _, err := kl.kubeClient.Core().Nodes().UpdateStatus(existingNode); err != nil { glog.Errorf("Unable to reconcile node %q with API server: error updating node: %v", kl.nodeName, err) return false } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go index 523627c6f7f2..8eee61fcb09c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go @@ -4096,13 +4096,17 @@ func TestTryRegisterWithApiServer(t *testing.T) { // Return an existing (matching) node on get. return true, tc.existingNode, tc.getError }) - kubeClient.AddReactor("update", "nodes", func(action core.Action) (bool, runtime.Object, error) { - return true, nil, tc.updateError + kubeClient.AddReactor("update", "*", func(action core.Action) (bool, runtime.Object, error) { + if action.GetResource().Resource == "nodes" && action.GetSubresource() == "status" { + return true, nil, tc.updateError + } + return true, nil, fmt.Errorf("no reaction implemented for %s", action) }) kubeClient.AddReactor("delete", "nodes", func(action core.Action) (bool, runtime.Object, error) { return true, nil, tc.deleteError }) kubeClient.AddReactor("*", "*", func(action core.Action) (bool, runtime.Object, error) { + t.Logf("no reaction implemented for %s", action) return true, nil, fmt.Errorf("no reaction implemented for %s", action) }) From d1bc56ce7d7d643eb457efeabb2982a9aac6be64 Mon Sep 17 00:00:00 2001 From: Paul Morie Date: Fri, 2 Sep 2016 17:04:56 -0400 Subject: [PATCH 2/2] UPSTREAM: : Tolerate node ExternalID changes with no cloud provider --- vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index 20720d486f80..27e5b53c0fdb 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -1242,7 +1242,7 @@ func (kl *Kubelet) tryRegisterWithApiServer(node *api.Node) bool { // controller-managed attach detach annotation for this node. requiresUpdate := kl.reconcileCMADAnnotationWithExistingNode(node, existingNode) if requiresUpdate { - if _, err := kl.kubeClient.Core().Nodes().Update(existingNode); err != nil { + if _, err := kl.kubeClient.Core().Nodes().UpdateStatus(existingNode); err != nil { glog.Errorf("Unable to reconcile node %q with API server: error updating node: %v", kl.nodeName, err) return false }