Skip to content

Commit 4cd759d

Browse files
authored
Merge pull request kubernetes#73001 from shivnagarajan/remove_deprecated_taints
remove remaining deprecated taints from 1.9
2 parents 00eab3c + 36ee154 commit 4cd759d

File tree

4 files changed

+0
-354
lines changed

4 files changed

+0
-354
lines changed

pkg/controller/nodelifecycle/node_lifecycle_controller.go

-49
Original file line numberDiff line numberDiff line change
@@ -370,17 +370,6 @@ func NewNodeLifecycleController(
370370
})
371371
}
372372

373-
// NOTE(resouer): nodeInformer to substitute deprecated taint key (notReady -> not-ready).
374-
// Remove this logic when we don't need this backwards compatibility
375-
nodeInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
376-
AddFunc: nodeutil.CreateAddNodeHandler(func(node *v1.Node) error {
377-
return nc.doFixDeprecatedTaintKeyPass(node)
378-
}),
379-
UpdateFunc: nodeutil.CreateUpdateNodeHandler(func(_, newNode *v1.Node) error {
380-
return nc.doFixDeprecatedTaintKeyPass(newNode)
381-
}),
382-
})
383-
384373
nc.leaseLister = leaseInformer.Lister()
385374
if utilfeature.DefaultFeatureGate.Enabled(features.NodeLease) {
386375
nc.leaseInformerSynced = leaseInformer.Informer().HasSynced
@@ -448,44 +437,6 @@ func (nc *Controller) Run(stopCh <-chan struct{}) {
448437
<-stopCh
449438
}
450439

451-
// doFixDeprecatedTaintKeyPass checks and replaces deprecated taint key with proper key name if needed.
452-
func (nc *Controller) doFixDeprecatedTaintKeyPass(node *v1.Node) error {
453-
taintsToAdd := []*v1.Taint{}
454-
taintsToDel := []*v1.Taint{}
455-
456-
for _, taint := range node.Spec.Taints {
457-
if taint.Key == schedulerapi.DeprecatedTaintNodeNotReady {
458-
tDel := taint
459-
taintsToDel = append(taintsToDel, &tDel)
460-
461-
tAdd := taint
462-
tAdd.Key = schedulerapi.TaintNodeNotReady
463-
taintsToAdd = append(taintsToAdd, &tAdd)
464-
}
465-
466-
if taint.Key == schedulerapi.DeprecatedTaintNodeUnreachable {
467-
tDel := taint
468-
taintsToDel = append(taintsToDel, &tDel)
469-
470-
tAdd := taint
471-
tAdd.Key = schedulerapi.TaintNodeUnreachable
472-
taintsToAdd = append(taintsToAdd, &tAdd)
473-
}
474-
}
475-
476-
if len(taintsToAdd) == 0 && len(taintsToDel) == 0 {
477-
return nil
478-
}
479-
480-
klog.Warningf("Detected deprecated taint keys: %v on node: %v, will substitute them with %v",
481-
taintsToDel, node.GetName(), taintsToAdd)
482-
483-
if !nodeutil.SwapNodeControllerTaint(nc.kubeClient, taintsToAdd, taintsToDel, node) {
484-
return fmt.Errorf("failed to swap taints of node %+v", node)
485-
}
486-
return nil
487-
}
488-
489440
func (nc *Controller) doNoScheduleTaintingPassWorker() {
490441
for {
491442
obj, shutdown := nc.nodeUpdateQueue.Get()

pkg/controller/nodelifecycle/node_lifecycle_controller_test.go

-165
Original file line numberDiff line numberDiff line change
@@ -2911,168 +2911,3 @@ func TestNodeEventGeneration(t *testing.T) {
29112911
}
29122912
}
29132913
}
2914-
2915-
// TestFixDeprecatedTaintKey verifies we have backwards compatibility after upgraded alpha taint key to GA taint key.
2916-
// TODO(resouer): this is introduced in 1.9 and should be removed in the future.
2917-
func TestFixDeprecatedTaintKey(t *testing.T) {
2918-
fakeNow := metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC)
2919-
evictionTimeout := 10 * time.Minute
2920-
2921-
fakeNodeHandler := &testutil.FakeNodeHandler{
2922-
Existing: []*v1.Node{
2923-
{
2924-
ObjectMeta: metav1.ObjectMeta{
2925-
Name: "node0",
2926-
CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
2927-
Labels: map[string]string{
2928-
kubeletapis.LabelZoneRegion: "region1",
2929-
kubeletapis.LabelZoneFailureDomain: "zone1",
2930-
},
2931-
},
2932-
},
2933-
},
2934-
Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}),
2935-
}
2936-
2937-
nodeController, _ := newNodeLifecycleControllerFromClient(
2938-
fakeNodeHandler,
2939-
evictionTimeout,
2940-
testRateLimiterQPS,
2941-
testRateLimiterQPS,
2942-
testLargeClusterThreshold,
2943-
testUnhealthyThreshold,
2944-
testNodeMonitorGracePeriod,
2945-
testNodeStartupGracePeriod,
2946-
testNodeMonitorPeriod,
2947-
true)
2948-
nodeController.now = func() metav1.Time { return fakeNow }
2949-
nodeController.recorder = testutil.NewFakeRecorder()
2950-
2951-
deprecatedNotReadyTaint := &v1.Taint{
2952-
Key: schedulerapi.DeprecatedTaintNodeNotReady,
2953-
Effect: v1.TaintEffectNoExecute,
2954-
}
2955-
2956-
nodeNotReadyTaint := &v1.Taint{
2957-
Key: schedulerapi.TaintNodeNotReady,
2958-
Effect: v1.TaintEffectNoExecute,
2959-
}
2960-
2961-
deprecatedUnreachableTaint := &v1.Taint{
2962-
Key: schedulerapi.DeprecatedTaintNodeUnreachable,
2963-
Effect: v1.TaintEffectNoExecute,
2964-
}
2965-
2966-
nodeUnreachableTaint := &v1.Taint{
2967-
Key: schedulerapi.TaintNodeUnreachable,
2968-
Effect: v1.TaintEffectNoExecute,
2969-
}
2970-
2971-
tests := []struct {
2972-
Name string
2973-
Node *v1.Node
2974-
ExpectedTaints []*v1.Taint
2975-
}{
2976-
{
2977-
Name: "Node with deprecated not-ready taint key",
2978-
Node: &v1.Node{
2979-
ObjectMeta: metav1.ObjectMeta{
2980-
Name: "node0",
2981-
CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
2982-
Labels: map[string]string{
2983-
kubeletapis.LabelZoneRegion: "region1",
2984-
kubeletapis.LabelZoneFailureDomain: "zone1",
2985-
},
2986-
},
2987-
Spec: v1.NodeSpec{
2988-
Taints: []v1.Taint{
2989-
*deprecatedNotReadyTaint,
2990-
},
2991-
},
2992-
},
2993-
ExpectedTaints: []*v1.Taint{nodeNotReadyTaint},
2994-
},
2995-
{
2996-
Name: "Node with deprecated unreachable taint key",
2997-
Node: &v1.Node{
2998-
ObjectMeta: metav1.ObjectMeta{
2999-
Name: "node0",
3000-
CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
3001-
Labels: map[string]string{
3002-
kubeletapis.LabelZoneRegion: "region1",
3003-
kubeletapis.LabelZoneFailureDomain: "zone1",
3004-
},
3005-
},
3006-
Spec: v1.NodeSpec{
3007-
Taints: []v1.Taint{
3008-
*deprecatedUnreachableTaint,
3009-
},
3010-
},
3011-
},
3012-
ExpectedTaints: []*v1.Taint{nodeUnreachableTaint},
3013-
},
3014-
{
3015-
Name: "Node with not-ready taint key",
3016-
Node: &v1.Node{
3017-
ObjectMeta: metav1.ObjectMeta{
3018-
Name: "node0",
3019-
CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
3020-
Labels: map[string]string{
3021-
kubeletapis.LabelZoneRegion: "region1",
3022-
kubeletapis.LabelZoneFailureDomain: "zone1",
3023-
},
3024-
},
3025-
Spec: v1.NodeSpec{
3026-
Taints: []v1.Taint{
3027-
*nodeNotReadyTaint,
3028-
},
3029-
},
3030-
},
3031-
ExpectedTaints: []*v1.Taint{nodeNotReadyTaint},
3032-
},
3033-
{
3034-
Name: "Node with unreachable taint key",
3035-
Node: &v1.Node{
3036-
ObjectMeta: metav1.ObjectMeta{
3037-
Name: "node0",
3038-
CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
3039-
Labels: map[string]string{
3040-
kubeletapis.LabelZoneRegion: "region1",
3041-
kubeletapis.LabelZoneFailureDomain: "zone1",
3042-
},
3043-
},
3044-
Spec: v1.NodeSpec{
3045-
Taints: []v1.Taint{
3046-
*nodeUnreachableTaint,
3047-
},
3048-
},
3049-
},
3050-
ExpectedTaints: []*v1.Taint{nodeUnreachableTaint},
3051-
},
3052-
}
3053-
3054-
for _, test := range tests {
3055-
fakeNodeHandler.Update(test.Node)
3056-
if err := nodeController.syncNodeStore(fakeNodeHandler); err != nil {
3057-
t.Errorf("unexpected error: %v", err)
3058-
}
3059-
nodeController.doFixDeprecatedTaintKeyPass(test.Node)
3060-
if err := nodeController.syncNodeStore(fakeNodeHandler); err != nil {
3061-
t.Errorf("unexpected error: %v", err)
3062-
}
3063-
node, err := nodeController.nodeLister.Get(test.Node.GetName())
3064-
if err != nil {
3065-
t.Errorf("Can't get current node...")
3066-
return
3067-
}
3068-
if len(node.Spec.Taints) != len(test.ExpectedTaints) {
3069-
t.Errorf("%s: Unexpected number of taints: expected %d, got %d",
3070-
test.Name, len(test.ExpectedTaints), len(node.Spec.Taints))
3071-
}
3072-
for _, taint := range test.ExpectedTaints {
3073-
if !taintutils.TaintExists(node.Spec.Taints, taint) {
3074-
t.Errorf("%s: Can't find taint %v in %v", test.Name, taint, node.Spec.Taints)
3075-
}
3076-
}
3077-
}
3078-
}

