@@ -998,37 +998,47 @@ func (c *Configuration) findResourcesForResourceReference(namespace string, name
998998 defer c .lock .RUnlock ()
999999
10001000 var result []Resource
1001+ seen := make (map [string ]struct {})
10011002
10021003 for _ , h := range getSortedResourceKeys (c .hosts ) {
10031004 r := c .hosts [h ]
1005+ key := r .GetKeyWithKind ()
1006+ if _ , ok := seen [key ]; ok {
1007+ continue
1008+ }
10041009
10051010 switch impl := r .(type ) {
10061011 case * IngressConfiguration :
10071012 if checker .IsReferencedByIngress (namespace , name , impl .Ingress ) {
1013+ seen [key ] = struct {}{}
10081014 result = append (result , r )
10091015 continue
10101016 }
10111017
10121018 for _ , fm := range impl .Minions {
10131019 if checker .IsReferencedByMinion (namespace , name , fm .Ingress ) {
1020+ seen [key ] = struct {}{}
10141021 result = append (result , r )
10151022 break
10161023 }
10171024 }
10181025 case * VirtualServerConfiguration :
10191026 if checker .IsReferencedByVirtualServer (namespace , name , impl .VirtualServer ) {
1027+ seen [key ] = struct {}{}
10201028 result = append (result , r )
10211029 continue
10221030 }
10231031
10241032 for _ , vsr := range impl .VirtualServerRoutes {
10251033 if checker .IsReferencedByVirtualServerRoute (namespace , name , vsr ) {
1034+ seen [key ] = struct {}{}
10261035 result = append (result , r )
10271036 break
10281037 }
10291038 }
10301039 case * TransportServerConfiguration :
10311040 if checker .IsReferencedByTransportServer (namespace , name , impl .TransportServer ) {
1041+ seen [key ] = struct {}{}
10321042 result = append (result , r )
10331043 continue
10341044 }
@@ -1037,8 +1047,13 @@ func (c *Configuration) findResourcesForResourceReference(namespace string, name
10371047
10381048 for _ , lh := range getSortedListenerHostKeys (c .listenerHosts ) {
10391049 tsConfig := c .listenerHosts [lh ]
1050+ key := tsConfig .GetKeyWithKind ()
1051+ if _ , ok := seen [key ]; ok {
1052+ continue
1053+ }
10401054
10411055 if checker .IsReferencedByTransportServer (namespace , name , tsConfig .TransportServer ) {
1056+ seen [key ] = struct {}{}
10421057 result = append (result , tsConfig )
10431058 continue
10441059 }
0 commit comments