Documentation
¶
Overview ¶
Package bootstrap implements bootstrap functionality for e2e testing.
Index ¶
- Constants
- func LoadImagesToKindCluster(ctx context.Context, input LoadImagesToKindClusterInput) error
- type ClusterProvider
- type CreateKindBootstrapClusterAndLoadImagesInput
- type KindClusterOption
- func LogFolder(path string) KindClusterOption
- func WithDockerSockMount() KindClusterOption
- func WithDualStackFamily() KindClusterOption
- func WithExtraPortMappings(mappings []kindv1.PortMapping) KindClusterOption
- func WithIPv6Family() KindClusterOption
- func WithNodeImage(image string) KindClusterOption
- type KindClusterProvider
- type LoadImagesToKindClusterInput
Constants ¶
const ( // DefaultNodeImageRepository is the default node image repository to be used for testing. DefaultNodeImageRepository = "kindest/node" // DefaultNodeImageVersion is the default Kubernetes version to be used for creating a kind cluster. DefaultNodeImageVersion = "v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f" )
Variables ¶
This section is empty.
Functions ¶
func LoadImagesToKindCluster ¶
func LoadImagesToKindCluster(ctx context.Context, input LoadImagesToKindClusterInput) error
LoadImagesToKindCluster provides a utility for loading images into a kind cluster.
Types ¶
type ClusterProvider ¶
type ClusterProvider interface {
// Create a Kubernetes cluster.
// Generally to be used in the BeforeSuite function to create a Kubernetes cluster to be shared between tests.
Create(context.Context)
// GetKubeconfigPath returns the path to the kubeconfig file to be used to access the Kubernetes cluster.
GetKubeconfigPath() string
// Dispose will completely clean up the provisioned cluster.
// This should be implemented as a synchronous function.
// Generally to be used in the AfterSuite function if a Kubernetes cluster is shared between tests.
// Should try to clean everything up and report any dangling artifacts that needs manual intervention.
Dispose(context.Context)
}
ClusterProvider defines the behavior of a type that is responsible for provisioning and managing a Kubernetes cluster.
func CreateKindBootstrapClusterAndLoadImages ¶
func CreateKindBootstrapClusterAndLoadImages(ctx context.Context, input CreateKindBootstrapClusterAndLoadImagesInput) ClusterProvider
CreateKindBootstrapClusterAndLoadImages returns a new Kubernetes cluster with pre-loaded images.
type CreateKindBootstrapClusterAndLoadImagesInput ¶
type CreateKindBootstrapClusterAndLoadImagesInput struct {
// Name of the cluster.
Name string
// KubernetesVersion of the cluster.
KubernetesVersion string
// RequiresDockerSock defines if the cluster requires the docker sock.
RequiresDockerSock bool
// Images to be loaded in the cluster.
Images []clusterctl.ContainerImage
// IPFamily is either ipv4 or ipv6. Default is ipv4.
IPFamily string
// LogFolder where to dump logs in case of errors
LogFolder string
// ExtraPortMappings specifies the port forward configuration of the kind node.
ExtraPortMappings []kindv1.PortMapping
// CustomNodeImage is the custom node image used for creating the kind node
CustomNodeImage string
}
CreateKindBootstrapClusterAndLoadImagesInput is the input for CreateKindBootstrapClusterAndLoadImages.
type KindClusterOption ¶
type KindClusterOption interface {
// contains filtered or unexported methods
}
KindClusterOption is a NewKindClusterProvider option.
func LogFolder ¶ added in v1.1.0
func LogFolder(path string) KindClusterOption
LogFolder implements a New Option that instruct the kindClusterProvider to dump bootstrap logs in a folder in case of errors.
func WithDockerSockMount ¶
func WithDockerSockMount() KindClusterOption
WithDockerSockMount implements a New Option that instruct the kindClusterProvider to mount /var/run/docker.sock into the new kind cluster.
func WithDualStackFamily ¶ added in v1.5.0
func WithDualStackFamily() KindClusterOption
WithDualStackFamily implements a New Option that instruct the kindClusterProvider to set the IPFamily to dual in the new kind cluster.
func WithExtraPortMappings ¶ added in v1.7.0
func WithExtraPortMappings(mappings []kindv1.PortMapping) KindClusterOption
WithExtraPortMappings implements a New Option that instruct the kindClusterProvider to set extra port forward mappings.
func WithIPv6Family ¶
func WithIPv6Family() KindClusterOption
WithIPv6Family implements a New Option that instruct the kindClusterProvider to set the IPFamily to IPv6 in the new kind cluster.
func WithNodeImage ¶
func WithNodeImage(image string) KindClusterOption
WithNodeImage implements a New Option that instruct the kindClusterProvider to use a specific node image / Kubernetes version.
type KindClusterProvider ¶
type KindClusterProvider struct {
// contains filtered or unexported fields
}
KindClusterProvider implements a ClusterProvider that can create a kind cluster.
func NewKindClusterProvider ¶
func NewKindClusterProvider(name string, options ...KindClusterOption) *KindClusterProvider
NewKindClusterProvider returns a ClusterProvider that can create a kind cluster.
func (*KindClusterProvider) Create ¶
func (k *KindClusterProvider) Create(ctx context.Context)
Create a Kubernetes cluster using kind.
func (*KindClusterProvider) Dispose ¶
func (k *KindClusterProvider) Dispose(ctx context.Context)
Dispose the kind cluster and its kubeconfig file.
func (*KindClusterProvider) GetKubeconfigPath ¶
func (k *KindClusterProvider) GetKubeconfigPath() string
GetKubeconfigPath returns the path to the kubeconfig file for the cluster.
type LoadImagesToKindClusterInput ¶
type LoadImagesToKindClusterInput struct {
// Name of the cluster
Name string
// Images to be loaded in the cluster (this is kind specific)
Images []clusterctl.ContainerImage
}
LoadImagesToKindClusterInput is the input for LoadImagesToKindCluster.