...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package condition
15
16 import (
17 "github.com/go-logr/logr"
18 "go.uber.org/fx"
19
20 ctrl "sigs.k8s.io/controller-runtime"
21 "sigs.k8s.io/controller-runtime/pkg/client"
22
23 "github.com/chaos-mesh/chaos-mesh/controllers/types"
24 "github.com/chaos-mesh/chaos-mesh/controllers/utils/builder"
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, objs Objs) (types.Controller, error) {
34 setupLog := logger.WithName("setup-condition")
35 for _, obj := range objs.Objs {
36 setupLog.Info("setting up controller", "resource-name", obj.Name)
37
38 err := builder.Default(mgr).
39 For(obj.Object).
40 Named(obj.Name + "-condition").
41 Complete(&Reconciler{
42 Object: obj.Object,
43 Client: client,
44 Recorder: mgr.GetEventRecorderFor("condition"),
45 Log: logger.WithName("condition"),
46 })
47 if err != nil {
48 return "", err
49 }
50
51 }
52
53 return "condition", nil
54 }
55