...
1
16
17 package cluster
18
19 import (
20 "context"
21 "net/http"
22
23 "github.com/go-logr/logr"
24 "k8s.io/apimachinery/pkg/api/meta"
25 "k8s.io/apimachinery/pkg/runtime"
26 "k8s.io/client-go/rest"
27 "k8s.io/client-go/tools/record"
28
29 "sigs.k8s.io/controller-runtime/pkg/cache"
30 "sigs.k8s.io/controller-runtime/pkg/client"
31 intrec "sigs.k8s.io/controller-runtime/pkg/internal/recorder"
32 )
33
34 type cluster struct {
35
36 config *rest.Config
37
38 httpClient *http.Client
39 scheme *runtime.Scheme
40 cache cache.Cache
41 client client.Client
42
43
44 apiReader client.Reader
45
46
47
48 fieldIndexes client.FieldIndexer
49
50
51
52 recorderProvider *intrec.Provider
53
54
55 mapper meta.RESTMapper
56
57
58
59 logger logr.Logger
60 }
61
62 func (c *cluster) GetConfig() *rest.Config {
63 return c.config
64 }
65
66 func (c *cluster) GetHTTPClient() *http.Client {
67 return c.httpClient
68 }
69
70 func (c *cluster) GetClient() client.Client {
71 return c.client
72 }
73
74 func (c *cluster) GetScheme() *runtime.Scheme {
75 return c.scheme
76 }
77
78 func (c *cluster) GetFieldIndexer() client.FieldIndexer {
79 return c.fieldIndexes
80 }
81
82 func (c *cluster) GetCache() cache.Cache {
83 return c.cache
84 }
85
86 func (c *cluster) GetEventRecorderFor(name string) record.EventRecorder {
87 return c.recorderProvider.GetEventRecorderFor(name)
88 }
89
90 func (c *cluster) GetRESTMapper() meta.RESTMapper {
91 return c.mapper
92 }
93
94 func (c *cluster) GetAPIReader() client.Reader {
95 return c.apiReader
96 }
97
98 func (c *cluster) GetLogger() logr.Logger {
99 return c.logger
100 }
101
102 func (c *cluster) Start(ctx context.Context) error {
103 defer c.recorderProvider.Stop(ctx)
104 return c.cache.Start(ctx)
105 }
106
View as plain text