...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package finalizers
15
16 import (
17 "github.com/go-logr/logr"
18 "go.uber.org/fx"
19 ctrl "sigs.k8s.io/controller-runtime"
20 "sigs.k8s.io/controller-runtime/pkg/client"
21
22 "github.com/chaos-mesh/chaos-mesh/controllers/types"
23 "github.com/chaos-mesh/chaos-mesh/controllers/utils/builder"
24 "github.com/chaos-mesh/chaos-mesh/controllers/utils/recorder"
25 )
26
27 type Objs struct {
28 fx.In
29
30 Objs []types.Object `group:"objs"`
31 }
32
33 func NewController(mgr ctrl.Manager, client client.Client, logger logr.Logger, recorderBuilder *recorder.RecorderBuilder, pairs Objs) (types.Controller, error) {
34 for _, obj := range pairs.Objs {
35 err := builder.Default(mgr).
36 For(obj.Object).
37 Named(obj.Name + "-finalizers").
38 Complete(&Reconciler{
39 Object: obj.Object,
40 Client: client,
41 Recorder: recorderBuilder.Build("finalizer"),
42 Log: logger.WithName("finalizers"),
43 })
44 if err != nil {
45 return "", err
46 }
47
48 }
49
50 return "finalizers", nil
51 }
52