@@ -40,6 +40,7 @@ const (
4040 backendSecurityPolicyIndex = "backendSecurityPolicyIndex"
4141 configMapCtpIndex = "configMapCtpIndex"
4242 secretCtpIndex = "secretCtpIndex"
43+ secretBtlsIndex = "secretBtlsIndex"
4344 configMapBtlsIndex = "configMapBtlsIndex"
4445 backendEnvoyExtensionPolicyIndex = "backendEnvoyExtensionPolicyIndex"
4546 backendEnvoyProxyTelemetryIndex = "backendEnvoyProxyTelemetryIndex"
@@ -702,14 +703,17 @@ func configMapRouteFilterIndexFunc(rawObj client.Object) []string {
702703 return configMapReferences
703704}
704705
705- // addBtlsIndexers adds indexing on BackendTLSPolicy, for ConfigMap objects that are
706+ // addBtlsIndexers adds indexing on BackendTLSPolicy, for ConfigMap and Secret objects that are
706707// referenced in BackendTLSPolicy objects. This helps in querying for BackendTLSPolicies that are
707708// affected by a particular ConfigMap CRUD.
708709func addBtlsIndexers (ctx context.Context , mgr manager.Manager ) error {
709710 if err := mgr .GetFieldIndexer ().IndexField (ctx , & gwapiv1a3.BackendTLSPolicy {}, configMapBtlsIndex , configMapBtlsIndexFunc ); err != nil {
710711 return err
711712 }
712713
714+ if err := mgr .GetFieldIndexer ().IndexField (ctx , & gwapiv1a3.BackendTLSPolicy {}, secretBtlsIndex , secretBtlsIndexFunc ); err != nil {
715+ return err
716+ }
713717 return nil
714718}
715719
@@ -731,6 +735,24 @@ func configMapBtlsIndexFunc(rawObj client.Object) []string {
731735 return configMapReferences
732736}
733737
738+ func secretBtlsIndexFunc (rawObj client.Object ) []string {
739+ btls := rawObj .(* gwapiv1a3.BackendTLSPolicy )
740+ var secretReferences []string
741+ if btls .Spec .Validation .CACertificateRefs != nil {
742+ for _ , caCertRef := range btls .Spec .Validation .CACertificateRefs {
743+ if string (caCertRef .Kind ) == resource .KindSecret {
744+ secretReferences = append (secretReferences ,
745+ types.NamespacedName {
746+ Namespace : btls .Namespace ,
747+ Name : string (caCertRef .Name ),
748+ }.String (),
749+ )
750+ }
751+ }
752+ }
753+ return secretReferences
754+ }
755+
734756// addEnvoyExtensionPolicyIndexers adds indexing on EnvoyExtensionPolicy.
735757// - For Service objects that are referenced in EnvoyExtensionPolicy objects via
736758// `.spec.extProc.[*].service.backendObjectReference`. This helps in querying for
0 commit comments