MCPcopy
hub / github.com/kubewall/kubewall / NewPodsHandler

Function NewPodsHandler

backend/handlers/workloads/pods/pods.go:63–98  ·  view source on GitHub ↗
(ctx context.Context, config, cluster string, container container.Container)

Source from the content-addressed store, hash-verified

61}
62
63func NewPodsHandler(ctx context.Context, config, cluster string, container container.Container) *PodsHandler {
64 informer := container.SharedInformerFactory(config, cluster).Core().V1().Pods().Informer()
65 informer.SetTransform(helpers.StripUnusedFields)
66 clientSet := container.ClientSet(config, cluster)
67
68 handler := &PodsHandler{
69 BaseHandler: base.BaseHandler{
70 Kind: "Pod",
71 Container: container,
72 RestClient: clientSet.CoreV1().RESTClient(),
73 Informer: informer,
74 QueryConfig: config,
75 QueryCluster: cluster,
76 InformerCacheKey: fmt.Sprintf("%s-%s-podInformer", config, cluster),
77 TransformFunc: transformItems,
78 },
79 restConfig: container.RestConfig(config, cluster),
80 clientSet: clientSet,
81 replicasetHandler: replicaset.NewReplicaSetHandler(ctx, config, cluster, container),
82 }
83
84 additionalEvents := []map[string]func(){
85 {
86 "pods-deployments": func() {
87 go handler.DeploymentsPods()
88 go handler.NodePods()
89 },
90 },
91 }
92
93 cache := base.ResourceEventHandler[*v1.Pod](&handler.BaseHandler, additionalEvents...)
94 handler.BaseHandler.StartInformer(cache)
95 handler.BaseHandler.WaitForSync(ctx)
96
97 return handler
98}
99
100func transformItems(items []any, b *base.BaseHandler) ([]byte, error) {
101 var list []v1.Pod

Callers 1

NewPodsRouteHandlerFunction · 0.85

Calls 7

DeploymentsPodsMethod · 0.95
NodePodsMethod · 0.95
StartInformerMethod · 0.80
WaitForSyncMethod · 0.80
SharedInformerFactoryMethod · 0.65
ClientSetMethod · 0.65
RestConfigMethod · 0.65

Tested by

no test coverage detected