@@ -90,7 +90,6 @@ type ClusterSummaryReconciler struct {
90
90
Scheme * runtime.Scheme
91
91
Logger logr.Logger
92
92
ReportMode ReportMode
93
- AgentInMgmtCluster bool // if true, indicates drift-detection-manager needs to be started in the management cluster
94
93
ShardKey string // when set, only clusters matching the ShardKey will be reconciled
95
94
Version string
96
95
Deployer deployer.DeployerInterface
@@ -103,13 +102,18 @@ type ClusterSummaryReconciler struct {
103
102
ctrl controller.Controller
104
103
}
105
104
105
+ // If the drift-detection component is deployed in the management cluster, the addon-controller will deploy ResourceSummaries within the same cluster,
106
+ // thus requiring the necessary permissions.
107
+
106
108
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clustersummaries,verbs=get;list;watch;create;update;patch;delete
107
109
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clustersummaries/status,verbs=get;update;patch
108
110
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clustersummaries/finalizers,verbs=update;patch
109
111
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clusterconfigurations,verbs=get;list;watch
110
112
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clusterconfigurations/status,verbs=get;list;update
111
113
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clusterreports,verbs=get;list;watch
112
114
//+kubebuilder:rbac:groups=config.projectsveltos.io,resources=clusterreports/status,verbs=get;list;update
115
+ //+kubebuilder:rbac:groups=lib.projectsveltos.io,resources=resourcesummaries,verbs=get;list;watch;create;update;patch;delete
116
+ //+kubebuilder:rbac:groups=lib.projectsveltos.io,resources=resourcesummaries/status,verbs=get;list;update
113
117
//+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch
114
118
//+kubebuilder:rbac:groups="",resources=configmaps,verbs=get;list;watch
115
119
//+kubebuilder:rbac:groups=controlplane.cluster.x-k8s.io,resources=kubeadmcontrolplanes,verbs=get;watch;list
@@ -431,10 +435,11 @@ func (r *ClusterSummaryReconciler) SetupWithManager(ctx context.Context, mgr ctr
431
435
// Later on, in main, we detect that and if CAPI is present WatchForCAPI will be invoked.
432
436
433
437
if r .ReportMode == CollectFromManagementCluster {
434
- go collectAndProcessResourceSummaries (ctx , mgr .GetClient (), r .ShardKey , r .Version , mgr .GetLogger ())
438
+ go collectAndProcessResourceSummaries (ctx , mgr .GetClient (), getAgentInMgmtCluster (), r .ShardKey ,
439
+ r .Version , mgr .GetLogger ())
435
440
}
436
441
437
- if r . AgentInMgmtCluster {
442
+ if getAgentInMgmtCluster () {
438
443
go removeStaleDriftDetectionManager (ctx , r .Logger )
439
444
}
440
445
@@ -1135,14 +1140,8 @@ func (r *ClusterSummaryReconciler) removeResourceSummary(ctx context.Context,
1135
1140
// ResourceSummary is a Sveltos resource deployed in managed clusters.
1136
1141
// Such resources are always created, removed using cluster-admin roles.
1137
1142
cs := clusterSummaryScope .ClusterSummary
1138
- remoteClient , err := clusterproxy .GetKubernetesClient (ctx , r .Client , cs .Spec .ClusterNamespace ,
1139
- cs .Spec .ClusterName , "" , "" , cs .Spec .ClusterType , logger )
1140
- if err != nil {
1141
- return err
1142
- }
1143
-
1144
- err = unDeployResourceSummaryInstance (ctx , remoteClient , cs .Spec .ClusterNamespace ,
1145
- cs .Name , logger )
1143
+ err := unDeployResourceSummaryInstance (ctx , cs .Spec .ClusterNamespace , cs .Spec .ClusterName ,
1144
+ cs .Name , cs .Spec .ClusterType , logger )
1146
1145
if err != nil {
1147
1146
if apierrors .IsNotFound (err ) {
1148
1147
return nil
0 commit comments