@@ -7,14 +7,17 @@ import (
7
7
8
8
corev1 "k8s.io/api/core/v1"
9
9
apierrors "k8s.io/apimachinery/pkg/api/errors"
10
+ clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
10
11
"sigs.k8s.io/cluster-api/util"
11
12
"sigs.k8s.io/cluster-api/util/annotations"
12
13
"sigs.k8s.io/cluster-api/util/patch"
13
14
"sigs.k8s.io/cluster-api/util/predicates"
14
15
ctrl "sigs.k8s.io/controller-runtime"
16
+ "sigs.k8s.io/controller-runtime/pkg/builder"
15
17
"sigs.k8s.io/controller-runtime/pkg/client"
16
18
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
17
19
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
20
+ "sigs.k8s.io/controller-runtime/pkg/handler"
18
21
logf "sigs.k8s.io/controller-runtime/pkg/log"
19
22
20
23
infrav1 "github.com/scaleway/cluster-api-provider-scaleway/api/v1alpha1"
@@ -178,10 +181,16 @@ func (r *ScalewayClusterReconciler) reconcileNormal(ctx context.Context, cluster
178
181
}
179
182
180
183
// 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 {
182
185
return ctrl .NewControllerManagedBy (mgr ).
183
186
For (& infrav1.ScalewayCluster {}).
184
187
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
+ ).
185
194
Named ("scalewaycluster" ).
186
195
Complete (r )
187
196
}
0 commit comments