...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package remotecluster
17
18 import (
19 "github.com/go-logr/logr"
20 ctrl "sigs.k8s.io/controller-runtime"
21 "sigs.k8s.io/controller-runtime/pkg/client"
22
23 "github.com/chaos-mesh/chaos-mesh/api/v1alpha1"
24 "github.com/chaos-mesh/chaos-mesh/controllers/config"
25 "github.com/chaos-mesh/chaos-mesh/controllers/multicluster/clusterregistry"
26 "github.com/chaos-mesh/chaos-mesh/controllers/utils/builder"
27 "github.com/chaos-mesh/chaos-mesh/controllers/utils/recorder"
28 )
29
30 func Bootstrap(mgr ctrl.Manager, client client.Client, logger logr.Logger, recorderBuilder *recorder.RecorderBuilder, registry *clusterregistry.RemoteClusterRegistry) error {
31 if !config.ShouldSpawnController("remotecluster") {
32 return nil
33 }
34
35 return builder.Default(mgr).
36 For(&v1alpha1.RemoteCluster{}).
37 Named("remotecluster").
38 Complete(&Reconciler{
39 Client: client,
40 Log: logger.WithName("remotecluster"),
41
42 registry: registry,
43 })
44 }
45