apiserver: k8s.io/apiserver/pkg/admission/plugin/webhook/testing Index | Files | Directories

package testing

import "k8s.io/apiserver/pkg/admission/plugin/webhook/testing"

Index

Package Files

authentication_info_resolver.go service_resolver.go testcase.go webhook_server.go

func ConvertToMutatingWebhooks Uses

func ConvertToMutatingWebhooks(webhooks []registrationv1.ValidatingWebhook) []registrationv1.MutatingWebhook

ConvertToMutatingWebhooks converts a validating webhook to a mutating one for test purposes.

func NewAttribute Uses

func NewAttribute(namespace string, labels map[string]string, dryRun bool) admission.Attributes

NewAttribute returns static admission Attributes for testing.

func NewAttributeUnstructured Uses

func NewAttributeUnstructured(namespace string, labels map[string]string, dryRun bool) admission.Attributes

NewAttributeUnstructured returns static admission Attributes for testing with custom resources.

func NewAuthenticationInfoResolver Uses

func NewAuthenticationInfoResolver(cacheMisses *int32) webhook.AuthenticationInfoResolver

NewAuthenticationInfoResolver creates a fake AuthenticationInfoResolver that counts cache misses on every call to its methods.

func NewFakeMutatingDataSource Uses

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 Uses

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 Uses

func NewObjectInterfacesForTest() admission.ObjectInterfaces

NewObjectInterfacesForTest returns an ObjectInterfaces appropriate for test cases in this file.

func NewServiceResolver Uses

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 Uses

func NewTestServer(t testing.TB) *httptest.Server

NewTestServer returns a webhook test HTTPS server with fixed webhook test certs.

func Wrapper Uses

func Wrapper(r webhook.AuthenticationInfoResolver) func(webhook.AuthenticationInfoResolver) webhook.AuthenticationInfoResolver

Wrapper turns an AuthenticationInfoResolver into a AuthenticationInfoResolverWrapper that unconditionally returns the given AuthenticationInfoResolver.

type CachedTest Uses

type CachedTest struct {
    Name            string
    Webhooks        []registrationv1.ValidatingWebhook
    ExpectAllow     bool
    ExpectCacheMiss bool
}

CachedTest is a test case for the client manager.

func NewCachedClientTestcases Uses

func NewCachedClientTestcases(url *url.URL) []CachedTest

NewCachedClientTestcases returns a set of client manager test cases.

type FakeAttributes Uses

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 Uses

func (f *FakeAttributes) AddAnnotation(k, v string) error

AddAnnotation adds an annotation key value pair to FakeAttributes

func (*FakeAttributes) AddAnnotationWithLevel Uses

func (f *FakeAttributes) AddAnnotationWithLevel(k, v string, _ auditinternal.Level) error

AddAnnotationWithLevel adds an annotation key value pair to FakeAttributes

func (*FakeAttributes) GetAnnotations Uses

func (f *FakeAttributes) GetAnnotations(level auditinternal.Level) map[string]string

GetAnnotations reads annotations from FakeAttributes

type MutatingTest Uses

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 Uses

func ConvertToMutatingTestCases(tests []ValidatingTest, configurationName string) []MutatingTest

ConvertToMutatingTestCases converts a validating test case to a mutating one for test purposes.

func NewMutatingTestCases Uses

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 Uses

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 NewNonMutatingTestCases Uses

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.

Directories

PathSynopsis
main

Package testing imports 28 packages (graph) and is imported by 2 packages. Updated 2019-10-11. Refresh now. Tools for package owners.