Documentation
¶
Index ¶
- func BindingMatches(attr admission.Attributes, o admission.ObjectInterfaces, ...) (bool, error)
- func DefinitionMatches(attr admission.Attributes, o admission.ObjectInterfaces, ...) (bool, schema.GroupVersionResource, schema.GroupVersionKind, error)
- type AuditAnnotationCondition
- type MessageExpressionCondition
- type NamespaceLabels
- type PolicyAuditAnnotation
- type PolicyAuditAnnotationAction
- type PolicyDecision
- type PolicyDecisionAction
- type PolicyDecisionEvaluation
- type ValidateResult
- type ValidationCondition
- type Validator
- type Variable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BindingMatches ¶
func BindingMatches(attr admission.Attributes, o admission.ObjectInterfaces, namespaceLabels NamespaceLabels, matchResources *v1.MatchResources) (bool, error)
BindingMatches returns whether a binding's matchResources match the request. A binding without any matches every request its policy does.
func DefinitionMatches ¶
func DefinitionMatches(attr admission.Attributes, o admission.ObjectInterfaces, namespaceLabels NamespaceLabels, constraints *v1.MatchResources) (bool, schema.GroupVersionResource, schema.GroupVersionKind, error)
DefinitionMatches returns whether a policy's matchConstraints match the request, and the resource and kind it matched as.
Types ¶
type AuditAnnotationCondition ¶
AuditAnnotationCondition contains the inputs needed to compile, evaluate and publish a cel audit annotation
func (*AuditAnnotationCondition) GetExpression ¶
func (v *AuditAnnotationCondition) GetExpression() string
func (*AuditAnnotationCondition) ReturnTypes ¶
func (v *AuditAnnotationCondition) ReturnTypes() []*celgo.Type
type MessageExpressionCondition ¶
type MessageExpressionCondition struct {
MessageExpression string
}
func (*MessageExpressionCondition) GetExpression ¶
func (m *MessageExpressionCondition) GetExpression() string
func (*MessageExpressionCondition) ReturnTypes ¶
func (m *MessageExpressionCondition) ReturnTypes() []*celgo.Type
type NamespaceLabels ¶
NamespaceLabels returns the labels of the named Namespace.
type PolicyAuditAnnotation ¶
type PolicyAuditAnnotationAction ¶
type PolicyAuditAnnotationAction string
const ( // AuditAnnotationActionPublish indicates that the audit annotation should be // published with the audit event. AuditAnnotationActionPublish PolicyAuditAnnotationAction = "publish" // AuditAnnotationActionError indicates that the valueExpression resulted // in an error. AuditAnnotationActionError PolicyAuditAnnotationAction = "error" // AuditAnnotationActionExclude indicates that the audit annotation should be excluded // because the valueExpression evaluated to null, or because FailurePolicy is Ignore // and the expression failed with a parse error, type check error, or runtime error. AuditAnnotationActionExclude PolicyAuditAnnotationAction = "exclude" )
type PolicyDecision ¶
type PolicyDecision struct {
Action PolicyDecisionAction
Evaluation PolicyDecisionEvaluation
Message string
Reason metav1.StatusReason
Elapsed time.Duration
}
PolicyDecision contains the action determined from a cel evaluation along with metadata such as message, reason and duration
type PolicyDecisionAction ¶
type PolicyDecisionAction string
const ( ActionAdmit PolicyDecisionAction = "admit" ActionDeny PolicyDecisionAction = "deny" )
type PolicyDecisionEvaluation ¶
type PolicyDecisionEvaluation string
const ( EvalAdmit PolicyDecisionEvaluation = "admit" EvalError PolicyDecisionEvaluation = "error" EvalDeny PolicyDecisionEvaluation = "deny" )
type ValidateResult ¶
type ValidateResult struct {
// Decisions specifies the outcome of the validation as well as the details about the decision.
Decisions []PolicyDecision
// AuditAnnotations specifies the audit annotations that should be recorded for the validation.
AuditAnnotations []PolicyAuditAnnotation
}
ValidateResult defines the result of a Validator.Validate operation.
type ValidationCondition ¶
type ValidationCondition struct {
Expression string
Message string
Reason *metav1.StatusReason
}
ValidationCondition contains the inputs needed to compile, evaluate and validate a cel expression
func (*ValidationCondition) GetExpression ¶
func (v *ValidationCondition) GetExpression() string
func (*ValidationCondition) ReturnTypes ¶
func (v *ValidationCondition) ReturnTypes() []*celgo.Type
type Validator ¶
type Validator interface {
// Validate is used to take cel evaluations and convert into decisions
// runtimeCELCostBudget was added for testing purpose only. Callers should always use const RuntimeCELCostBudget from k8s.io/apiserver/pkg/apis/cel/config.go as input.
Validate(ctx context.Context, matchedResource schema.GroupVersionResource, versionedAttr *admission.VersionedAttributes, versionedParams runtime.Object, namespace *corev1.Namespace, runtimeCELCostBudget int64, authz authorizer.Authorizer) ValidateResult
}
Validator is contains logic for converting ValidationEvaluation to PolicyDecisions
func NewValidator ¶
func NewValidator(validationFilter cel.ConditionEvaluator, celMatcher matchconditions.Matcher, auditAnnotationFilter, messageFilter cel.ConditionEvaluator, failPolicy *v1.FailurePolicyType) Validator
type Variable ¶
Variable is a named expression for composition.