Skip to content

Commit 3d9aab3

Browse files
authored
chore: speed up resolveResourceReferences (#625)
* chore: speed up resolveResourceReferences Signed-off-by: Michael Crenshaw <[email protected]> * revert unnecessary changes Signed-off-by: Michael Crenshaw <[email protected]> --------- Signed-off-by: Michael Crenshaw <[email protected]>
1 parent bd7681a commit 3d9aab3

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

pkg/cache/references.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package cache
33
import (
44
"encoding/json"
55
"fmt"
6-
"regexp"
76
v1 "k8s.io/api/apps/v1"
87
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
98
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
109
"k8s.io/apimachinery/pkg/types"
10+
"regexp"
1111

1212
"github.com/argoproj/gitops-engine/pkg/utils/kube"
1313
)
@@ -25,15 +25,15 @@ func (c *clusterCache) resolveResourceReferences(un *unstructured.Unstructured)
2525
switch {
2626

2727
// Special case for endpoint. Remove after https://github.com/kubernetes/kubernetes/issues/28483 is fixed
28-
case gvk.Group == "" && gvk.Kind == kube.EndpointsKind && len(un.GetOwnerReferences()) == 0:
28+
case gvk.Group == "" && gvk.Kind == kube.EndpointsKind && len(ownerRefs) == 0:
2929
ownerRefs = append(ownerRefs, metav1.OwnerReference{
3030
Name: un.GetName(),
3131
Kind: kube.ServiceKind,
3232
APIVersion: "v1",
3333
})
3434

3535
// Special case for Operator Lifecycle Manager ClusterServiceVersion:
36-
case un.GroupVersionKind().Group == "operators.coreos.com" && un.GetKind() == "ClusterServiceVersion":
36+
case gvk.Group == "operators.coreos.com" && gvk.Kind == "ClusterServiceVersion":
3737
if un.GetAnnotations()["olm.operatorGroup"] != "" {
3838
ownerRefs = append(ownerRefs, metav1.OwnerReference{
3939
Name: un.GetAnnotations()["olm.operatorGroup"],
@@ -43,12 +43,12 @@ func (c *clusterCache) resolveResourceReferences(un *unstructured.Unstructured)
4343
}
4444

4545
// Edge case: consider auto-created service account tokens as a child of service account objects
46-
case un.GetKind() == kube.SecretKind && un.GroupVersionKind().Group == "":
46+
case gvk.Kind == kube.SecretKind && gvk.Group == "":
4747
if yes, ref := isServiceAccountTokenSecret(un); yes {
4848
ownerRefs = append(ownerRefs, ref)
4949
}
5050

51-
case (un.GroupVersionKind().Group == "apps" || un.GroupVersionKind().Group == "extensions") && un.GetKind() == kube.StatefulSetKind:
51+
case (gvk.Group == "apps" || gvk.Group == "extensions") && gvk.Kind == kube.StatefulSetKind:
5252
if refs, err := isStatefulSetChild(un); err != nil {
5353
c.log.Error(err, fmt.Sprintf("Failed to extract StatefulSet %s/%s PVC references", un.GetNamespace(), un.GetName()))
5454
} else {
@@ -74,7 +74,7 @@ func isStatefulSetChild(un *unstructured.Unstructured) (func(kube.ResourceKey) b
7474
return func(key kube.ResourceKey) bool {
7575
if key.Kind == kube.PersistentVolumeClaimKind && key.GroupKind().Group == "" {
7676
for _, templ := range templates {
77-
if match, _ := regexp.MatchString(fmt.Sprintf(`%s-%s-\d+$`, templ.Name, un.GetName()), key.Name); match {
77+
if match, _ := regexp.MatchString(fmt.Sprintf(`%s-%s-\d+$`, templ.Name, un.GetName()), key.Name); match {
7878
return true
7979
}
8080
}

0 commit comments

Comments
 (0)