diff --git a/pkg/event/events.go b/pkg/event/events.go index e33222f516..93fbf24686 100644 --- a/pkg/event/events.go +++ b/pkg/event/events.go @@ -125,12 +125,12 @@ func NewBackgroundSuccessEvent(policy, rule string, source Source, r *unstructur func NewPolicyExceptionEvents(engineResponse *engineapi.EngineResponse, ruleResp *engineapi.RuleResponse) []Info { exceptionName, exceptionNamespace := ruleResp.Exception.GetName(), ruleResp.Exception.GetNamespace() - policyMessage := fmt.Sprintf("resource %s was skipped from rule %s due to policy exception %s/%s", engineResponse.PatchedResource.GetName(), ruleResp.Name, exceptionNamespace, exceptionName) + policyMessage := fmt.Sprintf("resource %s was skipped from rule %s due to policy exception %s/%s", resourceKey(engineResponse.PatchedResource), ruleResp.Name, exceptionNamespace, exceptionName) var exceptionMessage string if engineResponse.Policy.GetNamespace() == "" { - exceptionMessage = fmt.Sprintf("resource %s was skipped from policy rule %s/%s", engineResponse.PatchedResource.GetName(), engineResponse.Policy.GetName(), ruleResp.Name) + exceptionMessage = fmt.Sprintf("resource %s was skipped from policy rule %s/%s", resourceKey(engineResponse.PatchedResource), engineResponse.Policy.GetName(), ruleResp.Name) } else { - exceptionMessage = fmt.Sprintf("resource %s was skipped from policy rule %s/%s/%s", engineResponse.PatchedResource.GetName(), engineResponse.Policy.GetNamespace(), engineResponse.Policy.GetName(), ruleResp.Name) + exceptionMessage = fmt.Sprintf("resource %s was skipped from policy rule %s/%s/%s", resourceKey(engineResponse.PatchedResource), engineResponse.Policy.GetNamespace(), engineResponse.Policy.GetName(), ruleResp.Name) } policyEvent := Info{ Kind: getPolicyKind(engineResponse.Policy), @@ -148,3 +148,11 @@ func NewPolicyExceptionEvents(engineResponse *engineapi.EngineResponse, ruleResp } return []Info{policyEvent, exceptionEvent} } + +func resourceKey(resource unstructured.Unstructured) string { + if resource.GetNamespace() != "" { + return strings.Join([]string{resource.GetKind(), resource.GetNamespace(), resource.GetName()}, "/") + } + + return strings.Join([]string{resource.GetKind(), resource.GetName()}, "/") +}