Documentation ¶
Index ¶
- Constants
- func ConfigCluster(ctx context.Context, input ConfigClusterInput) []byte
- func CreateRepository(ctx context.Context, input CreateRepositoryInput) string
- func Init(ctx context.Context, input InitInput)
- func InitManagementClusterAndWatchControllerLogs(ctx context.Context, input InitManagementClusterAndWatchControllerLogsInput, ...)
- func Move(ctx context.Context, input MoveInput)
- func SetCNIEnvVar(cniManifestPath string, cniEnvVar string)deprecated
- type ApplyClusterTemplateAndWaitInput
- type ApplyClusterTemplateAndWaitResult
- type ConfigClusterInput
- type CreateRepositoryInput
- type E2EConfig
- func (c *E2EConfig) AbsPaths(basePath string)
- func (c *E2EConfig) Defaults()
- func (c *E2EConfig) GetInt32PtrVariable(varName string) *int32
- func (c *E2EConfig) GetInt64PtrVariable(varName string) *int64
- func (c *E2EConfig) GetIntervals(spec, key string) []interface{}
- func (c *E2EConfig) GetVariable(varName string) string
- func (c *E2EConfig) HasDockerProvider() bool
- func (c *E2EConfig) InfrastructureProviders() []string
- func (c *E2EConfig) Validate() error
- type Files
- type InitInput
- type InitManagementClusterAndWatchControllerLogsInput
- type LoadE2EConfigInput
- type MoveInput
- type ProviderConfig
- type RepositoryFileTransformation
Constants ¶
const (
// DefaultFlavor for ConfigClusterInput; use it for getting the cluster-template.yaml file.
DefaultFlavor = ""
)
const (
// DefaultInfrastructureProvider for ConfigClusterInput; use it for using the only infrastructure provider installed in a cluster.
DefaultInfrastructureProvider = ""
)
Variables ¶
This section is empty.
Functions ¶
func ConfigCluster ¶
func ConfigCluster(ctx context.Context, input ConfigClusterInput) []byte
ConfigCluster gets a workload cluster based on a template.
func CreateRepository ¶
func CreateRepository(ctx context.Context, input CreateRepositoryInput) string
CreateRepository creates a clusterctl local repository based on the e2e test config, and the returns the path to a clusterctl config file to be used for working with such repository.
func InitManagementClusterAndWatchControllerLogs ¶
func InitManagementClusterAndWatchControllerLogs(ctx context.Context, input InitManagementClusterAndWatchControllerLogsInput, intervals ...interface{})
InitManagementClusterAndWatchControllerLogs initializes a management using clusterctl and setup watches for controller logs. Important: Considering we want to support test suites using existing clusters, clusterctl init is executed only in case there are no provider controllers in the cluster; but controller logs watchers are created regardless of the pre-existing providers.
func SetCNIEnvVar
deprecated
added in
v0.3.9
SetCNIEnvVar read CNI from cniManifestPath and sets an environmental variable that keeps CNI resources. A ClusterResourceSet can be used to apply CNI using this environmental variable.
Deprecated: Use FileTransformations in the CreateRepositoryInput to embedded CNI into cluster templates during create repository. The new approach does not uses env variables so we can avoid https://github.com/kubernetes-sigs/cluster-api/issues/3797; This func is preserved for avoiding to break users in the v0.3 series, but it is now a no-op.
Types ¶
type ApplyClusterTemplateAndWaitInput ¶
type ApplyClusterTemplateAndWaitInput struct { ClusterProxy framework.ClusterProxy ConfigCluster ConfigClusterInput CNIManifestPath string WaitForClusterIntervals []interface{} WaitForControlPlaneIntervals []interface{} WaitForMachineDeployments []interface{} WaitForMachinePools []interface{} }
ApplyClusterTemplateAndWaitInput is the input type for ApplyClusterTemplateAndWait.
type ApplyClusterTemplateAndWaitResult ¶ added in v0.3.10
type ApplyClusterTemplateAndWaitResult struct { Cluster *clusterv1.Cluster ControlPlane *controlplanev1.KubeadmControlPlane MachineDeployments []*clusterv1.MachineDeployment MachinePools []*clusterv1exp.MachinePool }
func ApplyClusterTemplateAndWait ¶
func ApplyClusterTemplateAndWait(ctx context.Context, input ApplyClusterTemplateAndWaitInput) *ApplyClusterTemplateAndWaitResult
ApplyClusterTemplateAndWait gets a cluster template using clusterctl, and waits for the cluster to be ready. Important! this method assumes the cluster uses a KubeadmControlPlane and MachineDeployments.
type ConfigClusterInput ¶
type ConfigClusterInput struct { LogFolder string ClusterctlConfigPath string KubeconfigPath string InfrastructureProvider string Namespace string ClusterName string KubernetesVersion string ControlPlaneMachineCount *int64 WorkerMachineCount *int64 Flavor string }
ConfigClusterInput is the input for ConfigCluster.
type CreateRepositoryInput ¶
type CreateRepositoryInput struct { RepositoryFolder string E2EConfig *E2EConfig FileTransformations []RepositoryFileTransformation }
CreateRepositoryInput is the input for CreateRepository.
func (*CreateRepositoryInput) RegisterClusterResourceSetConfigMapTransformation ¶ added in v0.3.11
func (i *CreateRepositoryInput) RegisterClusterResourceSetConfigMapTransformation(cniManifestPath, envSubstVar string)
RegisterClusterResourceSetConfigMapTransformation registers a FileTransformations that injects a CNI file into a ConfigMap that defines a ClusterResourceSet resource.
NOTE: this transformation is specifically designed for replacing "data: ${envSubstVar}".
type E2EConfig ¶
type E2EConfig struct { // Name is the name of the Kind management cluster. // Defaults to test-[random generated suffix]. ManagementClusterName string `json:"managementClusterName,omitempty"` // Images is a list of container images to load into the Kind cluster. Images []framework.ContainerImage `json:"images,omitempty"` // Providers is a list of providers to be configured in the local repository that will be created for the e2e test. // It is required to provide following providers // - cluster-api // - bootstrap kubeadm // - control-plane kubeadm // - one infrastructure provider // The test will adapt to the selected infrastructure provider Providers []ProviderConfig `json:"providers,omitempty"` // Variables to be added to the clusterctl config file // Please note that clusterctl read variables from OS environment variables as well, so you can avoid to hard code // sensitive data in the config file. Variables map[string]string `json:"variables,omitempty"` // Intervals to be used for long operations during tests Intervals map[string][]string `json:"intervals,omitempty"` }
E2EConfig defines the configuration of an e2e test environment.
func LoadE2EConfig ¶
func LoadE2EConfig(ctx context.Context, input LoadE2EConfigInput) *E2EConfig
LoadE2EConfig loads the configuration for the e2e test environment.
func (*E2EConfig) Defaults ¶
func (c *E2EConfig) Defaults()
Defaults assigns default values to the object. More specifically: - ManagementClusterName gets a default name if empty. - Providers version gets type KustomizeSource if not otherwise specified. - Providers file gets targetName = sourceName if not otherwise specified. - Images gets LoadBehavior = MustLoadImage if not otherwise specified.
func (*E2EConfig) GetInt32PtrVariable ¶ added in v0.3.10
GetInt32PtrVariable returns an Int32Ptr variable from the e2e config file.
func (*E2EConfig) GetInt64PtrVariable ¶
GetInt64PtrVariable returns an Int64Ptr variable from the e2e config file.
func (*E2EConfig) GetIntervals ¶
GetIntervals returns the intervals to be applied to a Eventually operation. It searches for [spec]/[key] intervals first, and if it is not found, it searches for default/[key]. If also the default/[key] intervals are not found, ginkgo DefaultEventuallyTimeout and DefaultEventuallyPollingInterval are used.
func (*E2EConfig) GetVariable ¶
GetVariable returns a variable from the e2e config file.
func (*E2EConfig) HasDockerProvider ¶
func (*E2EConfig) InfrastructureProviders ¶
InfraProvider returns the infrastructure provider selected for running this E2E test.
func (*E2EConfig) Validate ¶
Validate validates the configuration. More specifically: - ManagementClusterName should not be empty. - There should be one CoreProvider (cluster-api), one BootstrapProvider (kubeadm), one ControlPlaneProvider (kubeadm). - There should be one InfraProvider (pick your own). - Image should have name and loadBehavior be one of [mustload, tryload]. - Intervals should be valid ginkgo intervals.
type Files ¶
type Files struct { // SourcePath path of the file. SourcePath string `json:"sourcePath"` // TargetName name of the file copied into the local repository. if empty, the source name // Will be preserved TargetName string `json:"targetName,omitempty"` }
Files contains information about files to be copied into the local repository
type InitInput ¶
type InitInput struct { LogFolder string ClusterctlConfigPath string KubeconfigPath string CoreProvider string BootstrapProviders []string ControlPlaneProviders []string InfrastructureProviders []string }
InitInput is the input for Init.
type InitManagementClusterAndWatchControllerLogsInput ¶
type InitManagementClusterAndWatchControllerLogsInput struct { ClusterProxy framework.ClusterProxy ClusterctlConfigPath string InfrastructureProviders []string LogFolder string DisableMetricsCollection bool }
InitManagementClusterAndWatchControllerLogsInput is the input type for InitManagementClusterAndWatchControllerLogs.
type LoadE2EConfigInput ¶
type LoadE2EConfigInput struct { // ConfigPath for the e2e test. ConfigPath string }
LoadE2EConfigInput is the input for LoadE2EConfig.
type MoveInput ¶
type MoveInput struct { LogFolder string ClusterctlConfigPath string FromKubeconfigPath string ToKubeconfigPath string Namespace string }
MoveInput is the input for ClusterctlMove.
type ProviderConfig ¶
type ProviderConfig struct { // Name is the name of the provider. Name string `json:"name"` // Type is the type of the provider. Type string `json:"type"` // Versions is a list of component YAML to be added to the local repository, one for each release. // Please note that the first source will be used a a default release for this provider. Versions []framework.ComponentSource `json:"versions,omitempty"` // Files is a list of test files to be copied into the local repository for the default release of this provider. Files []Files `json:"files,omitempty"` }
ProviderConfig describes a provider to be configured in the local repository that will be created for the e2e test.
type RepositoryFileTransformation ¶ added in v0.3.11
Provides helpers for managing a clusterctl local repository to be used for running e2e tests in isolation.