diff --git a/pkg/analyzer/hpa.go b/pkg/analyzer/hpa.go index 76e4a5ac00..c70b93cc3a 100644 --- a/pkg/analyzer/hpa.go +++ b/pkg/analyzer/hpa.go @@ -140,8 +140,10 @@ func (HpaAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.HorizontalPodAutoscalers.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.HorizontalPodAutoscalers.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/ingress.go b/pkg/analyzer/ingress.go index 7553405d13..648266f014 100644 --- a/pkg/analyzer/ingress.go +++ b/pkg/analyzer/ingress.go @@ -163,8 +163,10 @@ func (IngressAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.Ingress.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.Ingress.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/log.go b/pkg/analyzer/log.go index 282b2232dd..a136d4ae7a 100644 --- a/pkg/analyzer/log.go +++ b/pkg/analyzer/log.go @@ -96,8 +96,10 @@ func (LogAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Name: key, Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.Pod.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.Pod.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/mutating_webhook.go b/pkg/analyzer/mutating_webhook.go index 0360b796e2..fa12e2ba2f 100644 --- a/pkg/analyzer/mutating_webhook.go +++ b/pkg/analyzer/mutating_webhook.go @@ -151,8 +151,10 @@ func (MutatingWebhookAnalyzer) Analyze(a common.Analyzer) ([]common.Result, erro Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.MutatingWebhook.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.MutatingWebhook.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/node.go b/pkg/analyzer/node.go index 0edc76a858..fe5836ccbd 100644 --- a/pkg/analyzer/node.go +++ b/pkg/analyzer/node.go @@ -74,8 +74,10 @@ func (NodeAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.Node.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.Node.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/pdb.go b/pkg/analyzer/pdb.go index 982c700d34..5ef2fba5d0 100644 --- a/pkg/analyzer/pdb.go +++ b/pkg/analyzer/pdb.go @@ -99,8 +99,10 @@ func (PdbAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.PodDisruptionBudget.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.PodDisruptionBudget.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/pod.go b/pkg/analyzer/pod.go index 4bb5207600..10e9150fa4 100644 --- a/pkg/analyzer/pod.go +++ b/pkg/analyzer/pod.go @@ -80,8 +80,10 @@ func (PodAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.Pod.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.Pod.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/pvc.go b/pkg/analyzer/pvc.go index 1897742889..699ef38ce3 100644 --- a/pkg/analyzer/pvc.go +++ b/pkg/analyzer/pvc.go @@ -74,8 +74,10 @@ func (PvcAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.PersistentVolumeClaim.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.PersistentVolumeClaim.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/rs.go b/pkg/analyzer/rs.go index a8f5778c67..be3fa493fc 100644 --- a/pkg/analyzer/rs.go +++ b/pkg/analyzer/rs.go @@ -72,8 +72,10 @@ func (ReplicaSetAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.ReplicaSet.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.ReplicaSet.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } return a.Results, nil diff --git a/pkg/analyzer/service.go b/pkg/analyzer/service.go index 005cf44a5b..47d64634e1 100644 --- a/pkg/analyzer/service.go +++ b/pkg/analyzer/service.go @@ -128,8 +128,10 @@ func (ServiceAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.Endpoint.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.Endpoint.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } return a.Results, nil diff --git a/pkg/analyzer/statefulset.go b/pkg/analyzer/statefulset.go index 106c487c3d..fbe9c605a8 100644 --- a/pkg/analyzer/statefulset.go +++ b/pkg/analyzer/statefulset.go @@ -109,8 +109,10 @@ func (StatefulSetAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.StatefulSet.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.StatefulSet.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/analyzer/validating_webhook.go b/pkg/analyzer/validating_webhook.go index b29cc33974..cf97daaccd 100644 --- a/pkg/analyzer/validating_webhook.go +++ b/pkg/analyzer/validating_webhook.go @@ -149,8 +149,10 @@ func (ValidatingWebhookAnalyzer) Analyze(a common.Analyzer) ([]common.Result, er Error: value.FailureDetails, } - parent, _ := util.GetParent(a.Client, value.ValidatingWebhook.ObjectMeta) - currentAnalysis.ParentObject = parent + parent, found := util.GetParent(a.Client, value.ValidatingWebhook.ObjectMeta) + if found { + currentAnalysis.ParentObject = parent + } a.Results = append(a.Results, currentAnalysis) } diff --git a/pkg/util/util.go b/pkg/util/util.go index bc5db65cf4..67852c6c3e 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -45,7 +45,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if rs.OwnerReferences != nil { return GetParent(client, rs.ObjectMeta) } - return "ReplicaSet/" + rs.Name, false + return "ReplicaSet/" + rs.Name, true case "Deployment": dep, err := client.GetClient().AppsV1().Deployments(meta.Namespace).Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -55,7 +55,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if dep.OwnerReferences != nil { return GetParent(client, dep.ObjectMeta) } - return "Deployment/" + dep.Name, false + return "Deployment/" + dep.Name, true case "StatefulSet": sts, err := client.GetClient().AppsV1().StatefulSets(meta.Namespace).Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -65,7 +65,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if sts.OwnerReferences != nil { return GetParent(client, sts.ObjectMeta) } - return "StatefulSet/" + sts.Name, false + return "StatefulSet/" + sts.Name, true case "DaemonSet": ds, err := client.GetClient().AppsV1().DaemonSets(meta.Namespace).Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -75,7 +75,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if ds.OwnerReferences != nil { return GetParent(client, ds.ObjectMeta) } - return "DaemonSet/" + ds.Name, false + return "DaemonSet/" + ds.Name, true case "Ingress": ds, err := client.GetClient().NetworkingV1().Ingresses(meta.Namespace).Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -85,7 +85,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if ds.OwnerReferences != nil { return GetParent(client, ds.ObjectMeta) } - return "Ingress/" + ds.Name, false + return "Ingress/" + ds.Name, true case "MutatingWebhookConfiguration": mw, err := client.GetClient().AdmissionregistrationV1().MutatingWebhookConfigurations().Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -95,7 +95,7 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if mw.OwnerReferences != nil { return GetParent(client, mw.ObjectMeta) } - return "MutatingWebhook/" + mw.Name, false + return "MutatingWebhook/" + mw.Name, true case "ValidatingWebhookConfiguration": vw, err := client.GetClient().AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(context.Background(), owner.Name, metav1.GetOptions{}) @@ -105,11 +105,11 @@ func GetParent(client *kubernetes.Client, meta metav1.ObjectMeta) (string, bool) if vw.OwnerReferences != nil { return GetParent(client, vw.ObjectMeta) } - return "ValidatingWebhook/" + vw.Name, false + return "ValidatingWebhook/" + vw.Name, true } } } - return meta.Name, false + return "", false } func RemoveDuplicates(slice []string) ([]string, []string) { diff --git a/pkg/util/util_test.go b/pkg/util/util_test.go index 609b2d7995..533322b2e0 100644 --- a/pkg/util/util_test.go +++ b/pkg/util/util_test.go @@ -82,7 +82,7 @@ func TestGetParent(t *testing.T) { }{ { kind: "Unknown", - expectedOutput: ownerName, + expectedOutput: "", }, { kind: "ReplicaSet", @@ -155,8 +155,12 @@ func TestGetParent(t *testing.T) { }, } output, ok := GetParent(&kubeClient, meta) + if meta.OwnerReferences[0].Name != "" { + require.Equal(t, true, ok) + } else { + require.Equal(t, false, ok) + } require.Equal(t, tt.expectedOutput, output) - require.Equal(t, false, ok) }) } }