Documentation ¶
Index ¶
- func ClockSteppingWebhookHandler(t testing.TB, fakeClock *testingclock.FakeClock) func(http.ResponseWriter, *http.Request)
- func ConvertToMutatingWebhooks(webhooks []registrationv1.ValidatingWebhook) []registrationv1.MutatingWebhook
- func NewAttribute(namespace string, labels map[string]string, dryRun bool) admission.Attributes
- func NewAttributeUnstructured(namespace string, labels map[string]string, dryRun bool) admission.Attributes
- func NewAuthenticationInfoResolver(cacheMisses *int32) webhook.AuthenticationInfoResolver
- func NewFakeMutatingDataSource(name string, webhooks []registrationv1.MutatingWebhook, stopCh <-chan struct{}) (clientset kubernetes.Interface, factory informers.SharedInformerFactory)
- func NewFakeValidatingDataSource(name string, webhooks []registrationv1.ValidatingWebhook, ...) (clientset kubernetes.Interface, factory informers.SharedInformerFactory)
- func NewObjectInterfacesForTest() admission.ObjectInterfaces
- func NewPanickingAuthenticationInfoResolver(panicMessage string) webhook.AuthenticationInfoResolver
- func NewPanickingServiceResolver(panicMessage string) webhook.ServiceResolver
- func NewServiceResolver(base url.URL) webhook.ServiceResolver
- func NewTestServer(t testing.TB) *httptest.Server
- func NewTestServerWithHandler(t testing.TB, handler func(http.ResponseWriter, *http.Request)) *httptest.Server
- func Wrapper(r webhook.AuthenticationInfoResolver) func(webhook.AuthenticationInfoResolver) webhook.AuthenticationInfoResolver
- type CachedTest
- type DurationTest
- type FakeAttributes
- type MutatingTest
- type ValidatingTest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClockSteppingWebhookHandler ¶ added in v0.23.0
func ClockSteppingWebhookHandler(t testing.TB, fakeClock *testingclock.FakeClock) func(http.ResponseWriter, *http.Request)
ClockSteppingWebhookHandler given a fakeClock returns a request handler that moves time in given clock by an amount specified in the webhook request
func ConvertToMutatingWebhooks ¶
func ConvertToMutatingWebhooks(webhooks []registrationv1.ValidatingWebhook) []registrationv1.MutatingWebhook
ConvertToMutatingWebhooks converts a validating webhook to a mutating one for test purposes.
func NewAttribute ¶
NewAttribute returns static admission Attributes for testing.
func NewAttributeUnstructured ¶
func NewAttributeUnstructured(namespace string, labels map[string]string, dryRun bool) admission.Attributes
NewAttributeUnstructured returns static admission Attributes for testing with custom resources.
func NewAuthenticationInfoResolver ¶
func NewAuthenticationInfoResolver(cacheMisses *int32) webhook.AuthenticationInfoResolver
NewAuthenticationInfoResolver creates a fake AuthenticationInfoResolver that counts cache misses on every call to its methods.
func NewFakeMutatingDataSource ¶
func NewFakeMutatingDataSource(name string, webhooks []registrationv1.MutatingWebhook, stopCh <-chan struct{}) (clientset kubernetes.Interface, factory informers.SharedInformerFactory)
NewFakeMutatingDataSource returns a mock client and informer returning the given webhooks.
func NewFakeValidatingDataSource ¶
func NewFakeValidatingDataSource(name string, webhooks []registrationv1.ValidatingWebhook, stopCh <-chan struct{}) (clientset kubernetes.Interface, factory informers.SharedInformerFactory)
NewFakeValidatingDataSource returns a mock client and informer returning the given webhooks.
func NewObjectInterfacesForTest ¶
func NewObjectInterfacesForTest() admission.ObjectInterfaces
NewObjectInterfacesForTest returns an ObjectInterfaces appropriate for test cases in this file.
func NewPanickingAuthenticationInfoResolver ¶ added in v0.25.0
func NewPanickingAuthenticationInfoResolver(panicMessage string) webhook.AuthenticationInfoResolver
NewPanickingAuthenticationInfoResolver creates a fake AuthenticationInfoResolver that panics
func NewPanickingServiceResolver ¶ added in v0.25.0
func NewPanickingServiceResolver(panicMessage string) webhook.ServiceResolver
NewPanickingServiceResolver returns a static service resolver that panics.
func NewServiceResolver ¶
func NewServiceResolver(base url.URL) webhook.ServiceResolver
NewServiceResolver returns a static service resolve that return the given URL or an error for the failResolve namespace.
func NewTestServer ¶
NewTestServer returns a webhook test HTTPS server with fixed webhook test certs.
func NewTestServerWithHandler ¶ added in v0.23.0
func NewTestServerWithHandler(t testing.TB, handler func(http.ResponseWriter, *http.Request)) *httptest.Server
NewTestServerWithHandler returns a webhook test HTTPS server which uses given handler function to handle requests
func Wrapper ¶
func Wrapper(r webhook.AuthenticationInfoResolver) func(webhook.AuthenticationInfoResolver) webhook.AuthenticationInfoResolver
Wrapper turns an AuthenticationInfoResolver into a AuthenticationInfoResolverWrapper that unconditionally returns the given AuthenticationInfoResolver.
Types ¶
type CachedTest ¶
type CachedTest struct { Name string Webhooks []registrationv1.ValidatingWebhook ExpectAllow bool ExpectCacheMiss bool }
CachedTest is a test case for the client manager.
func NewCachedClientTestcases ¶
func NewCachedClientTestcases(url *url.URL) []CachedTest
NewCachedClientTestcases returns a set of client manager test cases.
type DurationTest ¶ added in v0.23.0
type DurationTest struct { Name string Webhooks []registrationv1.ValidatingWebhook InitContext bool IsDryRun bool ExpectedDurationSum time.Duration ExpectedDurationMax time.Duration }
DurationTest is webhook duration test case, used both in mutating and validating plugin test cases.
func NewValidationDurationTestCases ¶ added in v0.23.0
func NewValidationDurationTestCases(url *url.URL) []DurationTest
NewValidationDurationTestCases returns test cases for webhook duration test
type FakeAttributes ¶
type FakeAttributes struct { admission.Attributes // contains filtered or unexported fields }
FakeAttributes decorate admission.Attributes. It's used to trace the added annotations.
func (*FakeAttributes) AddAnnotation ¶
func (f *FakeAttributes) AddAnnotation(k, v string) error
AddAnnotation adds an annotation key value pair to FakeAttributes
func (*FakeAttributes) AddAnnotationWithLevel ¶ added in v0.16.4
func (f *FakeAttributes) AddAnnotationWithLevel(k, v string, _ auditinternal.Level) error
AddAnnotationWithLevel adds an annotation key value pair to FakeAttributes
func (*FakeAttributes) GetAnnotations ¶
func (f *FakeAttributes) GetAnnotations(level auditinternal.Level) map[string]string
GetAnnotations reads annotations from FakeAttributes
type MutatingTest ¶
type MutatingTest struct { Name string Webhooks []registrationv1.MutatingWebhook Path string IsCRD bool IsDryRun bool AdditionalLabels map[string]string SkipBenchmark bool ExpectLabels map[string]string ExpectAllow bool ErrorContains string ExpectAnnotations map[string]string ExpectStatusCode int32 ExpectReinvokeWebhooks map[string]bool }
MutatingTest is a mutating webhook test case.
func ConvertToMutatingTestCases ¶
func ConvertToMutatingTestCases(tests []ValidatingTest, configurationName string) []MutatingTest
ConvertToMutatingTestCases converts a validating test case to a mutating one for test purposes.
func NewMutatingTestCases ¶
func NewMutatingTestCases(url *url.URL, configurationName string) []MutatingTest
NewMutatingTestCases returns test cases with a given base url. All test cases in NewMutatingTestCases have Patch set in AdmissionResponse. The test cases are only used by both MutatingAdmissionWebhook.
type ValidatingTest ¶
type ValidatingTest struct { Name string Webhooks []registrationv1.ValidatingWebhook Path string IsCRD bool IsDryRun bool AdditionalLabels map[string]string SkipBenchmark bool ExpectLabels map[string]string ExpectAllow bool ErrorContains string ExpectAnnotations map[string]string ExpectStatusCode int32 ExpectReinvokeWebhooks map[string]bool }
ValidatingTest is a validating webhook test case.
func NewNonMutatingPanicTestCases ¶ added in v0.25.0
func NewNonMutatingPanicTestCases(url *url.URL) []ValidatingTest
NewNonMutatingPanicTestCases returns test cases with a given base url. All test cases in NewNonMutatingTestCases have no Patch set in AdmissionResponse. The expected responses are set for panic handling.
func NewNonMutatingTestCases ¶
func NewNonMutatingTestCases(url *url.URL) []ValidatingTest
NewNonMutatingTestCases returns test cases with a given base url. All test cases in NewNonMutatingTestCases have no Patch set in AdmissionResponse. The test cases are used by both MutatingAdmissionWebhook and ValidatingAdmissionWebhook.