clustersetup

package
v0.0.0-...-a8904bb Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package clustersetup implements bootstrap functionality for e2e testing.

Index

Constants

View Source
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.24.6"
)

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.

func Logf

func Logf(format string, a ...interface{})

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 CreateKindClusterAndLoadImages

func CreateKindClusterAndLoadImages(ctx context.Context, input CreateKindClusterAndLoadImagesInput) ClusterProvider

CreateKindBootstrapClusterAndLoadImages returns a new Kubernetes cluster with pre-loaded images.

type CreateKindClusterAndLoadImagesInput

type CreateKindClusterAndLoadImagesInput 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 []string

	// IPFamily is either ipv4 or ipv6. Default is ipv4.
	IPFamily string
}

CreateKindClusterAndLoadImagesInput is the input for CreateKindClusterAndLoadImages.

type KindClusterOption

type KindClusterOption interface {
	// contains filtered or unexported methods
}

KindClusterOption is a NewKindClusterProvider option.

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 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 []string
}

LoadImagesToKindClusterInput is the input for LoadImagesToKindCluster.

Jump to

Keyboard shortcuts

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