MCPcopy
hub / github.com/kubewall/kubewall / NewServicesHandler

Function NewServicesHandler

backend/handlers/network/services/services.go:42–62  ·  view source on GitHub ↗
(ctx context.Context, config, cluster string, container container.Container)

Source from the content-addressed store, hash-verified

40}
41
42func NewServicesHandler(ctx context.Context, config, cluster string, container container.Container) *ServicesHandler {
43 informer := container.SharedInformerFactory(config, cluster).Core().V1().Services().Informer()
44 informer.SetTransform(helpers.StripUnusedFields)
45
46 handler := &ServicesHandler{
47 BaseHandler: base.BaseHandler{
48 Kind: "Service",
49 Container: container,
50 Informer: informer,
51 RestClient: container.ClientSet(config, cluster).CoreV1().RESTClient(),
52 QueryConfig: config,
53 QueryCluster: cluster,
54 InformerCacheKey: fmt.Sprintf("%s-%s-ServiceInformer", config, cluster),
55 TransformFunc: transformItems,
56 },
57 }
58 cache := base.ResourceEventHandler[*v1.Service](&handler.BaseHandler)
59 handler.BaseHandler.StartInformer(cache)
60 handler.BaseHandler.WaitForSync(ctx)
61 return handler
62}
63
64func transformItems(items []any, b *base.BaseHandler) ([]byte, error) {
65 var list []v1.Service

Callers 1

NewServicesRouteHandlerFunction · 0.85

Calls 4

StartInformerMethod · 0.80
WaitForSyncMethod · 0.80
SharedInformerFactoryMethod · 0.65
ClientSetMethod · 0.65

Tested by

no test coverage detected