Kyverno Policy Report

{{ $category := "" }} {{ range $key, $validation := . }} {{ if not (eq $category $validation.Policy.Category) }} {{ $category = $validation.Policy.Category }}

{{ $category }}

{{ end }}

{{ $validation.Policy.Title }}

{{ $validation.Name }} | {{ $validation.Policy.Category }} | Severity: {{ $validation.Policy.Severity }}

{{ $validation.Policy.Description }}

{{ $pass := 0 }} {{ $warning := 0 }} {{ $fail := 0 }} {{ $error := 0 }}

Summary

{{ $pass := 0 }} {{ $warning := 0 }} {{ $fail := 0 }} {{ $error := 0 }} {{ range $ns, $val := $validation.Groups }} {{ range $ruleName, $rule := $val.Rules }} {{ $pass = add $pass $rule.Summary.Pass }} {{ $warning = add $warning $rule.Summary.Warning }} {{ $fail = add $fail $rule.Summary.Fail }} {{ $error = add $error $rule.Summary.Error }} {{ end }} {{ end }}
Namespace Rule Pass Warning Fail Error
{{ or $ns "Cluster Scoped" }} {{ $ruleName }}
{{ $rule.Summary.Pass }}
{{ $rule.Summary.Warning }}
{{ $rule.Summary.Fail }}
{{ $rule.Summary.Error }}
Summary
{{ $pass }}
{{ $warning }}
{{ $fail }}
{{ $error }}

Details per Namespace

{{ range $ns, $val := $validation.Groups }}
Namespace: {{ or $ns "Cluster Scoped" }}
Pass
Warning
Fail
Error
{{ $val.Summary.Pass }}
{{ $val.Summary.Warning }}
{{ $val.Summary.Fail }}
{{ $val.Summary.Error }}
Resource Details
{{ range $ruleName, $rule := $val.Rules }} {{ range $key, $resource := $rule.Resources }} {{ end }} {{ end }}
APIVersion Kind Name Rule Result
{{ $resource.APIVersion }} {{ $resource.Kind }} {{ $resource.Name }} {{ $ruleName }}
{{ $resource.Status }}
{{ end }}
{{ end }}