Documentation
¶
Index ¶
- Variables
- type PolicySet
- type TestCase
- func (tc *TestCase) GetAuthorizer() []evaluator.AuthorizationMockConfig
- func (tc *TestCase) GetError() error
- func (tc *TestCase) GetExpectAllowed() bool
- func (tc *TestCase) GetExpectAuditAnnotations() map[string]string
- func (tc *TestCase) GetExpectMessage() string
- func (tc *TestCase) GetExpectWarnings() []string
- func (tc *TestCase) GetExpectedObject() *unstructured.Unstructured
- func (tc *TestCase) GetNamespaceObj() *unstructured.Unstructured
- func (tc *TestCase) GetObject() *unstructured.Unstructured
- func (tc *TestCase) GetOldObject() *unstructured.Unstructured
- func (tc *TestCase) GetParams() *unstructured.Unstructured
- func (tc *TestCase) GetRequest() *admissionv1.AdmissionRequest
- func (tc *TestCase) GetUserInfo() user.Info
- type TestSuite
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrCreateRequiresObject = errors.New("operation CREATE requires object data") ErrDeleteRequiresOldObject = errors.New("operation DELETE requires oldObject data") ErrUpdateRequiresObject = errors.New("operation UPDATE requires object data") ErrUpdateRequiresOldObject = errors.New("operation UPDATE requires oldObject data") ErrUnknownOperation = errors.New("unknown operation") ErrCannotInferOperation = errors.New("cannot infer operation") ErrUnknownFileType = errors.New("unknown file type") ErrUnsupportedV1Beta1Policy = errors.New("ValidatingAdmissionPolicy v1beta1 not supported, use v1") ErrUnsupportedV1Beta1Binding = errors.New("ValidatingAdmissionPolicyBinding v1beta1 not supported, use v1") ErrUnsupportedV1Beta1MutPolicy = errors.New("MutatingAdmissionPolicy v1beta1 not supported, use v1") ErrUnsupportedV1Beta1MutBinding = errors.New("MutatingAdmissionPolicyBinding v1beta1 not supported, use v1") ErrConflictObject = errors.New("conflict: object defined in multiple files") ErrConflictOldObject = errors.New("conflict: oldObject defined in multiple files") ErrConflictNamespaceObject = errors.New("conflict: namespaceObject defined in multiple files") ErrConflictParams = errors.New("conflict: params defined in multiple files") ErrOperationMismatch = errors.New("explicit operation does not match inferred operation") )
Functions ¶
This section is empty.
Types ¶
type PolicySet ¶
type PolicySet struct {
Dir string
MutatingPolicies []*admissionv1.MutatingAdmissionPolicy
MutatingBindings []*admissionv1.MutatingAdmissionPolicyBinding
ValidatingPolicies []*admissionv1.ValidatingAdmissionPolicy
ValidatingBindings []*admissionv1.ValidatingAdmissionPolicyBinding
}
PolicySet contains policies and bindings loaded from a directory.
func LoadPolicySet ¶
Skips directories: tests, testdata, .git, and any starting with '.'.
type TestCase ¶
type TestCase struct {
Name string
FilePath string
PolicyName string
// Inputs for evaluation
Request *admissionv1.AdmissionRequest
Object *unstructured.Unstructured
OldObject *unstructured.Unstructured
Params *unstructured.Unstructured
NamespaceObj *unstructured.Unstructured
UserInfo user.Info
Authorizer []evaluator.AuthorizationMockConfig
// Expected outcomes
ExpectAllowed bool
ExpectMessage string
ExpectWarnings []string
ExpectAuditAnnotations map[string]string
ExpectMutated bool
ExpectedObject *unstructured.Unstructured
Error error
}
TestCase represents a single test case with all inputs and expected outcomes.
func (*TestCase) GetAuthorizer ¶ added in v0.1.1
func (tc *TestCase) GetAuthorizer() []evaluator.AuthorizationMockConfig
func (*TestCase) GetExpectAllowed ¶
func (*TestCase) GetExpectAuditAnnotations ¶
func (*TestCase) GetExpectMessage ¶
func (*TestCase) GetExpectWarnings ¶
func (*TestCase) GetExpectedObject ¶
func (tc *TestCase) GetExpectedObject() *unstructured.Unstructured
func (*TestCase) GetNamespaceObj ¶
func (tc *TestCase) GetNamespaceObj() *unstructured.Unstructured
func (*TestCase) GetObject ¶
func (tc *TestCase) GetObject() *unstructured.Unstructured
func (*TestCase) GetOldObject ¶
func (tc *TestCase) GetOldObject() *unstructured.Unstructured
func (*TestCase) GetParams ¶
func (tc *TestCase) GetParams() *unstructured.Unstructured
func (*TestCase) GetRequest ¶
func (tc *TestCase) GetRequest() *admissionv1.AdmissionRequest
Getter methods for TestCase to satisfy evaluator.TestCase interface.
func (*TestCase) GetUserInfo ¶
type TestSuite ¶
type TestSuite struct {
Name string
Path string
MutatingPolicies []*admissionregv1.MutatingAdmissionPolicy
MutatingBindings []*admissionregv1.MutatingAdmissionPolicyBinding
ValidatingPolicies []*admissionregv1.ValidatingAdmissionPolicy
ValidatingBindings []*admissionregv1.ValidatingAdmissionPolicyBinding
Tests []*TestCase
}
TestSuite represents a policy directory with its policies, bindings, and test cases.
func DiscoverTestSuites ¶
DiscoverTestSuites discovers all policy test suites in a directory. Each subdirectory with policy files is considered a test suite. Test requests are loaded from the tests/ subdirectory if present.
Click to show internal directories.
Click to hide internal directories.