delete non-existent nodes with Ready condition Unknown

This commit is contained in:
andrewsykim 2019-01-04 01:33:13 -05:00
parent 8a60166fba
commit 20c30d5cd1
2 changed files with 8 additions and 13 deletions

View File

@ -146,18 +146,6 @@ func (c *CloudNodeLifecycleController) MonitorNodes() {
continue continue
} }
// node condition is unknown so we should not try to update it
if status == v1.ConditionUnknown {
continue
}
// status for NodeReady should be false at this point, this check
// is here as a fail safe in the case a new node condition is added
// without consideration of this controller
if status != v1.ConditionFalse {
continue
}
// we need to check this first to get taint working in similar in all cloudproviders // we need to check this first to get taint working in similar in all cloudproviders
// current problem is that shutdown nodes are not working in similar way ie. all cloudproviders // current problem is that shutdown nodes are not working in similar way ie. all cloudproviders
// does not delete node from kubernetes cluster when instance it is shutdown see issue #46442 // does not delete node from kubernetes cluster when instance it is shutdown see issue #46442

View File

@ -24,6 +24,7 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/informers" "k8s.io/client-go/informers"
coreinformers "k8s.io/client-go/informers/core/v1" coreinformers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
@ -164,7 +165,9 @@ func Test_NodesDeleted(t *testing.T) {
fakeCloud: &fakecloud.FakeCloud{ fakeCloud: &fakecloud.FakeCloud{
ExistsByProviderID: false, ExistsByProviderID: false,
}, },
deleteNodes: []*v1.Node{}, deleteNodes: []*v1.Node{
testutil.NewNode("node0"),
},
}, },
{ {
name: "node ready condition is unknown, node exists", name: "node ready condition is unknown, node exists",
@ -191,7 +194,11 @@ func Test_NodesDeleted(t *testing.T) {
Clientset: fake.NewSimpleClientset(), Clientset: fake.NewSimpleClientset(),
}, },
fakeCloud: &fakecloud.FakeCloud{ fakeCloud: &fakecloud.FakeCloud{
NodeShutdown: false,
ExistsByProviderID: true, ExistsByProviderID: true,
ExtID: map[types.NodeName]string{
types.NodeName("node0"): "foo://12345",
},
}, },
deleteNodes: []*v1.Node{}, deleteNodes: []*v1.Node{},
}, },