Skip to content

Commit abe714d

Browse files
committed
1 parent f11c877 commit abe714d

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pkg/controller/stack/stack_controller.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"sigs.k8s.io/controller-runtime/pkg/handler"
2929
logf "sigs.k8s.io/controller-runtime/pkg/log"
3030
"sigs.k8s.io/controller-runtime/pkg/manager"
31+
"sigs.k8s.io/controller-runtime/pkg/predicate"
3132
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3233
"sigs.k8s.io/controller-runtime/pkg/source"
3334
)
@@ -53,8 +54,15 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error {
5354
return err
5455
}
5556

57+
// Filter out update events if an object's metadata.generation is unchanged.
58+
// - https://github.com/operator-framework/operator-sdk/issues/2795
59+
// - https://github.com/kubernetes-sigs/kubebuilder/issues/1103
60+
// - https://github.com/kubernetes-sigs/controller-runtime/pull/553
61+
// - https://book-v1.book.kubebuilder.io/basics/status_subresource.html
62+
pred := predicate.GenerationChangedPredicate{}
63+
5664
// Watch for changes to primary resource Stack
57-
err = c.Watch(&source.Kind{Type: &pulumiv1alpha1.Stack{}}, &handler.EnqueueRequestForObject{})
65+
err = c.Watch(&source.Kind{Type: &pulumiv1alpha1.Stack{}}, &handler.EnqueueRequestForObject{}, pred)
5866
if err != nil {
5967
return err
6068
}
@@ -214,7 +222,7 @@ func (r *ReconcileStack) Reconcile(request reconcile.Request) (reconcile.Result,
214222
}
215223
err = r.client.Status().Update(context.TODO(), instance)
216224
if err != nil {
217-
reqLogger.Error(err, "Failed to update Stack outputs", "Stack.Name", stack.Stack)
225+
reqLogger.Error(err, "Failed to update Stack status", "Stack.Name", stack.Stack)
218226
return reconcile.Result{}, err
219227
}
220228

0 commit comments

Comments
 (0)