pkg/scheduler/api/well_known_labels.go

-8
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,12 @@ const (
2626
// and removed when node becomes ready.
2727
TaintNodeNotReady = "node.kubernetes.io/not-ready"
2828

29-
// DeprecatedTaintNodeNotReady is the deprecated version of TaintNodeNotReady.
30-
// It is deprecated since 1.9
31-
DeprecatedTaintNodeNotReady = "node.alpha.kubernetes.io/notReady"
32-
3329
// TaintNodeUnreachable will be added when node becomes unreachable
3430
// (corresponding to NodeReady status ConditionUnknown)
3531
// and feature-gate for TaintBasedEvictions flag is enabled,
3632
// and removed when node becomes reachable (NodeReady status ConditionTrue).
3733
TaintNodeUnreachable = "node.kubernetes.io/unreachable"
3834

39-
// DeprecatedTaintNodeUnreachable is the deprecated version of TaintNodeUnreachable.
40-
// It is deprecated since 1.9
41-
DeprecatedTaintNodeUnreachable = "node.alpha.kubernetes.io/unreachable"
42-
4335
// TaintNodeUnschedulable will be added when node becomes unschedulable
4436
// and feature-gate for TaintNodesByCondition flag is enabled,
4537
// and removed when node becomes scheduable.

plugin/pkg/admission/defaulttolerationseconds/admission_test.go

-132
Original file line numberDiff line numberDiff line change
@@ -63,138 +63,6 @@ func TestForgivenessAdmission(t *testing.T) {
6363
},
6464
},
6565
},
66-
{
67-
description: "pod has alpha tolerations, expect add tolerations for `not-ready:NoExecute` and `unreachable:NoExecute`" +
68-
", the alpha tolerations will not be touched",
69-
requestedPod: api.Pod{
70-
Spec: api.PodSpec{
71-
Tolerations: []api.Toleration{
72-
{
73-
Key: schedulerapi.DeprecatedTaintNodeNotReady,
74-
Operator: api.TolerationOpExists,
75-
Effect: api.TaintEffectNoExecute,
76-
TolerationSeconds: &defaultTolerationSeconds,
77-
},
78-
{
79-
Key: schedulerapi.DeprecatedTaintNodeUnreachable,
80-
Operator: api.TolerationOpExists,
81-
Effect: api.TaintEffectNoExecute,
82-
TolerationSeconds: &defaultTolerationSeconds,
83-
},
84-
},
85-
},
86-
},
87-
expectedPod: api.Pod{
88-
Spec: api.PodSpec{
89-
Tolerations: []api.Toleration{
90-
{
91-
Key: schedulerapi.DeprecatedTaintNodeNotReady,
92-
Operator: api.TolerationOpExists,
93-
Effect: api.TaintEffectNoExecute,
94-
TolerationSeconds: &defaultTolerationSeconds,
95-
},
96-
{
97-
Key: schedulerapi.DeprecatedTaintNodeUnreachable,
98-
Operator: api.TolerationOpExists,
99-
Effect: api.TaintEffectNoExecute,
100-
TolerationSeconds: &defaultTolerationSeconds,
101-
},
102-
{
103-
Key: schedulerapi.TaintNodeNotReady,
104-
Operator: api.TolerationOpExists,
105-
Effect: api.TaintEffectNoExecute,
106-
TolerationSeconds: &defaultTolerationSeconds,
107-
},
108-
{
109-
Key: schedulerapi.TaintNodeUnreachable,
110-
Operator: api.TolerationOpExists,
111-
Effect: api.TaintEffectNoExecute,
112-
TolerationSeconds: &defaultTolerationSeconds,
113-
},
114-
},
115-
},
116-
},
117-
},
118-
{
119-
description: "pod has alpha not-ready toleration, expect add tolerations for `not-ready:NoExecute` and `unreachable:NoExecute`" +
120-
", the alpha tolerations will not be touched",
121-
requestedPod: api.Pod{
122-
Spec: api.PodSpec{
123-
Tolerations: []api.Toleration{
124-
{
125-
Key: schedulerapi.DeprecatedTaintNodeNotReady,
126-
Operator: api.TolerationOpExists,
127-
Effect: api.TaintEffectNoExecute,
128-
TolerationSeconds: &defaultTolerationSeconds,
129-
},
130-
},
131-
},
132-
},
133-
expectedPod: api.Pod{
134-
Spec: api.PodSpec{
135-
Tolerations: []api.Toleration{
136-
{
137-
Key: schedulerapi.DeprecatedTaintNodeNotReady,
138-
Operator: api.TolerationOpExists,
139-
Effect: api.TaintEffectNoExecute,
140-
TolerationSeconds: &defaultTolerationSeconds,
141-
},
142-
{
143-
Key: schedulerapi.TaintNodeNotReady,
144-
Operator: api.TolerationOpExists,
145-
Effect: api.TaintEffectNoExecute,
146-
TolerationSeconds: &defaultTolerationSeconds,
147-
},
148-
{
149-
Key: schedulerapi.TaintNodeUnreachable,
150-
Operator: api.TolerationOpExists,
151-
Effect: api.TaintEffectNoExecute,
152-
TolerationSeconds: &defaultTolerationSeconds,
153-
},
154-
},
155-
},
156-
},
157-
},
158-
{
159-
description: "pod has alpha unreachable toleration, expect add tolerations for `not-ready:NoExecute` and `unreachable:NoExecute`" +
160-
", the alpha tolerations will not be touched",
161-
requestedPod: api.Pod{
162-
Spec: api.PodSpec{
163-
Tolerations: []api.Toleration{
164-
{
165-
Key: schedulerapi.DeprecatedTaintNodeUnreachable,
166-
Operator: api.TolerationOpExists,
167-
Effect: api.TaintEffectNoExecute,
168-
TolerationSeconds: &defaultTolerationSeconds,
169-
},
170-
},
171-
},
172-
},
173-
expectedPod: api.Pod{
174-
Spec: api.PodSpec{
175-
Tolerations: []api.Toleration{
176-
{
177-
Key: schedulerapi.DeprecatedTaintNodeUnreachable,
178-
Operator: api.TolerationOpExists,
179-
Effect: api.TaintEffectNoExecute,
180-
TolerationSeconds: &defaultTolerationSeconds,
181-
},
182-
{
183-
Key: schedulerapi.TaintNodeNotReady,
184-
Operator: api.TolerationOpExists,
185-
Effect: api.TaintEffectNoExecute,
186-
TolerationSeconds: &defaultTolerationSeconds,
187-
},
188-
{
189-
Key: schedulerapi.TaintNodeUnreachable,
190-
Operator: api.TolerationOpExists,
191-
Effect: api.TaintEffectNoExecute,
192-
TolerationSeconds: &defaultTolerationSeconds,
193-
},
194-
},
195-
},
196-
},
197-
},
19866
{
19967
description: "pod has tolerations, but none is for taint `not-ready:NoExecute` or `unreachable:NoExecute`, expect add tolerations for `not-ready:NoExecute` and `unreachable:NoExecute`",
20068
requestedPod: api.Pod{

0 commit comments

Comments
 (0)