Skip to content

Commit 75fcb15

Browse files
committed
fix: r
Signed-off-by: Ashing Zheng <[email protected]>
1 parent ae28b1e commit 75fcb15

File tree

8 files changed

+1245
-18
lines changed

8 files changed

+1245
-18
lines changed

internal/controller/indexer/indexer.go

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ func SetupIndexer(mgr ctrl.Manager) error {
6666
&v1alpha1.Consumer{}: setupConsumerIndexer,
6767
&networkingv1.Ingress{}: setupIngressIndexer,
6868
&networkingv1.IngressClass{}: setupIngressClassIndexer,
69+
&networkingv1beta1.Ingress{}: setupIngressV1beta1Indexer,
6970
&networkingv1beta1.IngressClass{}: setupIngressClassV1beta1Indexer,
7071
&v1alpha1.BackendTrafficPolicy{}: setupBackendTrafficPolicyIndexer,
7172
} {
@@ -412,6 +413,37 @@ func setupIngressIndexer(mgr ctrl.Manager) error {
412413
return nil
413414
}
414415

416+
func setupIngressV1beta1Indexer(mgr ctrl.Manager) error {
417+
if err := mgr.GetFieldIndexer().IndexField(
418+
context.Background(),
419+
&networkingv1beta1.Ingress{},
420+
IngressClassRef,
421+
IngressClassRefIndexFunc,
422+
); err != nil {
423+
return err
424+
}
425+
426+
if err := mgr.GetFieldIndexer().IndexField(
427+
context.Background(),
428+
&networkingv1beta1.Ingress{},
429+
ServiceIndexRef,
430+
IngressServiceIndexFunc,
431+
); err != nil {
432+
return err
433+
}
434+
435+
if err := mgr.GetFieldIndexer().IndexField(
436+
context.Background(),
437+
&networkingv1beta1.Ingress{},
438+
SecretIndexRef,
439+
IngressSecretIndexFunc,
440+
); err != nil {
441+
return err
442+
}
443+
444+
return nil
445+
}
446+
415447
func setupBackendTrafficPolicyIndexer(mgr ctrl.Manager) error {
416448
if err := mgr.GetFieldIndexer().IndexField(
417449
context.Background(),
@@ -443,15 +475,46 @@ func IngressClassIndexFunc(rawObj client.Object) []string {
443475
}
444476

445477
func IngressClassRefIndexFunc(rawObj client.Object) []string {
446-
ingress := rawObj.(*networkingv1.Ingress)
478+
switch ingress := rawObj.(type) {
479+
case *networkingv1.Ingress:
480+
return ingressClassRefIndexFromV1(ingress)
481+
case *networkingv1beta1.Ingress:
482+
return ingressClassRefIndexFromV1(utils.ConvertIngressV1beta1ToV1(ingress))
483+
default:
484+
return nil
485+
}
486+
}
487+
488+
func IngressServiceIndexFunc(rawObj client.Object) []string {
489+
switch ingress := rawObj.(type) {
490+
case *networkingv1.Ingress:
491+
return ingressServiceIndexFromV1(ingress)
492+
case *networkingv1beta1.Ingress:
493+
return ingressServiceIndexFromV1(utils.ConvertIngressV1beta1ToV1(ingress))
494+
default:
495+
return nil
496+
}
497+
}
498+
499+
func IngressSecretIndexFunc(rawObj client.Object) []string {
500+
switch ingress := rawObj.(type) {
501+
case *networkingv1.Ingress:
502+
return ingressSecretIndexFromV1(ingress)
503+
case *networkingv1beta1.Ingress:
504+
return ingressSecretIndexFromV1(utils.ConvertIngressV1beta1ToV1(ingress))
505+
default:
506+
return nil
507+
}
508+
}
509+
510+
func ingressClassRefIndexFromV1(ingress *networkingv1.Ingress) []string {
447511
if ingress.Spec.IngressClassName == nil {
448512
return nil
449513
}
450514
return []string{*ingress.Spec.IngressClassName}
451515
}
452516

453-
func IngressServiceIndexFunc(rawObj client.Object) []string {
454-
ingress := rawObj.(*networkingv1.Ingress)
517+
func ingressServiceIndexFromV1(ingress *networkingv1.Ingress) []string {
455518
var services []string
456519

457520
for _, rule := range ingress.Spec.Rules {
@@ -470,8 +533,7 @@ func IngressServiceIndexFunc(rawObj client.Object) []string {
470533
return services
471534
}
472535

473-
func IngressSecretIndexFunc(rawObj client.Object) []string {
474-
ingress := rawObj.(*networkingv1.Ingress)
536+
func ingressSecretIndexFromV1(ingress *networkingv1.Ingress) []string {
475537
secrets := make([]string, 0)
476538

477539
for _, tls := range ingress.Spec.TLS {

0 commit comments

Comments
 (0)