Documentation ¶
Index ¶
- Constants
- Variables
- func CreateNamespace(client kubeclientset.Interface, generateName string) (string, error)
- func CreateTestNamespace(client kubeclientset.Interface, baseName string) string
- func DeleteNamespace(client kubeclientset.Interface, namespaceName string)
- func DumpEventsInNamespace(eventsLister EventsLister, namespace string)
- func Errorf(format string, args ...interface{})
- func ExpectNoError(err error, explain ...interface{})
- func ExpectNoErrorWithOffset(offset int, err error, explain ...interface{})
- func Failf(format string, args ...interface{})
- func FailfWithOffset(offset int, format string, args ...interface{})
- func ListKubeFedClusters(tl common.TestLogger, client genericclient.Client, namespace string) *fedv1b1.KubeFedClusterList
- func LoadEnableTypeDirectives(tl common.TestLogger) []*kfenable.EnableTypeDirective
- func Logf(format string, args ...interface{})
- func NewE2ELogger() common.TestLogger
- func ParseFlags()
- func RemoveCleanupAction(p CleanupActionHandle)
- func RunCleanupActions()
- func SetUpControlPlane()
- func Skipf(format string, args ...interface{})
- func StartControllerManager(args []string) (*exec.Cmd, io.ReadCloser, error)
- func TearDownControlPlane()
- func WaitForClusterReadiness(tl common.TestLogger, client genericclient.Client, namespace string, ...)
- func WaitForObject(tl common.TestLogger, namespace, name string, ...)
- func WaitForUnmanagedClusterReadiness()
- func WaitUntilLogStreamContains(tl common.TestLogger, stream io.ReadCloser, substr string) bool
- type CleanupActionHandle
- type ControllerFixture
- func NewClusterControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
- func NewFederatedTypeConfigControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
- func NewIngressDNSControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
- func NewSchedulingManagerFixture(tl common.TestLogger, config *util.ControllerConfig) (*ControllerFixture, *schedulingmanager.SchedulingManager)
- func NewServiceDNSControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
- func NewSyncControllerFixture(tl common.TestLogger, controllerConfig *util.ControllerConfig, ...) *ControllerFixture
- type EventsLister
- type KubeFedFramework
- type KubeFedFrameworkImpl
- type TestContextType
- type TestFixture
- type UnmanagedFramework
- func (f *UnmanagedFramework) AfterEach()
- func (f *UnmanagedFramework) BeforeEach()
- func (f *UnmanagedFramework) Client(userAgent string) genericclient.Client
- func (f *UnmanagedFramework) ClusterConfigs(userAgent string) map[string]common.TestClusterConfig
- func (f *UnmanagedFramework) ClusterDynamicClients(apiResource *metav1.APIResource, userAgent string) map[string]common.TestCluster
- func (f *UnmanagedFramework) ClusterKubeClients(userAgent string) map[string]kubeclientset.Interface
- func (f *UnmanagedFramework) ClusterNames(userAgent string) []string
- func (f *UnmanagedFramework) ControllerConfig() *util.ControllerConfig
- func (f *UnmanagedFramework) HostConfig(userAgent string) *restclient.Config
- func (f *UnmanagedFramework) KubeClient(userAgent string) kubeclientset.Interface
- func (f *UnmanagedFramework) KubeConfig() *restclient.Config
- func (f *UnmanagedFramework) KubeFedSystemNamespace() string
- func (f *UnmanagedFramework) Logger() common.TestLogger
- func (f *UnmanagedFramework) TestNamespaceName() string
Constants ¶
const ( // Using the same interval as integration should be fine given the // minimal load that the apiserver is likely to be under. PollInterval = 50 * time.Millisecond // How long to try single API calls (like 'get' or 'list'). Used to prevent // transient failures from failing tests. DefaultSingleCallTimeout = 30 * time.Second )
Variables ¶
var RunId = uuid.NewUUID()
unique identifier of the e2e run
Functions ¶
func CreateNamespace ¶
func CreateNamespace(client kubeclientset.Interface, generateName string) (string, error)
func CreateTestNamespace ¶
func CreateTestNamespace(client kubeclientset.Interface, baseName string) string
func DeleteNamespace ¶
func DeleteNamespace(client kubeclientset.Interface, namespaceName string)
func DumpEventsInNamespace ¶
func DumpEventsInNamespace(eventsLister EventsLister, namespace string)
func ExpectNoError ¶
func ExpectNoError(err error, explain ...interface{})
func ExpectNoErrorWithOffset ¶
ExpectNoErrorWithOffset checks if "err" is set, and if so, fails assertion while logging the error at "offset" levels above its caller (for example, for call chain f -> g -> ExpectNoErrorWithOffset(1, ...) error would be logged for "f").
func FailfWithOffset ¶
FailfWithOffset calls "Fail" and logs the error at "offset" levels above its caller (for example, for call chain f -> g -> FailfWithOffset(1, ...) error would be logged for "f").
func ListKubeFedClusters ¶
func ListKubeFedClusters(tl common.TestLogger, client genericclient.Client, namespace string) *fedv1b1.KubeFedClusterList
func LoadEnableTypeDirectives ¶ added in v0.0.8
func LoadEnableTypeDirectives(tl common.TestLogger) []*kfenable.EnableTypeDirective
func NewE2ELogger ¶
func NewE2ELogger() common.TestLogger
func ParseFlags ¶
func ParseFlags()
func RemoveCleanupAction ¶
func RemoveCleanupAction(p CleanupActionHandle)
RemoveCleanupAction removes a function that was installed by AddCleanupAction.
func RunCleanupActions ¶
func RunCleanupActions()
RunCleanupActions runs all functions installed by AddCleanupAction. It does not remove them (see RemoveCleanupAction) but it does run unlocked, so they may remove themselves.
func SetUpControlPlane ¶
func SetUpControlPlane()
func StartControllerManager ¶
func TearDownControlPlane ¶
func TearDownControlPlane()
func WaitForClusterReadiness ¶ added in v0.0.8
func WaitForClusterReadiness(tl common.TestLogger, client genericclient.Client, namespace string, interval, timeout time.Duration)
func WaitForObject ¶
func WaitForObject(tl common.TestLogger, namespace, name string, objectGetter func(namespace, name string) (pkgruntime.Object, error), desired pkgruntime.Object, equivalent func(actual, desired pkgruntime.Object) bool)
WaitForObject waits for object to match the desired status.
func WaitForUnmanagedClusterReadiness ¶ added in v0.0.2
func WaitForUnmanagedClusterReadiness()
func WaitUntilLogStreamContains ¶
func WaitUntilLogStreamContains(tl common.TestLogger, stream io.ReadCloser, substr string) bool
WaitUntilLogStreamContains waits for the given stream to contain the substring until the end of the stream or timeout.
Types ¶
type CleanupActionHandle ¶
type CleanupActionHandle *int
func AddCleanupAction ¶
func AddCleanupAction(fn func()) CleanupActionHandle
AddCleanupAction installs a function that will be called in the event of the whole test being terminated. This allows arbitrary pieces of the overall test to hook into SynchronizedAfterSuite().
type ControllerFixture ¶ added in v0.0.8
type ControllerFixture struct {
// contains filtered or unexported fields
}
ControllerFixture manages a KubeFed controller for testing.
func NewClusterControllerFixture ¶ added in v0.0.8
func NewClusterControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
NewClusterControllerFixture initializes a new cluster controller fixture.
func NewFederatedTypeConfigControllerFixture ¶ added in v0.0.10
func NewFederatedTypeConfigControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
NewFederatedTypeConfigControllerFixure initializes a new federatedtypeconfig controller fixure.
func NewIngressDNSControllerFixture ¶ added in v0.0.8
func NewIngressDNSControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
NewIngressDNSControllerFixture initializes a new ingress-dns controller fixture.
func NewSchedulingManagerFixture ¶ added in v0.0.8
func NewSchedulingManagerFixture(tl common.TestLogger, config *util.ControllerConfig) (*ControllerFixture, *schedulingmanager.SchedulingManager)
func NewServiceDNSControllerFixture ¶ added in v0.0.8
func NewServiceDNSControllerFixture(tl common.TestLogger, config *util.ControllerConfig) *ControllerFixture
NewServiceDNSControllerFixture initializes a new service-dns controller fixture.
func NewSyncControllerFixture ¶ added in v0.0.8
func NewSyncControllerFixture(tl common.TestLogger, controllerConfig *util.ControllerConfig, typeConfig typeconfig.Interface, namespacePlacement *metav1.APIResource) *ControllerFixture
NewSyncControllerFixture initializes a new sync controller fixture.
func (*ControllerFixture) TearDown ¶ added in v0.0.8
func (f *ControllerFixture) TearDown(tl common.TestLogger)
type EventsLister ¶
type KubeFedFramework ¶
type KubeFedFramework interface { KubeFedFrameworkImpl // Registering a fixture ensures it will be torn down after the // current test has executed. RegisterFixture(fixture TestFixture) // Setup a sync controller if necessary and return the fixture. // This is implemented commonly to support running a sync // controller for tests that require it. SetUpSyncControllerFixture(typeConfig typeconfig.Interface) TestFixture // Ensure propagation of the test namespace to member clusters EnsureTestNamespacePropagation() // Ensure a federated namespace resource for the test namespace // exists so that the namespace will be propagated to either all // or no member clusters. EnsureTestFederatedNamespace(allClusters bool) *unstructured.Unstructured }
KubeFedFramework provides an interface to a test control plane so that the implementation can vary without affecting tests.
func NewKubeFedFramework ¶
func NewKubeFedFramework(baseName string) KubeFedFramework
type KubeFedFrameworkImpl ¶
type KubeFedFrameworkImpl interface { BeforeEach() AfterEach() ControllerConfig() *util.ControllerConfig Logger() common.TestLogger KubeConfig() *restclient.Config KubeClient(userAgent string) kubeclientset.Interface Client(userAgent string) genericclient.Client ClusterConfigs(userAgent string) map[string]common.TestClusterConfig HostConfig(userAgent string) *restclient.Config ClusterDynamicClients(apiResource *metav1.APIResource, userAgent string) map[string]common.TestCluster ClusterKubeClients(userAgent string) map[string]kubeclientset.Interface ClusterNames(userAgent string) []string KubeFedSystemNamespace() string // Name of the namespace for the current test to target TestNamespaceName() string // contains filtered or unexported methods }
func NewUnmanagedFramework ¶
func NewUnmanagedFramework(baseName string) KubeFedFrameworkImpl
type TestContextType ¶
type TestContextType struct { InMemoryControllers bool KubeConfig string KubeContext string KubeFedSystemNamespace string SingleCallTimeout time.Duration LimitedScope bool LimitedScopeInMemoryControllers bool WaitForFinalization bool ScaleTest bool ScaleClusterCount int }
var TestContext *TestContextType = &TestContextType{}
func (*TestContextType) NamespaceScopedControlPlane ¶
func (t *TestContextType) NamespaceScopedControlPlane() bool
NamespaceScopedControlPlane indicates that the control plane is effectively namespace-scoped. This may be either because in-memory controllers are running namespace-scoped against a cluster-scoped deployment (a debugging optimization) or if a deployed control plane is running namespace-scoped.
func (*TestContextType) RunControllers ¶ added in v0.0.3
func (t *TestContextType) RunControllers() bool
type TestFixture ¶ added in v0.0.8
type TestFixture interface {
TearDown(tl common.TestLogger)
}
SetUp is likely to be fixture-specific, but TearDown needs to be consistent to enable TearDownOnPanic.
type UnmanagedFramework ¶
type UnmanagedFramework struct { Config *restclient.Config Kubeconfig *clientcmdapi.Config BaseName string // contains filtered or unexported fields }
func (*UnmanagedFramework) AfterEach ¶
func (f *UnmanagedFramework) AfterEach()
AfterEach deletes the namespace, after reading its events.
func (*UnmanagedFramework) BeforeEach ¶
func (f *UnmanagedFramework) BeforeEach()
BeforeEach reads the cluster configuration if it has not yet been read.
func (*UnmanagedFramework) Client ¶ added in v0.0.7
func (f *UnmanagedFramework) Client(userAgent string) genericclient.Client
func (*UnmanagedFramework) ClusterConfigs ¶
func (f *UnmanagedFramework) ClusterConfigs(userAgent string) map[string]common.TestClusterConfig
func (*UnmanagedFramework) ClusterDynamicClients ¶
func (f *UnmanagedFramework) ClusterDynamicClients(apiResource *metav1.APIResource, userAgent string) map[string]common.TestCluster
func (*UnmanagedFramework) ClusterKubeClients ¶
func (f *UnmanagedFramework) ClusterKubeClients(userAgent string) map[string]kubeclientset.Interface
func (*UnmanagedFramework) ClusterNames ¶ added in v0.0.2
func (f *UnmanagedFramework) ClusterNames(userAgent string) []string
func (*UnmanagedFramework) ControllerConfig ¶ added in v0.0.3
func (f *UnmanagedFramework) ControllerConfig() *util.ControllerConfig
func (*UnmanagedFramework) HostConfig ¶
func (f *UnmanagedFramework) HostConfig(userAgent string) *restclient.Config
func (*UnmanagedFramework) KubeClient ¶
func (f *UnmanagedFramework) KubeClient(userAgent string) kubeclientset.Interface
func (*UnmanagedFramework) KubeConfig ¶
func (f *UnmanagedFramework) KubeConfig() *restclient.Config
func (*UnmanagedFramework) KubeFedSystemNamespace ¶
func (f *UnmanagedFramework) KubeFedSystemNamespace() string
func (*UnmanagedFramework) Logger ¶ added in v0.0.3
func (f *UnmanagedFramework) Logger() common.TestLogger
func (*UnmanagedFramework) TestNamespaceName ¶
func (f *UnmanagedFramework) TestNamespaceName() string
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package ginkgowrapper wraps Ginkgo Fail and Skip functions to panic with structured data instead of a constant string.
|
Package ginkgowrapper wraps Ginkgo Fail and Skip functions to panic with structured data instead of a constant string. |