envtest

package
v2.12.3 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2023 License: Apache-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PublishServiceName is the name of the publish service used in Gateway API tests.
	PublishServiceName = "publish-svc"
)

Variables

View Source
var DefaultEnvTestOpts = Options{
	InstallGatewayCRDs: true,
	InstallKongCRDs:    true,
}

Functions

func ConfigForEnvConfig added in v2.10.0

func ConfigForEnvConfig(t *testing.T, envcfg *rest.Config) manager.Config

ConfigForEnvConfig prepares a manager.Config for use in tests It will start a mock Admin API server which will be set in KIC's config and which will be automatically stopped during test cleanup.

func CreateNamespace

func CreateNamespace(ctx context.Context, t *testing.T, client ctrlclient.Client) corev1.Namespace

CreateNamespace creates namespace using the provided client and returns it.

func CreatePod

func CreatePod(ctx context.Context, t *testing.T, client ctrlclient.Client, ns string) corev1.Pod

CreatePod creates pod using the provided client and returns it.

func NewControllerClient added in v2.10.2

func NewControllerClient(t *testing.T, scheme *runtime.Scheme, cfg *rest.Config) ctrlclient.Client

NewControllerClient returns a new controller-runtime Client for provided runtime.Scheme and rest.Config.

func RunManager added in v2.11.0

func RunManager(
	ctx context.Context,
	t *testing.T,
	envcfg *rest.Config,
	modifyCfgFns ...func(cfg *manager.Config),
) (loggerHook *test.Hook)

RunManager runs the manager in a goroutine. It's possible to modify the manager's configuration by passing in modifyCfgFns. The manager is stopped when the context is canceled.

func Scheme added in v2.11.0

func Scheme(t *testing.T, opts ...SchemeOption) *k8sruntime.Scheme

Scheme returns a new scheme with the default Kubernetes types registered. It accepts optional SchemeOptions to register additional types.

func Setup

func Setup(t *testing.T, scheme *k8sruntime.Scheme, optModifiers ...OptionModifier) *rest.Config

Setup sets up the envtest environment which will be stopped on test cleanup using t.Cleanup().

Note: If you want apiserver output on stdout set KUBEBUILDER_ATTACH_CONTROL_PLANE_OUTPUT to true when running tests.

func StartAdminAPIServerMock added in v2.10.0

func StartAdminAPIServerMock(t *testing.T) *httptest.Server

StartAdminAPIServerMock starts a mock Kong Admin API server. Server's .Close() method will be called during test's cleanup.

func StartReconcilers added in v2.11.0

func StartReconcilers(ctx context.Context, t *testing.T, scheme *runtime.Scheme, cfg *rest.Config, reconcilers ...controllers.Reconciler)

StartReconcilers creates a controller manager and starts the provided reconciler as its runnable. It also adds a t.Cleanup which waits for the manager to exit so that the test can be self contained and logs from different tests' managers don't mix up.

func WithGatewayAPI added in v2.11.0

func WithGatewayAPI(t *testing.T, s *k8sruntime.Scheme)

WithGatewayAPI registers the Gateway API types with the scheme.

func WithGatewayFeatureEnabled added in v2.11.0

func WithGatewayFeatureEnabled(cfg *manager.Config)

func WithKong added in v2.11.0

func WithKong(t *testing.T, s *k8sruntime.Scheme)

WithKong registers the Kong types with the scheme.

func WithPublishService added in v2.11.0

func WithPublishService(namespace string) func(cfg *manager.Config)

Types

type ModifyManagerConfigFn added in v2.11.0

type ModifyManagerConfigFn func(cfg *manager.Config)

type OptionModifier added in v2.11.0

type OptionModifier func(Options) Options

func WithInstallGatewayCRDs added in v2.12.0

func WithInstallGatewayCRDs(install bool) OptionModifier

func WithInstallKongCRDs added in v2.11.0

func WithInstallKongCRDs(install bool) OptionModifier

type Options added in v2.11.0

type Options struct {
	InstallGatewayCRDs bool
	InstallKongCRDs    bool
}

type SchemeOption added in v2.11.0

type SchemeOption func(t *testing.T, s *k8sruntime.Scheme)

Jump to

Keyboard shortcuts

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