package v1alpha1 import ( admissionregistrationv1 "k8s.io/api/admissionregistration/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // +genclient // +genclient:nonNamespaced // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=validatingpolicies,scope="Cluster",shortName=vpol,categories=kyverno // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" // +kubebuilder:printcolumn:name="READY",type=string,JSONPath=`.status.ready` // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type ValidatingPolicy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ValidatingPolicySpec `json:"spec"` // Status contains policy runtime data. // +optional Status PolicyStatus `json:"status,omitempty"` } func (s *ValidatingPolicy) GetMatchConstraints() admissionregistrationv1.MatchResources { if s.Spec.MatchConstraints == nil { return 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 } return *s.Spec.FailurePolicy } func (s *ValidatingPolicy) GetWebhookConfiguration() *WebhookConfiguration { return s.Spec.WebhookConfiguration } func (s *ValidatingPolicy) GetVariables() []admissionregistrationv1.Variable { return s.Spec.Variables } func (s *ValidatingPolicy) GetSpec() *ValidatingPolicySpec { return &s.Spec } func (s *ValidatingPolicy) GetStatus() *PolicyStatus { return &s.Status } func (s *ValidatingPolicy) GetKind() string { return "ValidatingPolicy" } // +kubebuilder:object:root=true // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ValidatingPolicyList is a list of ValidatingPolicy instances type ValidatingPolicyList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []ValidatingPolicy `json:"items"` }