@@ -40,6 +40,7 @@ const (
40
40
backendSecurityPolicyIndex = "backendSecurityPolicyIndex"
41
41
configMapCtpIndex = "configMapCtpIndex"
42
42
secretCtpIndex = "secretCtpIndex"
43
+ secretBtlsIndex = "secretBtlsIndex"
43
44
configMapBtlsIndex = "configMapBtlsIndex"
44
45
backendEnvoyExtensionPolicyIndex = "backendEnvoyExtensionPolicyIndex"
45
46
backendEnvoyProxyTelemetryIndex = "backendEnvoyProxyTelemetryIndex"
@@ -702,14 +703,17 @@ func configMapRouteFilterIndexFunc(rawObj client.Object) []string {
702
703
return configMapReferences
703
704
}
704
705
705
- // addBtlsIndexers adds indexing on BackendTLSPolicy, for ConfigMap objects that are
706
+ // addBtlsIndexers adds indexing on BackendTLSPolicy, for ConfigMap and Secret objects that are
706
707
// referenced in BackendTLSPolicy objects. This helps in querying for BackendTLSPolicies that are
707
708
// affected by a particular ConfigMap CRUD.
708
709
func addBtlsIndexers (ctx context.Context , mgr manager.Manager ) error {
709
710
if err := mgr .GetFieldIndexer ().IndexField (ctx , & gwapiv1a3.BackendTLSPolicy {}, configMapBtlsIndex , configMapBtlsIndexFunc ); err != nil {
710
711
return err
711
712
}
712
713
714
+ if err := mgr .GetFieldIndexer ().IndexField (ctx , & gwapiv1a3.BackendTLSPolicy {}, secretBtlsIndex , secretBtlsIndexFunc ); err != nil {
715
+ return err
716
+ }
713
717
return nil
714
718
}
715
719
@@ -731,6 +735,24 @@ func configMapBtlsIndexFunc(rawObj client.Object) []string {
731
735
return configMapReferences
732
736
}
733
737
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
+
734
756
// addEnvoyExtensionPolicyIndexers adds indexing on EnvoyExtensionPolicy.
735
757
// - For Service objects that are referenced in EnvoyExtensionPolicy objects via
736
758
// `.spec.extProc.[*].service.backendObjectReference`. This helps in querying for
0 commit comments