Documentation ¶
Overview ¶
Package testenv contains helpers to create and work with an encapsulated local Kubernetes test environment.
For general advice around testing, see: https://cluster-api.sigs.k8s.io/developer/testing.html
For more information about the encapsulated local Kubernetes test environment, see: https://book.kubebuilder.io/reference/envtest.html
Index ¶
- type Environment
- func (e *Environment) Cleanup(ctx context.Context, objs ...client.Object) error
- func (e *Environment) CleanupAndWait(ctx context.Context, objs ...client.Object) error
- func (e *Environment) CreateAndWait(ctx context.Context, obj client.Object, opts ...client.CreateOption) error
- func (e *Environment) CreateNamespace(ctx context.Context, generateName string) (*corev1.Namespace, error)
- func (e *Environment) Start(ctx context.Context) error
- func (e *Environment) Stop() error
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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 New ¶
func New(o ...Option) *Environment
New creates a new environment spinning up a local api-server.
NOTE: This function should be called only once for each package you are running tests within, usually the environment is initialised in a suite_test.go or <package>_test.go file within a `TestMain` function.
When a testenv Environment is created, it initializes the controller-runtime's deferred logger with a default logger based on klog. In order to override this behavior, the controller-runtime logger can be initialized before creating testenv Environment.
import ( "testing" "github.com/fluxcd/pkg/runtime/testenv" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/log/zap" } func TestMain(m *testing.M) { zlog := zap.New(zap.UseDevMode(true)) ctrl.SetLogger(zlog) testEnv = testenv.New() ... }
func (*Environment) CleanupAndWait ¶
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) CreateNamespace ¶
func (e *Environment) CreateNamespace(ctx context.Context, generateName string) (*corev1.Namespace, error)
CreateNamespace creates a new namespace with a generated name.
type Option ¶
type Option func(*options)
Option sets a configuration for the Environment.
func WithCRDPath ¶
WithCRDPath configures the paths the envtest.Environment should look at for Custom Resource Definitions.
func WithScheme ¶
WithScheme configures the runtime.Scheme for the Environment. If no scheme is configured, the Environment defaults to the global runtime.Scheme.