Skip to content

Commit 3b54082

Browse files
committed
Removed predicate for watcher and added log output
1 parent 206035d commit 3b54082

2 files changed

Lines changed: 41 additions & 4 deletions

File tree

controllers/nodegroup_controller.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ import (
2525
"k8s.io/apimachinery/pkg/runtime"
2626
"k8s.io/apimachinery/pkg/types"
2727
ctrl "sigs.k8s.io/controller-runtime"
28-
"sigs.k8s.io/controller-runtime/pkg/builder"
2928
"sigs.k8s.io/controller-runtime/pkg/client"
3029
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
3130
"sigs.k8s.io/controller-runtime/pkg/handler"
3231
"sigs.k8s.io/controller-runtime/pkg/log"
33-
"sigs.k8s.io/controller-runtime/pkg/predicate"
3432
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3533
"sigs.k8s.io/controller-runtime/pkg/source"
3634

@@ -127,9 +125,11 @@ func finalizeNodeTaints(node *corev1.Node, taints []corev1.Taint) bool {
127125
}
128126

129127
func reconcileNodeTaints(node *corev1.Node, taints []corev1.Taint) bool {
128+
log := log.FromContext(context.Background())
130129
needsUpdate := false
131130
for _, t := range taints {
132131
if !hasTaint(&t, node) {
132+
log.V(1).Info("adding taint", "node", node.Name, "taint", t)
133133
node.Spec.Taints = append(node.Spec.Taints, t)
134134
needsUpdate = true
135135
}
@@ -250,7 +250,6 @@ func (r *NodeGroupReconciler) SetupWithManager(mgr ctrl.Manager) error {
250250
return ctrl.NewControllerManagedBy(mgr).
251251
For(&k8sv1alpha1.NodeGroup{}).
252252
Watches(&source.Kind{Type: &corev1.Node{}},
253-
handler.EnqueueRequestsFromMapFunc(r.findNodeGroupsForMember),
254-
builder.WithPredicates(predicate.Or(predicate.LabelChangedPredicate{}, predicate.GenerationChangedPredicate{}))).
253+
handler.EnqueueRequestsFromMapFunc(r.findNodeGroupsForMember)).
255254
Complete(r)
256255
}

controllers/nodegroup_controller_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,44 @@ var _ = Describe("NodeGroup controller", func() {
197197
return true
198198
})
199199
})
200+
It("should maintain labels and taints on nodes", func() {
201+
node := &corev1.Node{}
202+
Expect(k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)).To(Succeed())
203+
Eventually(func() bool {
204+
err := k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)
205+
if err != nil {
206+
return false
207+
}
208+
if _, ok := node.GetLabels()["nodegroup2"]; !ok {
209+
return false
210+
}
211+
for _, t := range node.Spec.Taints {
212+
if t.MatchTaint(taint) {
213+
return true
214+
}
215+
}
216+
return false
217+
}, timeout, interval).Should(BeTrue())
218+
Expect(k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)).To(Succeed())
219+
node.Spec.Taints = []corev1.Taint{}
220+
Expect(k8sClient.Update(context.Background(), node)).To(Succeed())
221+
Expect(k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)).To(Succeed())
222+
Eventually(func() bool {
223+
err := k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)
224+
if err != nil {
225+
return false
226+
}
227+
if _, ok := node.GetLabels()["nodegroup2"]; !ok {
228+
return false
229+
}
230+
for _, t := range node.Spec.Taints {
231+
if t.MatchTaint(taint) {
232+
return true
233+
}
234+
}
235+
return false
236+
}, timeout, interval).Should(BeTrue())
237+
})
200238
It("should maintain labels and taints when nodes are recreated", func() {
201239
node := &corev1.Node{}
202240
Expect(k8sClient.Get(context.Background(), types.NamespacedName{Name: "node2"}, node)).To(Succeed())

0 commit comments

Comments
 (0)