envtest

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CRDDirectoryPaths

func CRDDirectoryPaths() []string

func Run

func Run(ctx context.Context, input RunInput) int

Run executes the tests of the given testing.M in a test environment. Note: The environment will be created in this func and should not be created before. This func takes a *Environment

because our tests require access to the *Environment. We use this field to make the created Environment available
to the consumer.

Note: It's possible to write a kubeconfig for the test environment to a file by setting `TEST_ENV_KUBECONFIG`. Note: It's possible to skip stopping the test env after the tests have been run by setting `TEST_ENV_SKIP_STOP` to a non-empty value.

Types

type Environment

type Environment struct {
	manager.Manager
	client.Client
	Config *rest.Config
	// contains filtered or unexported fields
}

Environment encapsulates a Kubernetes local test environment.

func (*Environment) Cleanup

func (e *Environment) Cleanup(ctx context.Context, objs ...client.Object) error

Cleanup deletes all the given objects.

func (*Environment) CleanupAndWait

func (e *Environment) CleanupAndWait(ctx context.Context, objs ...client.Object) error

CleanupAndWait deletes all the given objects and waits for the cache to be updated accordingly.

NOTE: Waiting for the cache to be updated helps in preventing test flakes due to the cache sync delays.

func (*Environment) CreateAndWait

func (e *Environment) CreateAndWait(
	ctx context.Context,
	obj client.Object,
	opts ...client.CreateOption,
) error

CreateAndWait creates the given object and waits for the cache to be updated accordingly.

NOTE: Waiting for the cache to be updated helps in preventing test flakes due to the cache sync delays.

func (*Environment) CreateKubeconfigSecret

func (e *Environment) CreateKubeconfigSecret(
	ctx context.Context,
	cluster *clusterv1.Cluster,
) error

CreateKubeconfigSecret generates a new Kubeconfig secret from the envtest config.

func (*Environment) CreateNamespace

func (e *Environment) CreateNamespace(
	ctx context.Context,
	generateName string,
) (*corev1.Namespace, error)

CreateNamespace creates a new namespace with a generated name.

func (*Environment) PatchAndWait

func (e *Environment) PatchAndWait(
	ctx context.Context,
	obj client.Object,
	opts ...client.PatchOption,
) error

PatchAndWait creates or updates the given object using server-side apply and waits for the cache to be updated accordingly.

NOTE: Waiting for the cache to be updated helps in preventing test flakes due to the cache sync delays.

type RunInput

type RunInput struct {
	M                   *testing.M
	ManagerUncachedObjs []client.Object
	SetupReconcilers    func(ctx context.Context, mgr ctrl.Manager)
	SetupEnv            func(e *Environment)
}

RunInput is the input for Run.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL