@@ -7,14 +7,17 @@ import (
77
88 corev1 "k8s.io/api/core/v1"
99 apierrors "k8s.io/apimachinery/pkg/api/errors"
10+ clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
1011 "sigs.k8s.io/cluster-api/util"
1112 "sigs.k8s.io/cluster-api/util/annotations"
1213 "sigs.k8s.io/cluster-api/util/patch"
1314 "sigs.k8s.io/cluster-api/util/predicates"
1415 ctrl "sigs.k8s.io/controller-runtime"
16+ "sigs.k8s.io/controller-runtime/pkg/builder"
1517 "sigs.k8s.io/controller-runtime/pkg/client"
1618 "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
1719 "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
20+ "sigs.k8s.io/controller-runtime/pkg/handler"
1821 logf "sigs.k8s.io/controller-runtime/pkg/log"
1922
2023 infrav1 "github.com/scaleway/cluster-api-provider-scaleway/api/v1alpha1"
@@ -178,10 +181,16 @@ func (r *ScalewayClusterReconciler) reconcileNormal(ctx context.Context, cluster
178181}
179182
180183// SetupWithManager sets up the controller with the Manager.
181- func (r * ScalewayClusterReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
184+ func (r * ScalewayClusterReconciler ) SetupWithManager (ctx context. Context , mgr ctrl.Manager ) error {
182185 return ctrl .NewControllerManagedBy (mgr ).
183186 For (& infrav1.ScalewayCluster {}).
184187 WithEventFilter (predicates .ResourceIsNotExternallyManaged (mgr .GetScheme (), mgr .GetLogger ())).
188+ // Add a watch on clusterv1.Cluster object for pause/unpause notifications.
189+ Watches (
190+ & clusterv1.Cluster {},
191+ handler .EnqueueRequestsFromMapFunc (util .ClusterToInfrastructureMapFunc (ctx , infrav1 .GroupVersion .WithKind ("ScalewayCluster" ), mgr .GetClient (), & infrav1.ScalewayCluster {})),
192+ builder .WithPredicates (predicates .ClusterPausedTransitions (mgr .GetScheme (), mgr .GetLogger ())),
193+ ).
185194 Named ("scalewaycluster" ).
186195 Complete (r )
187196}
0 commit comments