diff --git a/pkg/engine/api/policy.go b/pkg/engine/api/policy.go index 584f3e33db..35fd934c3d 100644 --- a/pkg/engine/api/policy.go +++ b/pkg/engine/api/policy.go @@ -23,6 +23,8 @@ type GenericPolicy interface { GetPolicy() interface{} // GetType returns policy type GetType() PolicyType + // GetAPIVersion returns policy API version + GetAPIVersion() string // GetName returns policy name GetName() string // GetNamespace returns policy namespace @@ -51,6 +53,10 @@ func (p *KyvernoPolicy) GetType() PolicyType { return KyvernoPolicyType } +func (p *KyvernoPolicy) GetAPIVersion() string { + return "kyverno.io/v1" +} + func (p *KyvernoPolicy) GetName() string { return p.policy.GetName() } @@ -97,6 +103,10 @@ func (p *ValidatingAdmissionPolicy) GetType() PolicyType { return ValidatingAdmissionPolicyType } +func (p *ValidatingAdmissionPolicy) GetAPIVersion() string { + return "admissionregistration.k8s.io/v1alpha1" +} + func (p *ValidatingAdmissionPolicy) GetName() string { return p.policy.GetName() } diff --git a/pkg/event/events.go b/pkg/event/events.go index 13d34268d5..599803f905 100644 --- a/pkg/event/events.go +++ b/pkg/event/events.go @@ -19,8 +19,7 @@ func NewPolicyFailEvent(source Source, reason Reason, engineResponse engineapi.E } pol := engineResponse.Policy() regarding := corev1.ObjectReference{ - // TODO: iirc it's not safe to assume api version is set - APIVersion: "kyverno.io/v1", + APIVersion: pol.GetAPIVersion(), Kind: pol.GetKind(), Name: pol.GetName(), Namespace: pol.GetNamespace(), @@ -94,8 +93,7 @@ func NewPolicyAppliedEvent(source Source, engineResponse engineapi.EngineRespons action = ResourcePassed } regarding := corev1.ObjectReference{ - // TODO: iirc it's not safe to assume api version is set - APIVersion: "kyverno.io/v1", + APIVersion: policy.GetAPIVersion(), Kind: policy.GetKind(), Name: policy.GetName(), Namespace: policy.GetNamespace(),