Skip to content

Commit 3c43392

Browse files
committed
feat: support ingress v1beta1
Signed-off-by: Ashing Zheng <[email protected]>
1 parent 75b4e6d commit 3c43392

File tree

6 files changed

+388
-129
lines changed

6 files changed

+388
-129
lines changed

internal/controller/indexer/indexer.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ func SetupIndexer(mgr ctrl.Manager) error {
6565
&gatewayv1.GatewayClass{}: setupGatewayClassIndexer,
6666
&v1alpha1.Consumer{}: setupConsumerIndexer,
6767
&networkingv1.Ingress{}: setupIngressIndexer,
68+
&networkingv1beta1.Ingress{}: setupIngressV1beta1Indexer,
6869
&networkingv1.IngressClass{}: setupIngressClassIndexer,
6970
&networkingv1beta1.IngressClass{}: setupIngressClassV1beta1Indexer,
7071
&v1alpha1.BackendTrafficPolicy{}: setupBackendTrafficPolicyIndexer,
@@ -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+
IngressV1beta1ClassRefIndexFunc,
422+
); err != nil {
423+
return err
424+
}
425+
426+
if err := mgr.GetFieldIndexer().IndexField(
427+
context.Background(),
428+
&networkingv1beta1.Ingress{},
429+
ServiceIndexRef,
430+
IngressV1beta1ServiceIndexFunc,
431+
); err != nil {
432+
return err
433+
}
434+
435+
if err := mgr.GetFieldIndexer().IndexField(
436+
context.Background(),
437+
&networkingv1beta1.Ingress{},
438+
SecretIndexRef,
439+
IngressV1beta1SecretIndexFunc,
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(),
@@ -450,6 +482,14 @@ func IngressClassRefIndexFunc(rawObj client.Object) []string {
450482
return []string{*ingress.Spec.IngressClassName}
451483
}
452484

485+
func IngressV1beta1ClassRefIndexFunc(rawObj client.Object) []string {
486+
ingress := rawObj.(*networkingv1beta1.Ingress)
487+
if ingress.Spec.IngressClassName == nil {
488+
return nil
489+
}
490+
return []string{*ingress.Spec.IngressClassName}
491+
}
492+
453493
func IngressServiceIndexFunc(rawObj client.Object) []string {
454494
ingress := rawObj.(*networkingv1.Ingress)
455495
var services []string
@@ -470,6 +510,26 @@ func IngressServiceIndexFunc(rawObj client.Object) []string {
470510
return services
471511
}
472512

513+
func IngressV1beta1ServiceIndexFunc(rawObj client.Object) []string {
514+
ingress := rawObj.(*networkingv1beta1.Ingress)
515+
var services []string
516+
517+
for _, rule := range ingress.Spec.Rules {
518+
if rule.HTTP == nil {
519+
continue
520+
}
521+
522+
for _, path := range rule.HTTP.Paths {
523+
if path.Backend.ServiceName == "" {
524+
continue
525+
}
526+
key := GenIndexKey(ingress.Namespace, path.Backend.ServiceName)
527+
services = append(services, key)
528+
}
529+
}
530+
return services
531+
}
532+
473533
func IngressSecretIndexFunc(rawObj client.Object) []string {
474534
ingress := rawObj.(*networkingv1.Ingress)
475535
secrets := make([]string, 0)
@@ -485,6 +545,21 @@ func IngressSecretIndexFunc(rawObj client.Object) []string {
485545
return secrets
486546
}
487547

548+
func IngressV1beta1SecretIndexFunc(rawObj client.Object) []string {
549+
ingress := rawObj.(*networkingv1beta1.Ingress)
550+
secrets := make([]string, 0)
551+
552+
for _, tls := range ingress.Spec.TLS {
553+
if tls.SecretName == "" {
554+
continue
555+
}
556+
557+
key := GenIndexKey(ingress.Namespace, tls.SecretName)
558+
secrets = append(secrets, key)
559+
}
560+
return secrets
561+
}
562+
488563
func GatewaySecretIndexFunc(rawObj client.Object) (keys []string) {
489564
gateway := rawObj.(*gatewayv1.Gateway)
490565
var m = make(map[string]struct{})

0 commit comments

Comments
 (0)