Skip to content

Commit 4c3b8ac

Browse files
remove extra informers that are not needed
1 parent b3922fb commit 4c3b8ac

File tree

3 files changed

+17
-61
lines changed

3 files changed

+17
-61
lines changed

pkg/pipeline/transform/kubernetes/informers/informers-mock.go

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,6 @@ func (m *IndexerMock) MockReplicaSet(name, namespace, ownerName, ownerKind strin
136136
}
137137

138138
func (m *IndexerMock) MockDeployment(name, namespace, ownerName, ownerKind string) {
139-
m.On("GetByKey", namespace+"/"+name).Return(&metav1.ObjectMeta{
140-
Name: name,
141-
OwnerReferences: []metav1.OwnerReference{{
142-
Kind: ownerKind,
143-
Name: ownerName,
144-
}},
145-
}, true, nil)
146-
}
147-
148-
func (m *IndexerMock) MockGateway(name, namespace, ownerName, ownerKind string) {
149139
if ownerName == "" {
150140
// No owner
151141
m.On("GetByKey", namespace+"/"+name).Return(&metav1.ObjectMeta{
@@ -191,23 +181,21 @@ func SetupIndexerMocks(kd *Informers) (pods, nodes, svc, rs *IndexerMock) {
191181
return
192182
}
193183

194-
func SetupIndexerMocksWithTrackedKinds(kd *Informers, trackedKinds []string) (pods, nodes, svc, rs, deploy, gw *IndexerMock) {
184+
func SetupIndexerMocksWithTrackedKinds(kd *Informers, trackedKinds []string) (pods, nodes, svc, rs, deploy *IndexerMock) {
195185
// Setup base informers
196186
pods, nodes, svc, rs = SetupIndexerMocks(kd)
197187

198188
// Setup additional informers based on trackedKinds
199189
for _, kind := range trackedKinds {
200190
switch kind {
201-
case "Deployment":
202-
deploy = &IndexerMock{}
203-
dim := InformerMock{}
204-
dim.On("GetIndexer").Return(deploy)
205-
kd.deployments = &dim
206-
case "Gateway":
207-
gw = &IndexerMock{}
208-
gim := InformerMock{}
209-
gim.On("GetIndexer").Return(gw)
210-
kd.gateways = &gim
191+
case "Deployment", "Gateway":
192+
// Gateway requires Deployment informer, so we initialize it for both
193+
if deploy == nil {
194+
deploy = &IndexerMock{}
195+
dim := InformerMock{}
196+
dim.On("GetIndexer").Return(deploy)
197+
kd.deployments = &dim
198+
}
211199
}
212200
}
213201
return

pkg/pipeline/transform/kubernetes/informers/informers.go

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ type Informers struct {
6868
replicaSets cache.SharedIndexInformer
6969
// New informers for ownership tracking
7070
deployments cache.SharedIndexInformer
71-
gateways cache.SharedIndexInformer
7271
// Config and channels
7372
config Config
7473
stopChan chan struct{}
@@ -267,8 +266,6 @@ func (k *Informers) getOwnerFromInformer(kind, namespace, name string) *OwnerInf
267266
informer = k.replicaSets
268267
case "Deployment":
269268
informer = k.deployments
270-
case "Gateway":
271-
informer = k.gateways
272269
default:
273270
return nil
274271
}
@@ -507,29 +504,6 @@ func (k *Informers) initDeploymentInformer(informerFactory metadatainformer.Shar
507504
return nil
508505
}
509506

510-
func (k *Informers) initGatewayInformer(informerFactory metadatainformer.SharedInformerFactory) error {
511-
k.gateways = informerFactory.ForResource(
512-
schema.GroupVersionResource{
513-
Group: "gateway.networking.k8s.io",
514-
Version: "v1",
515-
Resource: "gateways",
516-
}).Informer()
517-
if err := k.gateways.SetTransform(func(i interface{}) (interface{}, error) {
518-
gw, ok := i.(*metav1.PartialObjectMetadata)
519-
if !ok {
520-
return nil, fmt.Errorf("was expecting a Gateway. Got: %T", i)
521-
}
522-
return &metav1.ObjectMeta{
523-
Name: gw.Name,
524-
Namespace: gw.Namespace,
525-
OwnerReferences: gw.OwnerReferences,
526-
}, nil
527-
}); err != nil {
528-
return fmt.Errorf("can't set Gateways transform: %w", err)
529-
}
530-
return nil
531-
}
532-
533507
func (k *Informers) InitFromConfig(kubeconfig string, infConfig *Config, opMetrics *operational.Metrics) error {
534508
// Initialization variables
535509
k.config = *infConfig
@@ -588,16 +562,12 @@ func (k *Informers) initInformers(client kubernetes.Interface, metaClient metada
588562
// Initialize additional informers based on trackedKinds configuration
589563
for _, kind := range cfg.trackedKinds {
590564
switch kind {
591-
case "Deployment":
565+
case "Deployment", "Gateway":
566+
// Gateway requires Deployment informer to navigate ownership chain
592567
log.Debugf("initializing Deployment informer (trackedKinds)")
593568
if err := k.initDeploymentInformer(metadataInformerFactory); err != nil {
594569
return err
595570
}
596-
case "Gateway":
597-
log.Debugf("initializing Gateway informer (trackedKinds)")
598-
if err := k.initGatewayInformer(metadataInformerFactory); err != nil {
599-
return err
600-
}
601571
}
602572
}
603573

pkg/pipeline/transform/kubernetes/informers/informers_test.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,12 @@ func TestOwnershipTracking_GatewayAPI(t *testing.T) {
132132
},
133133
}
134134

135-
pidx, hidx, sidx, ridx, didx, gwidx := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment", "Gateway"})
135+
pidx, hidx, sidx, ridx, didx := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment", "Gateway"})
136136

137137
// Setup mocks for the ownership chain
138138
ridx.MockReplicaSet("rs1", "test-ns", "deploy1", "Deployment")
139139
ridx.FallbackNotFound()
140140
didx.MockDeployment("deploy1", "test-ns", "gateway1", "Gateway")
141-
gwidx.MockGateway("gateway1", "test-ns", "", "") // Gateway has no owner
142141

143142
pidx.MockPod("1.2.3.4", "", "", "pod1", "test-ns", "10.0.0.1", "rs1", "ReplicaSet")
144143
pidx.FallbackNotFound()
@@ -159,11 +158,11 @@ func TestOwnershipTracking_OnlyDeployment(t *testing.T) {
159158
kubeData := Informers{
160159
indexerHitMetric: metrics.CreateIndexerHitCounter(),
161160
config: Config{
162-
trackedKinds: []string{"ReplicaSet", "Deployment"}, // Gateway NOT tracked
161+
trackedKinds: []string{"Deployment"}, // Gateway NOT tracked
163162
},
164163
}
165164

166-
pidx, hidx, sidx, ridx, didx, _ := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment"})
165+
pidx, hidx, sidx, ridx, didx := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment"})
167166

168167
ridx.MockReplicaSet("rs1", "test-ns", "deploy1", "Deployment")
169168
ridx.FallbackNotFound()
@@ -216,17 +215,16 @@ func TestOwnershipTracking_MaxDepth(t *testing.T) {
216215
kubeData := Informers{
217216
indexerHitMetric: metrics.CreateIndexerHitCounter(),
218217
config: Config{
219-
trackedKinds: []string{"ReplicaSet", "Deployment", "Gateway"},
218+
trackedKinds: []string{"Deployment", "Gateway"},
220219
},
221220
}
222221

223-
pidx, hidx, sidx, ridx, didx, gwidx := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment", "Gateway"})
222+
pidx, hidx, sidx, ridx, didx := SetupIndexerMocksWithTrackedKinds(&kubeData, []string{"Deployment", "Gateway"})
224223

225224
ridx.MockReplicaSet("rs1", "test-ns", "deploy1", "Deployment")
226225
ridx.FallbackNotFound()
226+
// Deployment owned by Gateway (which we can't traverse further without Gateway informer)
227227
didx.MockDeployment("deploy1", "test-ns", "gateway1", "Gateway")
228-
// Gateway has another owner (hypothetical 4th level) - should be ignored
229-
gwidx.MockGateway("gateway1", "test-ns", "someother", "SomeKind")
230228

231229
pidx.MockPod("1.2.3.4", "", "", "pod1", "test-ns", "10.0.0.1", "rs1", "ReplicaSet")
232230
pidx.FallbackNotFound()

0 commit comments

Comments
 (0)