...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package ctrl
17
18 import (
19 "github.com/99designs/gqlgen/graphql/handler"
20 "github.com/go-logr/logr"
21 "go.uber.org/fx"
22 "k8s.io/client-go/kubernetes"
23 "sigs.k8s.io/controller-runtime/pkg/client"
24
25 "github.com/chaos-mesh/chaos-mesh/controllers/utils/chaosdaemon"
26 "github.com/chaos-mesh/chaos-mesh/pkg/ctrl/server"
27 "github.com/chaos-mesh/chaos-mesh/pkg/ctrl/server/generated"
28 )
29
30 type ServerParams struct {
31 fx.In
32
33 NoCacheReader client.Reader `name:"no-cache"`
34 Logger logr.Logger
35 Client client.Client
36 Clientset *kubernetes.Clientset
37 DaemonClientBuilder *chaosdaemon.ChaosDaemonClientBuilder
38 }
39
40 func New(param ServerParams) *handler.Server {
41 resolvers := &server.Resolver{
42 DaemonHelper: &server.DaemonHelper{Builder: param.DaemonClientBuilder},
43 Log: param.Logger.WithName("ctrl-server"),
44 Client: param.Client,
45 Clientset: param.Clientset,
46 NoCacheReader: param.NoCacheReader,
47 }
48 return handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: resolvers}))
49 }
50