1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00

feat: add generic policy interface (#11922)

* feat: add generic policy interface

Signed-off-by: Mariam Fahmy <mariam.fahmy@nirmata.com>

* fix codegen

Signed-off-by: Mariam Fahmy <mariam.fahmy@nirmata.com>

---------

Signed-off-by: Mariam Fahmy <mariam.fahmy@nirmata.com>
Co-authored-by: shuting <shuting@nirmata.com>
This commit is contained in:
Mariam Fahmy 2025-01-20 10:28:13 +02:00 committed by GitHub
parent 990ab7b622
commit 879f76a1d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,13 @@
package v2alpha1
import (
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
)
// +kubebuilder:object:generate=false
type GenericPolicy interface {
GetMatchConstraints() admissionregistrationv1.MatchResources
GetMatchConditions() []admissionregistrationv1.MatchCondition
GetFailurePolicy() admissionregistrationv1.FailurePolicyType
GetVariables() []admissionregistrationv1.Variable
}

View file

@ -17,6 +17,14 @@ type ValidatingPolicy struct {
Spec ValidatingPolicySpec `json:"spec"`
}
func (s *ValidatingPolicy) GetMatchConstraints() admissionregistrationv1.MatchResources {
return *s.Spec.MatchConstraints
}
func (s *ValidatingPolicy) GetMatchConditions() []admissionregistrationv1.MatchCondition {
return s.Spec.MatchConditions
}
func (s *ValidatingPolicy) GetFailurePolicy() admissionregistrationv1.FailurePolicyType {
if s.Spec.FailurePolicy == nil {
return admissionregistrationv1.Fail
@ -24,6 +32,10 @@ func (s *ValidatingPolicy) GetFailurePolicy() admissionregistrationv1.FailurePol
return *s.Spec.FailurePolicy
}
func (s *ValidatingPolicy) GetVariables() []admissionregistrationv1.Variable {
return s.Spec.Variables
}
// +kubebuilder:object:root=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View file

@ -7524,6 +7524,10 @@ int
</tbody>
</table>
<hr />
<h3 id="kyverno.io/v2alpha1.GenericPolicy">GenericPolicy
</h3>
<p>
</p>
<h3 id="kyverno.io/v2alpha1.GlobalContextEntrySpec">GlobalContextEntrySpec
</h3>
<p>