framework

package
v0.20.6 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2024 License: Apache-2.0 Imports: 89 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ClusterPrefixVar    = "T_CLUSTER_PREFIX"
	JobIdVar            = "T_JOB_ID"
	BundlesOverrideVar  = "T_BUNDLES_OVERRIDE"
	ClusterIPPoolEnvVar = "T_CLUSTER_IP_POOL"
	ClusterIPEnvVar     = "T_CLUSTER_IP"
	CleanupResourcesVar = "T_CLEANUP_RESOURCES"

	EksaPackagesInstallation = "eks-anywhere-packages"
)
View Source
const (
	GitRepositoryVar      = "T_GIT_REPOSITORY"
	GitRepoSshUrl         = "T_GIT_SSH_REPO_URL"
	GithubUserVar         = "T_GITHUB_USER"
	GithubTokenVar        = "EKSA_GITHUB_TOKEN"
	GitKnownHosts         = "EKSA_GIT_KNOWN_HOSTS"
	GitPrivateKeyFile     = "EKSA_GIT_PRIVATE_KEY"
	DefaultFluxConfigName = "eksa-test"
)
View Source
const (
	// VSphereMultiTemplateUbuntu127 is to test multiple vSphere templates.
	VSphereMultiTemplateUbuntu127 = "T_VSPHERE_TEMPLATE_UBUNTU_2204_1_27"
	// ControlPlaneMachineLabel is to get control plane vSphere machines from machine list.
	ControlPlaneMachineLabel = "cluster.x-k8s.io/control-plane"
	// EtcdMachineLabel is to get etcd vSphere machines from machine list.
	EtcdMachineLabel = "cluster.x-k8s.io/etcd-cluster"
)
View Source
const (
	OIDCIssuerUrlVar = "T_OIDC_ISSUER_URL"
	OIDCClientIdVar  = "T_OIDC_CLIENT_ID"
	OIDCKidVar       = "T_OIDC_KID"
	OIDCKeyFileVar   = "T_OIDC_KEY_FILE"
)
View Source
const (
	RegistryEndpointVar                  = "T_REGISTRY_MIRROR_ENDPOINT"
	RegistryPortVar                      = "T_REGISTRY_MIRROR_PORT"
	RegistryUsernameVar                  = "T_REGISTRY_MIRROR_USERNAME"
	RegistryPasswordVar                  = "T_REGISTRY_MIRROR_PASSWORD"
	RegistryCACertVar                    = "T_REGISTRY_MIRROR_CA_CERT"
	RegistryEndpointTinkerbellVar        = "T_REGISTRY_MIRROR_ENDPOINT_TINKERBELL"
	RegistryPortTinkerbellVar            = "T_REGISTRY_MIRROR_PORT_TINKERBELL"
	RegistryUsernameTinkerbellVar        = "T_REGISTRY_MIRROR_USERNAME_TINKERBELL"
	RegistryPasswordTinkerbellVar        = "T_REGISTRY_MIRROR_PASSWORD_TINKERBELL"
	RegistryCACertTinkerbellVar          = "T_REGISTRY_MIRROR_CA_CERT_TINKERBELL"
	RegistryMirrorDefaultSecurityGroup   = "T_REGISTRY_MIRROR_DEFAULT_SECURITY_GROUP"
	RegistryMirrorAirgappedSecurityGroup = "T_REGISTRY_MIRROR_AIRGAPPED_SECURITY_GROUP"
	PrivateRegistryEndpointVar           = "T_PRIVATE_REGISTRY_MIRROR_ENDPOINT"
	PrivateRegistryPortVar               = "T_PRIVATE_REGISTRY_MIRROR_PORT"
	PrivateRegistryUsernameVar           = "T_PRIVATE_REGISTRY_MIRROR_USERNAME"
	PrivateRegistryPasswordVar           = "T_PRIVATE_REGISTRY_MIRROR_PASSWORD"
	PrivateRegistryCACertVar             = "T_PRIVATE_REGISTRY_MIRROR_CA_CERT"
	PrivateRegistryEndpointTinkerbellVar = "T_PRIVATE_REGISTRY_MIRROR_ENDPOINT_TINKERBELL"
	PrivateRegistryPortTinkerbellVar     = "T_PRIVATE_REGISTRY_MIRROR_PORT_TINKERBELL"
	PrivateRegistryUsernameTinkerbellVar = "T_PRIVATE_REGISTRY_MIRROR_USERNAME_TINKERBELL"
	PrivateRegistryPasswordTinkerbellVar = "T_PRIVATE_REGISTRY_MIRROR_PASSWORD_TINKERBELL"
	PrivateRegistryCACertTinkerbellVar   = "T_PRIVATE_REGISTRY_MIRROR_CA_CERT_TINKERBELL"

	RegistryMirrorOciNamespacesRegistry1Var  = "T_REGISTRY_MIRROR_OCINAMESPACES_REGISTRY1"
	RegistryMirrorOciNamespacesNamespace1Var = "T_REGISTRY_MIRROR_OCINAMESPACES_NAMESPACE1"
	RegistryMirrorOciNamespacesRegistry2Var  = "T_REGISTRY_MIRROR_OCINAMESPACES_REGISTRY2"
	RegistryMirrorOciNamespacesNamespace2Var = "T_REGISTRY_MIRROR_OCINAMESPACES_NAMESPACE2"
)
View Source
const (
	AWSIamRoleArn = "T_AWS_IAM_ROLE_ARN"
)
View Source
const (
	BranchNameEnvVar = "T_BRANCH_NAME"
)
View Source
const LabelPrefix = "eksa.e2e"
View Source
const (

	// SSHKeyPath is the path where the SSH private key is stored on the test-runner instance.
	SSHKeyPath = "/tmp/ssh_key"
)

Variables

View Source
var CloudstackProxyRequiredEnvVars = ProxyRequiredEnvVars{
	HttpProxy:  cloudstackHttpProxyVar,
	HttpsProxy: cloudstackHttpsProxyVar,
	NoProxy:    cloudstackNoProxyVar,
}
View Source
var TinkerbellProxyRequiredEnvVars = ProxyRequiredEnvVars{
	HttpProxy:  tinkerbellHTTPProxyVar,
	HttpsProxy: tinkerbellHTTPSProxyVar,
	NoProxy:    tinkerbellNoProxyVar,
}

TinkerbellProxyRequiredEnvVars is for proxy related variables for tinkerbell.

View Source
var VSphereMultiTemplateUbuntu127RequiredEnvVars = []string{
	VSphereMultiTemplateUbuntu127,
}

VSphereMultiTemplateUbuntu127RequiredEnvVars is required for TestVSphereMultipleTemplatesUbuntu127.

View Source
var VsphereProxyRequiredEnvVars = ProxyRequiredEnvVars{
	HttpProxy:  vsphereHttpProxyVar,
	HttpsProxy: vsphereHttpsProxyVar,
	NoProxy:    vsphereNoProxyVar,
}

Functions

func AwaitCiliumDaemonSetReady added in v0.16.0

func AwaitCiliumDaemonSetReady(ctx context.Context, client client.Client, retries int, timeout time.Duration) error

AwaitCiliumDaemonSetReady awaits the Cilium daemonset to be ready in the cluster represented by client. It is ready when the DaemonSet's .Status.NumberUnavailable is 0.

func CheckCertManagerCredentials added in v0.15.0

func CheckCertManagerCredentials(t *testing.T)

CheckCertManagerCredentials will exit if route53 credentials are not set.

func CheckCuratedPackagesCredentials added in v0.12.1

func CheckCuratedPackagesCredentials(t *testing.T)

CheckCuratedPackagesCredentials will exit out if the Curated Packages environment variables are not set.

func CheckVsphereMultiTemplateUbuntu127EnvVars added in v0.18.0

func CheckVsphereMultiTemplateUbuntu127EnvVars(t *testing.T)

CheckVsphereMultiTemplateUbuntu127EnvVars checks is required env vars are present.

func CloudStackCredentialsAz1 added in v0.16.0

func CloudStackCredentialsAz1() string

CloudStackCredentialsAz1 returns the value of the environment variable for cloudstackCredentialsVar.

func DefaultLocalEKSABinDir added in v0.15.0

func DefaultLocalEKSABinDir() (string, error)

DefaultLocalEKSABinDir returns the full path for the local directory where the tested eks-a binary lives.

func DefaultLocalEKSABinaryPath added in v0.15.0

func DefaultLocalEKSABinaryPath() (string, error)

DefaultLocalEKSABinaryPath returns the full path for the local eks-a binary being tested.

func EKSAVersionForTestBinary added in v0.15.0

func EKSAVersionForTestBinary() (string, error)

EKSAVersionForTestBinary returns the "future" EKS-A version for the tested binary based on the TEST_BRANCH name. For main, it returns the next minor version. For a release branch, it returns the next path version for that release minor version.

func GenerateUniqueIp added in v0.8.0

func GenerateUniqueIp(cidr string) (string, error)

func GetBottlerocketKubernetesSettingsFromEnv added in v0.15.0

func GetBottlerocketKubernetesSettingsFromEnv() (allowedUnsafeSysclts, clusterDNSIPS []string, maxPods int, err error)

GetBottlerocketKubernetesSettingsFromEnv returns a Bottlerocket Kubernetes settings read from the environment variables.

func GetIP added in v0.11.0

func GetIP(cidr, ipEnvVar string) (string, error)

func GetLatestMinorReleaseBinaryFromMain added in v0.6.1

func GetLatestMinorReleaseBinaryFromMain() (binaryPath string, err error)

func GetLatestMinorReleaseFromMain added in v0.7.0

func GetLatestMinorReleaseFromMain() (*releasev1alpha1.EksARelease, error)

func GetLatestMinorReleaseFromTestBranch added in v0.7.0

func GetLatestMinorReleaseFromTestBranch() (*releasev1alpha1.EksARelease, error)

GetLatestMinorReleaseFromTestBranch inspects the T_BRANCH_NAME environment variable for a branch to retrieve the latest released CLI version. If T_BRANCH_NAME is main, it returns the latest minor release.

If T_BRANCH_NAME is not main, it expects it to be of the format release-<major>.<minor> and will use the <major>.<minor> to retrieve the previous minor release. For example, if the release branch is release-0.2 it will retrieve the latest 0.1 release.

func GetLatestPatchRelease added in v0.16.0

func GetLatestPatchRelease(releases *releasev1alpha1.Release, version *semver.Version) *releasev1alpha1.EksARelease

GetLatestPatchRelease return the latest patch version for the major.minor release version. If releases doesn't contain a major.minor for version, it returns nil.

func GetLatestProductionPatchRelease added in v0.16.0

func GetLatestProductionPatchRelease(version *semver.Version) (*releasev1alpha1.EksARelease, error)

GetLatestProductionPatchRelease retrieves the latest patch release for version from the production release manifest. If the production release manifest does not contain a release for the major.minor of version it errors.

func GetNTPServersFromEnv added in v0.15.0

func GetNTPServersFromEnv() []string

GetNTPServersFromEnv returns a slice of NTP servers read from the NTP environment veriables.

func GetPreviousMinorReleaseFromTestBranch added in v0.17.1

func GetPreviousMinorReleaseFromTestBranch() (*releasev1alpha1.EksARelease, error)

GetPreviousMinorReleaseFromTestBranch inspects the T_BRANCH_NAME environment variable for a branch to retrieve the previous latest minor released CLI version. If T_BRANCH_NAME is main, it returns the previous minor version which is one minor version below the latest minor version that is released.

If T_BRANCH_NAME is not main, it expects it to be of the format release-<major>.<minor> and will use the <major>.<minor> to retrieve the previous minor release. For example, if the release branch is release-0.2 it will retrieve the latest 0.1 release.

func GetPreviousMinorReleaseFromVersion added in v0.16.0

func GetPreviousMinorReleaseFromVersion(version *semver.Version) (*releasev1alpha1.EksARelease, error)

GetPreviousMinorReleaseFromVersion calculates the previous minor release by decrementing the version minor number, then retrieves the latest <major>.<minor>.<patch> for the calculated version.

func GetReleaseBinaryFromVersion added in v0.6.1

func GetReleaseBinaryFromVersion(version *semver.Version) (binaryPath string, err error)

func GetRoute53Configs added in v0.15.0

func GetRoute53Configs() (string, string, string, string)

GetRoute53Configs returns route53 configurations for cert-manager.

func GetTestNameHash added in v0.9.2

func GetTestNameHash(name string) string

func NoExecuteTaint added in v0.7.1

func NoExecuteTaint() corev1.Taint

func NoScheduleTaint added in v0.7.1

func NoScheduleTaint() corev1.Taint

func PopIPFromEnv added in v0.7.1

func PopIPFromEnv(ipPoolEnvVar string) (string, error)

func PreferNoScheduleTaint added in v0.7.1

func PreferNoScheduleTaint() corev1.Taint

func RemoveAllCloudStackAzs added in v0.11.3

func RemoveAllCloudStackAzs() api.CloudStackFiller

func RequiredAWSIamEnvVars added in v0.6.1

func RequiredAWSIamEnvVars() []string

func RequiredBottlerocketKubernetesSettingsEnvVars added in v0.15.0

func RequiredBottlerocketKubernetesSettingsEnvVars() []string

RequiredBottlerocketKubernetesSettingsEnvVars returns a slice of environment variables required for Bottlerocket Kubernetes tests.

func RequiredCertManagerEnvVars added in v0.15.0

func RequiredCertManagerEnvVars() []string

RequiredCertManagerEnvVars returns the list of cert manager env vars.

func RequiredCloudstackEnvVars added in v0.9.0

func RequiredCloudstackEnvVars() []string

func RequiredEtcdEncryptionEnvVars added in v0.18.0

func RequiredEtcdEncryptionEnvVars() []string

RequiredEtcdEncryptionEnvVars returns the environment variables required .

func RequiredFluxGitCreateRepoEnvVars added in v0.9.2

func RequiredFluxGitCreateRepoEnvVars() []string

func RequiredFluxGithubEnvVars added in v0.9.0

func RequiredFluxGithubEnvVars() []string

func RequiredNTPServersEnvVars added in v0.15.0

func RequiredNTPServersEnvVars() []string

RequiredNTPServersEnvVars returns a slice of environment variables required for NTP tests.

func RequiredNutanixEnvVars added in v0.13.0

func RequiredNutanixEnvVars() []string

RequiredNutanixEnvVars returns a list of environment variables needed for Nutanix tests.

func RequiredOOBEnvVars added in v0.18.0

func RequiredOOBEnvVars() []string

RequiredOOBEnvVars returns the environment variables required to run OOB related e2e tests.

func RequiredOciNamespacesEnvVars added in v0.20.0

func RequiredOciNamespacesEnvVars() []string

RequiredOciNamespacesEnvVars returns the Env variables to set for OCI Namespaces tests.

func RequiredPackagesEnvVars added in v0.13.0

func RequiredPackagesEnvVars() []string

RequiredPackagesEnvVars returns the list of packages env vars.

func RequiredRegistryMirrorEnvVars added in v0.6.0

func RequiredRegistryMirrorEnvVars() []string

func RequiredTinkerbellEnvVars added in v0.8.0

func RequiredTinkerbellEnvVars() []string

func RequiredVsphereEnvVars

func RequiredVsphereEnvVars() []string

func RequiredVsphereMultiTemplateUbuntu127EnvVars added in v0.18.0

func RequiredVsphereMultiTemplateUbuntu127EnvVars() []string

RequiredVsphereMultiTemplateUbuntu127EnvVars return required env vars for TestVSphereMultipleTemplatesUbuntu127.

func Ubuntu126Image added in v0.17.0

func Ubuntu126Image() api.TinkerbellFiller

Ubuntu126Image represents an Ubuntu raw image corresponding to Kubernetes 1.26.

func Ubuntu126ImageForCP added in v0.18.0

func Ubuntu126ImageForCP() api.TinkerbellFiller

Ubuntu126ImageForCP represents an Ubuntu raw image corresponding to Kubernetes 1.28 and is set for CP machine config.

func Ubuntu126ImageForWorker added in v0.18.0

func Ubuntu126ImageForWorker() api.TinkerbellFiller

Ubuntu126ImageForWorker represents an Ubuntu raw image corresponding to Kubernetes 1.28 and is set for worker machine config.

func Ubuntu127Image added in v0.17.0

func Ubuntu127Image() api.TinkerbellFiller

Ubuntu127Image represents an Ubuntu raw image corresponding to Kubernetes 1.27.

func Ubuntu127ImageForCP added in v0.18.0

func Ubuntu127ImageForCP() api.TinkerbellFiller

Ubuntu127ImageForCP represents an Ubuntu raw image corresponding to Kubernetes 1.27 and is set for CP machine config.

func Ubuntu127ImageForWorker added in v0.18.0

func Ubuntu127ImageForWorker() api.TinkerbellFiller

Ubuntu127ImageForWorker represents an Ubuntu raw image corresponding to Kubernetes 1.27 and is set for worker machine config.

func Ubuntu128Image added in v0.18.0

func Ubuntu128Image() api.TinkerbellFiller

Ubuntu128Image represents an Ubuntu raw image corresponding to Kubernetes 1.28.

func Ubuntu128ImageForCP added in v0.18.0

func Ubuntu128ImageForCP() api.TinkerbellFiller

Ubuntu128ImageForCP represents an Ubuntu raw image corresponding to Kubernetes 1.28 and is set for CP machine config.

func Ubuntu128ImageForWorker added in v0.18.0

func Ubuntu128ImageForWorker() api.TinkerbellFiller

Ubuntu128ImageForWorker represents an Ubuntu raw image corresponding to Kubernetes 1.28 and is set for worker machine config.

func Ubuntu129Image added in v0.19.0

func Ubuntu129Image() api.TinkerbellFiller

Ubuntu129Image represents an Ubuntu raw image corresponding to Kubernetes 1.29.

func Ubuntu129ImageForCP added in v0.19.0

func Ubuntu129ImageForCP() api.TinkerbellFiller

Ubuntu129ImageForCP represents an Ubuntu raw image corresponding to Kubernetes 1.29 and is set for CP machine config.

func Ubuntu129ImageForWorker added in v0.19.0

func Ubuntu129ImageForWorker() api.TinkerbellFiller

Ubuntu129ImageForWorker represents an Ubuntu raw image corresponding to Kubernetes 1.29 and is set for worker machine config.

func Ubuntu130Image added in v0.20.0

func Ubuntu130Image() api.TinkerbellFiller

Ubuntu130Image represents an Ubuntu raw image corresponding to Kubernetes 1.30.

func Ubuntu130ImageForCP added in v0.20.0

func Ubuntu130ImageForCP() api.TinkerbellFiller

Ubuntu130ImageForCP represents an Ubuntu raw image corresponding to Kubernetes 1.30 and is set for CP machine config.

func Ubuntu130ImageForWorker added in v0.20.0

func Ubuntu130ImageForWorker() api.TinkerbellFiller

Ubuntu130ImageForWorker represents an Ubuntu raw image corresponding to Kubernetes 1.30 and is set for worker machine config.

func Ubuntu2204Kubernetes126Image added in v0.17.0

func Ubuntu2204Kubernetes126Image() api.TinkerbellFiller

Ubuntu2204Kubernetes126Image represents an Ubuntu 22.04 raw image corresponding to Kubernetes 1.26.

func Ubuntu2204Kubernetes127Image added in v0.17.0

func Ubuntu2204Kubernetes127Image() api.TinkerbellFiller

Ubuntu2204Kubernetes127Image represents an Ubuntu 22.04 raw image corresponding to Kubernetes 1.27.

func Ubuntu2204Kubernetes128Image added in v0.18.0

func Ubuntu2204Kubernetes128Image() api.TinkerbellFiller

Ubuntu2204Kubernetes128Image represents an Ubuntu 22.04 raw image corresponding to Kubernetes 1.28.

func Ubuntu2204Kubernetes129Image added in v0.19.0

func Ubuntu2204Kubernetes129Image() api.TinkerbellFiller

Ubuntu2204Kubernetes129Image represents an Ubuntu 22.04 raw image corresponding to Kubernetes 1.29.

func Ubuntu2204Kubernetes129RTOSImage added in v0.20.0

func Ubuntu2204Kubernetes129RTOSImage() api.TinkerbellFiller

Ubuntu2204Kubernetes129RTOSImage represents an Ubuntu 22.04 RTOS raw image corresponding to Kubernetes 1.29.

func Ubuntu2204Kubernetes130Image added in v0.20.0

func Ubuntu2204Kubernetes130Image() api.TinkerbellFiller

Ubuntu2204Kubernetes130Image represents an Ubuntu 22.04 raw image corresponding to Kubernetes 1.30.

func UpdateAddCloudStackAz1 added in v0.11.3

func UpdateAddCloudStackAz1() api.CloudStackFiller

func UpdateAddCloudStackAz2 added in v0.11.3

func UpdateAddCloudStackAz2() api.CloudStackFiller

func UpdateAddCloudStackAz3 added in v0.15.0

func UpdateAddCloudStackAz3() api.CloudStackFiller

UpdateAddCloudStackAz3 add availability zone 3 to the cluster spec.

func UpdateAddCloudStackAz4 added in v0.19.0

func UpdateAddCloudStackAz4() api.CloudStackFiller

UpdateAddCloudStackAz4 add availability zone 4 to the cluster spec.

func UpdateLargerCloudStackComputeOffering added in v0.9.0

func UpdateLargerCloudStackComputeOffering() api.CloudStackFiller

func UpdateTinkerbellMachineSSHAuthorizedKey added in v0.15.3

func UpdateTinkerbellMachineSSHAuthorizedKey() api.TinkerbellMachineFiller

UpdateTinkerbellMachineSSHAuthorizedKey updates a tinkerbell machine configs SSHAuthorizedKey.

func VSphereExtraEnvVarPrefixes added in v0.12.0

func VSphereExtraEnvVarPrefixes() []string

VSphereExtraEnvVarPrefixes returns prefixes for env vars that although not always required, might be necessary for certain tests.

func ValidateControlPlaneFailureDomainLabels added in v0.13.0

func ValidateControlPlaneFailureDomainLabels(controlPlane v1alpha1.ControlPlaneConfiguration, node corev1.Node) error

ValidateControlPlaneFailureDomainLabels validate if Cloudstack provider replaces ds.meta_data.failuredomain with proper failuredomain name in control plane node label 'cluster.x-k8s.io/failure-domain'.

func ValidateControlPlaneLabels added in v0.7.1

func ValidateControlPlaneLabels(controlPlane v1alpha1.ControlPlaneConfiguration, node corev1.Node) error

func ValidateControlPlaneNoTaints added in v0.13.0

func ValidateControlPlaneNoTaints(controlPlane v1alpha1.ControlPlaneConfiguration, node corev1.Node) (err error)

ValidateControlPlaneNoTaints will validate that a controlPlane has no taints, for example in the case of a single node cluster.

func ValidateControlPlaneNodeNameMatchCAPIMachineName added in v0.13.0

func ValidateControlPlaneNodeNameMatchCAPIMachineName(controlPlane v1alpha1.ControlPlaneConfiguration, node corev1.Node) error

ValidateControlPlaneNodeNameMatchCAPIMachineName validate if node name is same as CAPI machine name.

func ValidateControlPlaneTaints added in v0.7.1

func ValidateControlPlaneTaints(controlPlane v1alpha1.ControlPlaneConfiguration, node corev1.Node) (err error)

ValidateControlPlaneTaints will validate that a controlPlane node has the expected taints.

func ValidateMachineTemplate added in v0.18.0

func ValidateMachineTemplate(machineConfig *v1alpha1.VSphereMachineConfig, machine vspherev1.VSphereMachine) (err error)

ValidateMachineTemplate validates if template configured in machine config matches the vSphere machine.

func ValidateWorkerNodeFailureDomainLabels added in v0.13.0

func ValidateWorkerNodeFailureDomainLabels(w v1alpha1.WorkerNodeGroupConfiguration, node corev1.Node) error

ValidateWorkerNodeFailureDomainLabels validate if Cloudstack provider replaces ds.meta_data.failuredomain with proper failuredomain name in worker group node label 'cluster.x-k8s.io/failure-domain'.

func ValidateWorkerNodeLabels added in v0.7.1

func ValidateWorkerNodeLabels(w v1alpha1.WorkerNodeGroupConfiguration, node corev1.Node) error

func ValidateWorkerNodeNameMatchCAPIMachineName added in v0.13.0

func ValidateWorkerNodeNameMatchCAPIMachineName(w v1alpha1.WorkerNodeGroupConfiguration, node corev1.Node) error

ValidateWorkerNodeNameMatchCAPIMachineName validate if node name is same as CAPI machine name.

func ValidateWorkerNodeTaints added in v0.7.1

func ValidateWorkerNodeTaints(w v1alpha1.WorkerNodeGroupConfiguration, node corev1.Node) (err error)

ValidateWorkerNodeTaints will validate that a worker node has the expected taints in the worker node group configuration.

func WithAwsIamConfig added in v0.16.0

func WithAwsIamConfig() api.ClusterConfigFiller

WithAwsIamConfig sets aws iam in cluster config.

func WithFluxGithubConfig added in v0.14.0

func WithFluxGithubConfig(opts ...api.FluxConfigOpt) api.ClusterConfigFiller

WithFluxGithubConfig returns ClusterConfigFiller that adds FluxConfig using the Github provider to the cluster config.

func WithKubeletClusterConfig added in v0.20.0

func WithKubeletClusterConfig() api.ClusterConfigFiller

WithKubeletClusterConfig returns a ClusterConfigFiller that adds the default KubeletConfig for E2E tests to the cluster Config.

func WithOIDCClusterConfig added in v0.17.0

func WithOIDCClusterConfig(t T) api.ClusterConfigFiller

WithOIDCClusterConfig returns a ClusterConfigFiller that adds the default OIDCConfig for E2E tests to the cluster Config and links it by name in the Cluster resource.

Types

type CloudStack added in v0.9.0

type CloudStack struct {
	// contains filtered or unexported fields
}

func NewCloudStack added in v0.9.0

func NewCloudStack(t *testing.T, opts ...CloudStackOpt) *CloudStack

func (*CloudStack) CleanupResources added in v0.20.0

func (c *CloudStack) CleanupResources(clusterName string) error

CleanupResources satisfies the test framework Provider.

func (*CloudStack) ClusterConfigUpdates added in v0.14.0

func (c *CloudStack) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*CloudStack) ClusterStateValidations added in v0.15.0

func (c *CloudStack) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific validations.

func (*CloudStack) Name added in v0.9.0

func (c *CloudStack) Name() string

func (*CloudStack) Redhat126Template added in v0.17.0

func (c *CloudStack) Redhat126Template() api.CloudStackFiller

Redhat126Template returns cloudstack filler for 1.26 RedHat.

func (*CloudStack) Redhat127Template added in v0.17.0

func (c *CloudStack) Redhat127Template() api.CloudStackFiller

Redhat127Template returns cloudstack filler for 1.27 RedHat.

func (*CloudStack) Redhat128Template added in v0.18.0

func (c *CloudStack) Redhat128Template() api.CloudStackFiller

Redhat128Template returns cloudstack filler for 1.28 RedHat.

func (*CloudStack) Redhat129Template added in v0.19.0

func (c *CloudStack) Redhat129Template() api.CloudStackFiller

Redhat129Template returns cloudstack filler for 1.29 RedHat.

func (*CloudStack) Redhat130Template added in v0.20.0

func (c *CloudStack) Redhat130Template() api.CloudStackFiller

Redhat130Template returns cloudstack filler for 1.30 RedHat.

func (*CloudStack) Redhat9Kubernetes126Template added in v0.19.0

func (c *CloudStack) Redhat9Kubernetes126Template() api.CloudStackFiller

Redhat9Kubernetes126Template returns cloudstack filler for 1.26 RedHat.

func (*CloudStack) Redhat9Kubernetes127Template added in v0.19.0

func (c *CloudStack) Redhat9Kubernetes127Template() api.CloudStackFiller

Redhat9Kubernetes127Template returns cloudstack filler for 1.27 RedHat.

func (*CloudStack) Redhat9Kubernetes128Template added in v0.19.0

func (c *CloudStack) Redhat9Kubernetes128Template() api.CloudStackFiller

Redhat9Kubernetes128Template returns cloudstack filler for 1.28 RedHat.

func (*CloudStack) Redhat9Kubernetes129Template added in v0.19.0

func (c *CloudStack) Redhat9Kubernetes129Template() api.CloudStackFiller

Redhat9Kubernetes129Template returns cloudstack filler for 1.29 RedHat.

func (*CloudStack) Redhat9Kubernetes130Template added in v0.20.0

func (c *CloudStack) Redhat9Kubernetes130Template() api.CloudStackFiller

Redhat9Kubernetes130Template returns cloudstack filler for 1.30 RedHat.

func (*CloudStack) Setup added in v0.9.0

func (c *CloudStack) Setup()

func (*CloudStack) UpdateKubeConfig added in v0.14.0

func (c *CloudStack) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig for the provider.

func (*CloudStack) WithKubeVersionAndOS added in v0.17.0

func (c *CloudStack) WithKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease, _ ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right template for all cloudstack machine configs.

func (*CloudStack) WithNewCloudStackWorkerNodeGroup added in v0.9.0

func (c *CloudStack) WithNewCloudStackWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.CloudStackMachineConfigFiller) ClusterE2ETestOpt

func (*CloudStack) WithNewWorkerNodeGroup added in v0.17.0

func (c *CloudStack) WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration and a corresponding CloudStackMachineConfig to the cluster config.

func (*CloudStack) WithProviderUpgrade added in v0.9.0

func (c *CloudStack) WithProviderUpgrade(fillers ...api.CloudStackFiller) ClusterE2ETestOpt

func (*CloudStack) WithProviderUpgradeGit added in v0.9.0

func (c *CloudStack) WithProviderUpgradeGit(fillers ...api.CloudStackFiller) ClusterE2ETestOpt

func (*CloudStack) WithRedhat126 added in v0.17.0

func (c *CloudStack) WithRedhat126() api.ClusterConfigFiller

WithRedhat126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat127 added in v0.17.0

func (c *CloudStack) WithRedhat127() api.ClusterConfigFiller

WithRedhat127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat128 added in v0.18.0

func (c *CloudStack) WithRedhat128() api.ClusterConfigFiller

WithRedhat128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat129 added in v0.19.0

func (c *CloudStack) WithRedhat129() api.ClusterConfigFiller

WithRedhat129 returns a cluster config filler that sets the kubernetes version of the cluster to 1.29 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat130 added in v0.20.0

func (c *CloudStack) WithRedhat130() api.ClusterConfigFiller

WithRedhat130 returns a cluster config filler that sets the kubernetes version of the cluster to 1.30 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat9Kubernetes126 added in v0.19.0

func (c *CloudStack) WithRedhat9Kubernetes126() api.ClusterConfigFiller

WithRedhat9Kubernetes126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat9Kubernetes127 added in v0.19.0

func (c *CloudStack) WithRedhat9Kubernetes127() api.ClusterConfigFiller

WithRedhat9Kubernetes127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat9Kubernetes128 added in v0.19.0

func (c *CloudStack) WithRedhat9Kubernetes128() api.ClusterConfigFiller

WithRedhat9Kubernetes128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat9Kubernetes129 added in v0.19.0

func (c *CloudStack) WithRedhat9Kubernetes129() api.ClusterConfigFiller

WithRedhat9Kubernetes129 returns a cluster config filler that sets the kubernetes version of the cluster to 1.29 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhat9Kubernetes130 added in v0.20.0

func (c *CloudStack) WithRedhat9Kubernetes130() api.ClusterConfigFiller

WithRedhat9Kubernetes130 returns a cluster config filler that sets the kubernetes version of the cluster to 1.30 as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithRedhatVersion added in v0.16.0

func (c *CloudStack) WithRedhatVersion(version anywherev1.KubernetesVersion) api.ClusterConfigFiller

WithRedhatVersion returns a cluster config filler that sets the kubernetes version of the cluster to the k8s version provider, as well as the right redhat template for all CloudStackMachineConfigs.

func (*CloudStack) WithWorkerNodeGroupConfiguration added in v0.16.0

func (c *CloudStack) WithWorkerNodeGroupConfiguration(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithWorkerNodeGroupConfiguration returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration item to the cluster config.

type CloudStackOpt added in v0.9.0

type CloudStackOpt func(*CloudStack)

func WithCloudStackFillers added in v0.9.0

func WithCloudStackFillers(fillers ...api.CloudStackFiller) CloudStackOpt

func WithCloudStackRedhat126 added in v0.17.0

func WithCloudStackRedhat126() CloudStackOpt

WithCloudStackRedhat126 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.26.

func WithCloudStackRedhat127 added in v0.17.0

func WithCloudStackRedhat127() CloudStackOpt

WithCloudStackRedhat127 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.27.

func WithCloudStackRedhat128 added in v0.18.0

func WithCloudStackRedhat128() CloudStackOpt

WithCloudStackRedhat128 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.28.

func WithCloudStackRedhat129 added in v0.19.0

func WithCloudStackRedhat129() CloudStackOpt

WithCloudStackRedhat129 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.29.

func WithCloudStackRedhat130 added in v0.20.0

func WithCloudStackRedhat130() CloudStackOpt

WithCloudStackRedhat130 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.30.

func WithCloudStackRedhat9Kubernetes126 added in v0.19.0

func WithCloudStackRedhat9Kubernetes126() CloudStackOpt

WithCloudStackRedhat9Kubernetes126 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.26.

func WithCloudStackRedhat9Kubernetes127 added in v0.19.0

func WithCloudStackRedhat9Kubernetes127() CloudStackOpt

WithCloudStackRedhat9Kubernetes127 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.27.

func WithCloudStackRedhat9Kubernetes128 added in v0.19.0

func WithCloudStackRedhat9Kubernetes128() CloudStackOpt

WithCloudStackRedhat9Kubernetes128 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.28.

func WithCloudStackRedhat9Kubernetes129 added in v0.19.0

func WithCloudStackRedhat9Kubernetes129() CloudStackOpt

WithCloudStackRedhat9Kubernetes129 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.29.

func WithCloudStackRedhat9Kubernetes130 added in v0.20.0

func WithCloudStackRedhat9Kubernetes130() CloudStackOpt

WithCloudStackRedhat9Kubernetes130 returns a function which can be invoked to configure the Cloudstack object to be compatible with K8s 1.30.

func WithCloudStackWorkerNodeGroup added in v0.9.0

func WithCloudStackWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.CloudStackMachineConfigFiller) CloudStackOpt

type ClusterE2ETest added in v0.6.1

type ClusterE2ETest struct {
	T                      T
	ClusterConfigLocation  string
	ClusterConfigFolder    string
	HardwareConfigLocation string
	HardwareCsvLocation    string
	TestHardware           map[string]*api.Hardware
	HardwarePool           map[string]*api.Hardware
	WithNoPowerActions     bool
	WithOOBConfiguration   bool
	ClusterName            string
	ClusterConfig          *cluster.Config

	Provider Provider

	KubectlClient     *executables.Kubectl
	GitProvider       git.ProviderClient
	GitClient         git.Client
	HelmInstallConfig *HelmInstallConfig
	PackageConfig     *PackageConfig
	GitWriter         filewriter.FileWriter

	OSFamily      v1alpha1.OSFamily
	ExpectFailure bool
	// PersistentCluster avoids creating the clusters if it finds a kubeconfig
	// in the corresponding cluster folder. Useful for local development of tests.
	// When generating a new base cluster config, it will read from disk instead of
	// using the CLI generate command and will preserve the previous CP endpoint.
	PersistentCluster bool
	// contains filtered or unexported fields
}

func NewClusterE2ETest added in v0.6.1

func NewClusterE2ETest(t T, provider Provider, opts ...ClusterE2ETestOpt) *ClusterE2ETest

NewClusterE2ETest is a support structure for defining an end-to-end test.

func (*ClusterE2ETest) AirgapDockerContainers added in v0.15.0

func (e *ClusterE2ETest) AirgapDockerContainers(localCIDRs string)

AirgapDockerContainers airgap docker containers. Outside network should not be reached during airgapped deployment.

func (*ClusterE2ETest) ApplyClusterManifest added in v0.14.0

func (e *ClusterE2ETest) ApplyClusterManifest()

ApplyClusterManifest uses client-side logic to create/update objects defined in a cluster yaml manifest.

func (*ClusterE2ETest) ApplyPackageFile added in v0.14.0

func (e *ClusterE2ETest) ApplyPackageFile(packageName, targetNamespace string, PackageFile []byte)

ApplyPackageFile is applying a package file in the cluster.

func (*ClusterE2ETest) ApplyPrometheusPackageServerDeploymentFile added in v0.14.0

func (e *ClusterE2ETest) ApplyPrometheusPackageServerDeploymentFile(packageName, targetNamespace string)

ApplyPrometheusPackageServerDeploymentFile is checking if deployment config changes trigger resource reloads correctly.

func (*ClusterE2ETest) ApplyPrometheusPackageServerStatefulSetFile added in v0.14.0

func (e *ClusterE2ETest) ApplyPrometheusPackageServerStatefulSetFile(packageName, targetNamespace string)

ApplyPrometheusPackageServerStatefulSetFile is checking if statefulset config changes trigger resource reloads correctly.

func (*ClusterE2ETest) AssertAirgappedNetwork added in v0.15.0

func (e *ClusterE2ETest) AssertAirgappedNetwork()

AssertAirgappedNetwork make sure that the admin machine is indeed airgapped.

func (*ClusterE2ETest) BuildPackageConfigFile added in v0.12.1

func (e *ClusterE2ETest) BuildPackageConfigFile(packageName, prefix, ns string) string

BuildPackageConfigFile will create the file in the test directory for the curated package.

func (*ClusterE2ETest) BuildWorkloadClusterClient added in v0.16.0

func (e *ClusterE2ETest) BuildWorkloadClusterClient() (client.Client, error)

BuildWorkloadClusterClient creates a client for the workload cluster created by e.

func (*ClusterE2ETest) CapiMachinesForCluster added in v0.15.0

func (e *ClusterE2ETest) CapiMachinesForCluster(clusterName string) (map[string]types.Machine, error)

CapiMachinesForCluster reads all the CAPI Machines for a particular cluster and returns them index by their name.

func (*ClusterE2ETest) ChangeInstanceSecurityGroup added in v0.15.0

func (e *ClusterE2ETest) ChangeInstanceSecurityGroup(securityGroup string)

ChangeInstanceSecurityGroup modifies the security group of the instance to the provided value.

func (*ClusterE2ETest) CleanUpGitRepo added in v0.9.0

func (e *ClusterE2ETest) CleanUpGitRepo()

func (*ClusterE2ETest) CleanUpGithubRepo added in v0.6.1

func (e *ClusterE2ETest) CleanUpGithubRepo()

func (*ClusterE2ETest) CleanupCerts added in v0.19.0

func (e *ClusterE2ETest) CleanupCerts(mgmtCluster *types.Cluster) error

CleanupCerts cleans up letsencrypt certificates.

func (*ClusterE2ETest) CleanupDockerEnvironment added in v0.10.0

func (e *ClusterE2ETest) CleanupDockerEnvironment()

func (*ClusterE2ETest) CleanupDownloadedArtifactsAndImages added in v0.15.0

func (e *ClusterE2ETest) CleanupDownloadedArtifactsAndImages(opts ...CommandOpt)

CleanupDownloadedArtifactsAndImages cleans up the downloaded artifacts and images.

func (*ClusterE2ETest) Cluster added in v0.14.0

func (e *ClusterE2ETest) Cluster() *types.Cluster

Cluster builds a cluster obj using the ClusterE2ETest name and kubeconfig.

func (*ClusterE2ETest) CombinedAutoScalerMetricServerTest added in v0.14.0

func (e *ClusterE2ETest) CombinedAutoScalerMetricServerTest(autoscalerName, metricServerName, targetNamespace string, mgmtCluster *types.Cluster)

CombinedAutoScalerMetricServerTest verifies that new nodes are spun up after using a HPA to scale a deployment.

func (*ClusterE2ETest) CreateAirgappedUser added in v0.15.0

func (e *ClusterE2ETest) CreateAirgappedUser(localCIDR string)

CreateAirgappedUser create airgapped user and setup the iptables rule. Notice that OUTPUT chain is flushed each time.

func (*ClusterE2ETest) CreateCloudStackCredentialsSecretFromEnvVar added in v0.16.0

func (e *ClusterE2ETest) CreateCloudStackCredentialsSecretFromEnvVar(name, profileName string)

CreateCloudStackCredentialsSecretFromEnvVar parses the cloudstack credentials from an environment variable, builds a new secret object from the credentials in the provided profile and creates it in the cluster.

func (*ClusterE2ETest) CreateCluster added in v0.6.1

func (e *ClusterE2ETest) CreateCluster(opts ...CommandOpt)

func (*ClusterE2ETest) CreateNamespace added in v0.12.0

func (e *ClusterE2ETest) CreateNamespace(namespace string)

CreateNamespace creates a namespace.

func (*ClusterE2ETest) CreateResource added in v0.12.0

func (e *ClusterE2ETest) CreateResource(ctx context.Context, resource string)

func (*ClusterE2ETest) CurlEndpoint added in v0.16.3

func (e *ClusterE2ETest) CurlEndpoint(endpoint, namespace string, extraCurlArgs ...string) string

CurlEndpoint creates a pod with command to curl the target endpoint, and returns the created pod name.

func (*ClusterE2ETest) DeleteCluster added in v0.6.1

func (e *ClusterE2ETest) DeleteCluster(opts ...CommandOpt)

func (*ClusterE2ETest) DeleteNamespace added in v0.12.0

func (e *ClusterE2ETest) DeleteNamespace(namespace string)

DeleteNamespace deletes a namespace.

func (*ClusterE2ETest) DeployTestWorkload added in v0.19.7

func (e *ClusterE2ETest) DeployTestWorkload(cluster *types.Cluster)

DeployTestWorkload deploys the test workload on the cluster.

func (*ClusterE2ETest) DownloadArtifacts added in v0.9.0

func (e *ClusterE2ETest) DownloadArtifacts(opts ...CommandOpt)

DownloadArtifacts runs the EKS-A `download artifacts` command with appropriate args.

func (*ClusterE2ETest) DownloadImages added in v0.15.0

func (e *ClusterE2ETest) DownloadImages(opts ...CommandOpt)

DownloadImages runs the EKS-A `download images` command with appropriate args.

func (*ClusterE2ETest) ExtractDownloadedArtifacts added in v0.15.0

func (e *ClusterE2ETest) ExtractDownloadedArtifacts(opts ...CommandOpt)

ExtractDownloadedArtifacts extracts the downloaded artifacts.

func (*ClusterE2ETest) GenerateClusterConfig added in v0.6.1

func (e *ClusterE2ETest) GenerateClusterConfig(opts ...CommandOpt)

func (*ClusterE2ETest) GenerateClusterConfigForVersion added in v0.7.0

func (e *ClusterE2ETest) GenerateClusterConfigForVersion(eksaVersion string, opts ...CommandOpt)

func (*ClusterE2ETest) GenerateHardwareConfig added in v0.8.0

func (e *ClusterE2ETest) GenerateHardwareConfig(opts ...CommandOpt)

func (*ClusterE2ETest) GenerateSupportBundleIfTestFailed added in v0.20.0

func (e *ClusterE2ETest) GenerateSupportBundleIfTestFailed(opts ...CommandOpt)

GenerateSupportBundleIfTestFailed runs generates a support bundle if the test failed.

func (*ClusterE2ETest) GenerateSupportBundleOnCleanupIfTestFailed added in v0.16.0

func (e *ClusterE2ETest) GenerateSupportBundleOnCleanupIfTestFailed(opts ...CommandOpt)

GenerateSupportBundleOnCleanupIfTestFailed does what it says on the tin.

It uses testing.T.Cleanup to register a handler that checks if the test failed, and generates a support bundle only in the event of a failure.

func (*ClusterE2ETest) GetCapiMachinesForCluster added in v0.12.0

func (e *ClusterE2ETest) GetCapiMachinesForCluster(clusterName string) map[string]types.Machine

func (*ClusterE2ETest) GetEKSACluster added in v0.14.0

func (e *ClusterE2ETest) GetEKSACluster() *v1alpha1.Cluster

GetEKSACluster retrieves the EKSA cluster from the runtime environment using kubectl.

func (*ClusterE2ETest) GetEksaVSphereMachineConfigs added in v0.6.1

func (e *ClusterE2ETest) GetEksaVSphereMachineConfigs() []v1alpha1.VSphereMachineConfig

func (*ClusterE2ETest) GetHardwarePool added in v0.8.0

func (e *ClusterE2ETest) GetHardwarePool() map[string]*api.Hardware

func (*ClusterE2ETest) ImportImages added in v0.6.1

func (e *ClusterE2ETest) ImportImages(opts ...CommandOpt)

ImportImages runs the EKS-A `import images` command with appropriate args.

func (*ClusterE2ETest) InstallAutoScaler added in v0.19.7

func (e *ClusterE2ETest) InstallAutoScaler(workloadClusterName, targetNamespace string)

InstallAutoScaler installs autoscaler with a given target namespace.

func (*ClusterE2ETest) InstallAutoScalerWithMetricServer added in v0.14.0

func (e *ClusterE2ETest) InstallAutoScalerWithMetricServer(targetNamespace string)

InstallAutoScalerWithMetricServer installs autoscaler and metrics-server with a given target namespace.

func (*ClusterE2ETest) InstallCuratedPackage added in v0.9.2

func (e *ClusterE2ETest) InstallCuratedPackage(packageName, packagePrefix, kubeconfig string, opts ...string)

InstallCuratedPackage will install a curated package.

func (*ClusterE2ETest) InstallCuratedPackageFile added in v0.12.1

func (e *ClusterE2ETest) InstallCuratedPackageFile(packageFile, kubeconfig string, opts ...string)

InstallCuratedPackageFile will install a curated package from a yaml file, this is useful since target namespace isn't supported on the CLI.

func (*ClusterE2ETest) InstallHelmChart added in v0.9.0

func (e *ClusterE2ETest) InstallHelmChart()

func (*ClusterE2ETest) InstallLocalStorageProvisioner added in v0.11.0

func (e *ClusterE2ETest) InstallLocalStorageProvisioner()

func (*ClusterE2ETest) InstallOSSCilium added in v0.16.0

func (e *ClusterE2ETest) InstallOSSCilium()

InstallOSSCilium installs an open source version of Cilium. The version is dependent on the Cilium CLI version available on the PATH.

func (*ClusterE2ETest) KubeconfigFilePath added in v0.16.0

func (e *ClusterE2ETest) KubeconfigFilePath() string

KubeconfigFilePath retrieves the Kubeconfig path used for the workload cluster.

func (*ClusterE2ETest) LoadClusterConfigGeneratedByCLI added in v0.16.1

func (e *ClusterE2ETest) LoadClusterConfigGeneratedByCLI(fillers ...api.ClusterConfigFiller)

LoadClusterConfigGeneratedByCLI loads the full cluster config from the file generated when a cluster is created using the CLI.

func (*ClusterE2ETest) MatchLogs added in v0.14.0

func (e *ClusterE2ETest) MatchLogs(targetNamespace, targetPodName string,
	targetContainerName, expectedLogs string, timeout time.Duration,
)

MatchLogs matches the log from a container to the expected content. Given it takes time for logs to be populated, a retrier with configurable timeout duration is added.

func (*ClusterE2ETest) NewGitTools added in v0.9.0

func (e *ClusterE2ETest) NewGitTools(ctx context.Context, cluster *v1alpha1.Cluster, fluxConfig *v1alpha1.FluxConfig, writer filewriter.FileWriter, repoPath string) (*gitFactory.GitTools, error)

func (*ClusterE2ETest) PostClusterCreateEtcdEncryptionSetup added in v0.18.0

func (e *ClusterE2ETest) PostClusterCreateEtcdEncryptionSetup()

PostClusterCreateEtcdEncryptionSetup performs operations on the cluster to prepare it for etcd encryption. These operations include: - Adding Cluster SA cert to the OIDC provider's keys. - Deploying Pod Identity Webhook. - Deploying AWS KMS Provider.

func (*ClusterE2ETest) ReplaceCiliumWithOSSCilium added in v0.16.0

func (e *ClusterE2ETest) ReplaceCiliumWithOSSCilium()

ReplaceCiliumWithOSSCilium replaces the current Cilium installation in the workload cluster with an open source version. See InstallOSSCilium().

func (*ClusterE2ETest) RestartClusterAutoscaler added in v0.19.7

func (e *ClusterE2ETest) RestartClusterAutoscaler(targetNamespace string)

RestartClusterAutoscaler restarts the cluster autoscaler deployment in the target namespace.

func (*ClusterE2ETest) Run added in v0.6.1

func (e *ClusterE2ETest) Run(name string, args ...string)

func (*ClusterE2ETest) RunClusterFlowWithGitOps added in v0.9.0

func (e *ClusterE2ETest) RunClusterFlowWithGitOps(clusterOpts ...ClusterE2ETestOpt)

func (*ClusterE2ETest) RunConformanceTests added in v0.6.1

func (e *ClusterE2ETest) RunConformanceTests()

func (*ClusterE2ETest) RunEKSA added in v0.6.1

func (e *ClusterE2ETest) RunEKSA(args []string, opts ...CommandOpt)

func (*ClusterE2ETest) SetPackageBundleActive added in v0.12.1

func (e *ClusterE2ETest) SetPackageBundleActive()

SetPackageBundleActive will set the current packagebundle to the active state.

func (*ClusterE2ETest) SetRegistryMirrorDefaultInstanceSecurityGroupOnCleanup added in v0.19.0

func (e *ClusterE2ETest) SetRegistryMirrorDefaultInstanceSecurityGroupOnCleanup(opts ...CommandOpt)

SetRegistryMirrorDefaultInstanceSecurityGroupOnCleanup sets the instance security group to the registry mirror default security group on cleanup.

func (*ClusterE2ETest) StopIfFailed added in v0.6.1

func (e *ClusterE2ETest) StopIfFailed()

func (*ClusterE2ETest) TestEmissaryPackageRouting added in v0.13.0

func (e *ClusterE2ETest) TestEmissaryPackageRouting(packageName, checkName string, mgmtCluster *types.Cluster)

TestEmissaryPackageRouting is checking if emissary is able to create Ingress, host, and mapping that function correctly.

func (*ClusterE2ETest) UninstallCilium added in v0.16.0

func (e *ClusterE2ETest) UninstallCilium()

UninstallCilium uninstalls the workload clusters Cilium.

func (*ClusterE2ETest) UninstallCuratedPackage added in v0.12.0

func (e *ClusterE2ETest) UninstallCuratedPackage(packagePrefix string, opts ...string)

func (*ClusterE2ETest) UpdateClusterConfig added in v0.14.0

func (e *ClusterE2ETest) UpdateClusterConfig(fillers ...api.ClusterConfigFiller)

UpdateClusterConfig applies the cluster Config provided updates to e.ClusterConfig, marshalls its content to yaml and writes it to a file on disk configured by e.ClusterConfigLocation. Call this method when you want make changes to the eks-a cluster definition before running a CLI command or API operation.

func (*ClusterE2ETest) UpdateClusterName added in v0.19.0

func (e *ClusterE2ETest) UpdateClusterName(name string)

UpdateClusterName updates the cluster name for the test. This will drive both the name of the eks-a cluster config objects as well as the cluster config file name and the folder where the cluster config file is stored. The cluster config folder will be updated to the new cluster name only if it was using the default value.

func (*ClusterE2ETest) UpgradeCluster added in v0.6.1

func (e *ClusterE2ETest) UpgradeCluster(commandOpts ...CommandOpt)

UpgradeCluster runs the CLI upgrade command.

func (*ClusterE2ETest) UpgradeClusterWithNewConfig added in v0.15.0

func (e *ClusterE2ETest) UpgradeClusterWithNewConfig(clusterOpts []ClusterE2ETestOpt, commandOpts ...CommandOpt)

UpgradeClusterWithNewConfig applies the test options, re-generates the cluster config file and runs the CLI upgrade command.

func (*ClusterE2ETest) UpgradeWithGitOps added in v0.7.1

func (e *ClusterE2ETest) UpgradeWithGitOps(clusterOpts ...ClusterE2ETestOpt)

func (*ClusterE2ETest) ValidateAWSIamAuth added in v0.6.1

func (e *ClusterE2ETest) ValidateAWSIamAuth()

func (*ClusterE2ETest) ValidateBottlerocketKubernetesSettings added in v0.15.0

func (e *ClusterE2ETest) ValidateBottlerocketKubernetesSettings()

ValidateBottlerocketKubernetesSettings validates Bottlerocket Kubernetes settings are configured properly on all cluster nodes using SSH.

func (*ClusterE2ETest) ValidateCiliumCLIAvailable added in v0.16.0

func (e *ClusterE2ETest) ValidateCiliumCLIAvailable()

ValidateCiliumCLIAvailable ensures the Cilium CLI can be found on the PATH.

func (*ClusterE2ETest) ValidateCluster added in v0.6.1

func (e *ClusterE2ETest) ValidateCluster(kubeVersion v1alpha1.KubernetesVersion)

func (*ClusterE2ETest) ValidateClusterState added in v0.14.0

func (e *ClusterE2ETest) ValidateClusterState()

ValidateClusterState runs a set of validations against the cluster to identify an invalid cluster state.

func (*ClusterE2ETest) ValidateClusterStateWithT added in v0.16.0

func (e *ClusterE2ETest) ValidateClusterStateWithT(t *testing.T)

ValidateClusterStateWithT runs a set of validations against the cluster to identify an invalid cluster state and accepts *testing.T as a parameter.

func (*ClusterE2ETest) ValidateControlPlaneNodes added in v0.7.1

func (e *ClusterE2ETest) ValidateControlPlaneNodes(validations ...ControlPlaneNodeValidation)

ValidateControlPlaneNodes deduces the control plane configuration to node mapping and for each configuration/node pair executes the provided validation functions.

func (*ClusterE2ETest) ValidateEKSACiliumInstalled added in v0.16.0

func (e *ClusterE2ETest) ValidateEKSACiliumInstalled()

ValidateEKSACiliumInstalled inspects the workload cluster for an EKSA Cilium installation erroring if one is not found.

func (*ClusterE2ETest) ValidateEKSACiliumNotInstalled added in v0.16.0

func (e *ClusterE2ETest) ValidateEKSACiliumNotInstalled()

ValidateEKSACiliumNotInstalled inspects the workload cluster for an EKSA Cilium installation erroring if one is found.

func (*ClusterE2ETest) ValidateEndpointContent added in v0.14.0

func (e *ClusterE2ETest) ValidateEndpointContent(endpoint, namespace, expectedContent string, extraCurlArgs ...string)

ValidateEndpointContent validates the contents at the target endpoint.

func (*ClusterE2ETest) ValidateEtcdEncryption added in v0.18.0

func (e *ClusterE2ETest) ValidateEtcdEncryption()

ValidateEtcdEncryption validates that etcd encryption is properly configured by creating a secret and SSHing into the ETCD nodes and ensuring the secret is not stored in plaintext.

func (*ClusterE2ETest) ValidateFlux added in v0.6.1

func (e *ClusterE2ETest) ValidateFlux()

func (*ClusterE2ETest) ValidateHardwareDecommissioned added in v0.8.0

func (e *ClusterE2ETest) ValidateHardwareDecommissioned()

ValidateHardwareDecommissioned checks that the all hardware was powered off during the cluster deletion. This function tests that the hardware was powered off during the cluster deletion.

func (*ClusterE2ETest) ValidateKubeletConfig added in v0.20.0

func (e *ClusterE2ETest) ValidateKubeletConfig()

ValidateKubeletConfig validates the kubelet config specified in the cluster spec has been applied to the nodes.

func (*ClusterE2ETest) ValidateNTPConfig added in v0.15.0

func (e *ClusterE2ETest) ValidateNTPConfig(osFamily v1alpha1.OSFamily)

ValidateNTPConfig validates NTP servers are configured properly on all cluster nodes using SSH.

func (*ClusterE2ETest) ValidateOIDC added in v0.6.1

func (e *ClusterE2ETest) ValidateOIDC()

func (*ClusterE2ETest) ValidateVsphereMachine added in v0.18.0

func (e *ClusterE2ETest) ValidateVsphereMachine(selector string, machineConfig *v1alpha1.VSphereMachineConfig, validations ...VsphereMachineValidation)

ValidateVsphereMachine deduces the control plane or etcd configuration to machine mapping and for each configuration/machine pair executes the provided validation functions.

func (*ClusterE2ETest) ValidateWorkerNodeVsphereMachine added in v0.18.0

func (e *ClusterE2ETest) ValidateWorkerNodeVsphereMachine(validations ...VsphereMachineValidation)

ValidateWorkerNodeVsphereMachine deduces the worker node group configuration to machine mapping and for each configuration/machine pair executes the provided validation functions.

func (*ClusterE2ETest) ValidateWorkerNodes added in v0.7.1

func (e *ClusterE2ETest) ValidateWorkerNodes(workerNodeValidations ...WorkerNodeValidation)

ValidateWorkerNodes deduces the worker node group configuration to node mapping and for each configuration/node pair executes the provided validation functions.

func (*ClusterE2ETest) ValidatingNoPackageController added in v0.15.0

func (e *ClusterE2ETest) ValidatingNoPackageController()

ValidatingNoPackageController make sure there is no package controller.

func (*ClusterE2ETest) VerifyAdotPackageDaemonSetUpdated added in v0.13.0

func (e *ClusterE2ETest) VerifyAdotPackageDaemonSetUpdated(packageName, targetNamespace string)

VerifyAdotPackageDaemonSetUpdated is checking if daemonset config changes trigger resource reloads correctly.

func (*ClusterE2ETest) VerifyAdotPackageDeploymentUpdated added in v0.13.0

func (e *ClusterE2ETest) VerifyAdotPackageDeploymentUpdated(packageName, targetNamespace string)

VerifyAdotPackageDeploymentUpdated is checking if deployment config changes trigger resource reloads correctly.

func (*ClusterE2ETest) VerifyAdotPackageInstalled added in v0.13.0

func (e *ClusterE2ETest) VerifyAdotPackageInstalled(packageName, targetNamespace string)

VerifyAdotPackageInstalled is checking if the ADOT package gets installed correctly.

func (*ClusterE2ETest) VerifyAutoScalerPackageInstalled added in v0.14.0

func (e *ClusterE2ETest) VerifyAutoScalerPackageInstalled(packageName, targetNamespace string, mgmtCluster *types.Cluster)

VerifyAutoScalerPackageInstalled is verifying that the autoscaler package is installed and deployed.

func (*ClusterE2ETest) VerifyCertManagerPackageInstalled added in v0.15.0

func (e *ClusterE2ETest) VerifyCertManagerPackageInstalled(prefix, namespace, packageName string, mgmtCluster *types.Cluster)

VerifyCertManagerPackageInstalled is checking if the cert manager package gets installed correctly.

func (*ClusterE2ETest) VerifyEmissaryPackageInstalled added in v0.13.0

func (e *ClusterE2ETest) VerifyEmissaryPackageInstalled(packageName string, mgmtCluster *types.Cluster)

VerifyEmissaryPackageInstalled is checking if emissary package gets installed correctly.

func (*ClusterE2ETest) VerifyHarborPackageInstalled added in v0.11.0

func (e *ClusterE2ETest) VerifyHarborPackageInstalled(prefix, namespace string)

VerifyHarborPackageInstalled is checking if the harbor package gets installed correctly.

func (*ClusterE2ETest) VerifyHelloPackageInstalled added in v0.9.2

func (e *ClusterE2ETest) VerifyHelloPackageInstalled(packageName string, mgmtCluster *types.Cluster)

VerifyHelloPackageInstalled is checking if the hello eks anywhere package gets installed correctly.

func (*ClusterE2ETest) VerifyMetricServerPackageInstalled added in v0.14.0

func (e *ClusterE2ETest) VerifyMetricServerPackageInstalled(packageName, targetNamespace string, mgmtCluster *types.Cluster)

VerifyMetricServerPackageInstalled is verifying that metrics-server is installed and deployed.

func (*ClusterE2ETest) VerifyPackageControllerNotInstalled added in v0.13.0

func (e *ClusterE2ETest) VerifyPackageControllerNotInstalled()

VerifyPackageControllerNotInstalled is verifying that package controller is not installed.

func (*ClusterE2ETest) VerifyPrometheusNodeExporterStates added in v0.13.1

func (e *ClusterE2ETest) VerifyPrometheusNodeExporterStates(packageName, targetNamespace string)

VerifyPrometheusNodeExporterStates is checking if the Prometheus package node-exporter component is functioning properly.

func (*ClusterE2ETest) VerifyPrometheusPackageInstalled added in v0.13.1

func (e *ClusterE2ETest) VerifyPrometheusPackageInstalled(packageName, targetNamespace string)

VerifyPrometheusPackageInstalled is checking if the Prometheus package gets installed correctly.

func (*ClusterE2ETest) VerifyPrometheusPrometheusServerStates added in v0.13.1

func (e *ClusterE2ETest) VerifyPrometheusPrometheusServerStates(packageName, targetNamespace, mode string)

VerifyPrometheusPrometheusServerStates is checking if the Prometheus package prometheus-server component is functioning properly.

func (*ClusterE2ETest) VerifyWorkerNodesScaleUp added in v0.19.7

func (e *ClusterE2ETest) VerifyWorkerNodesScaleUp(mgmtCluster *types.Cluster)

VerifyWorkerNodesScaleUp verifies that the worker nodes are scaled up after a test workload is deployed on a cluster with Autoscaler installed.

func (*ClusterE2ETest) WaitForControlPlaneReady added in v0.7.0

func (e *ClusterE2ETest) WaitForControlPlaneReady()

func (*ClusterE2ETest) WaitForMachineDeploymentReady added in v0.12.0

func (e *ClusterE2ETest) WaitForMachineDeploymentReady(machineDeploymentName string)

func (*ClusterE2ETest) WithCluster added in v0.9.2

func (e *ClusterE2ETest) WithCluster(f func(e *ClusterE2ETest))

WithCluster helps with bringing up and tearing down E2E test clusters.

func (*ClusterE2ETest) WithClusterConfig added in v0.14.0

func (e *ClusterE2ETest) WithClusterConfig(fillers ...api.ClusterConfigFiller) *ClusterE2ETest

WithClusterConfig generates a base cluster config using the CLI `generate clusterconfig` command and updates them with the provided fillers. Helpful for defining the initial Cluster config before running a create operation.

func (*ClusterE2ETest) WithClusterRegistryMirror added in v0.20.0

func (e *ClusterE2ETest) WithClusterRegistryMirror(f func(e *ClusterE2ETest))

WithClusterRegistryMirror helps with bringing up and tearing down E2E test clusters when using registry mirror.

func (*ClusterE2ETest) WithPersistentCluster added in v0.12.0

func (e *ClusterE2ETest) WithPersistentCluster(f func(e *ClusterE2ETest))

Like WithCluster but does not delete the cluster. Useful for debugging.

type ClusterE2ETestOpt added in v0.6.1

type ClusterE2ETestOpt func(e *ClusterE2ETest)

func ExpectFailure added in v0.11.1

func ExpectFailure(expected bool) ClusterE2ETestOpt

func PersistentCluster added in v0.15.0

func PersistentCluster() ClusterE2ETestOpt

PersistentCluster avoids creating the clusters if it finds a kubeconfig in the corresponding cluster folder. Useful for local development of tests.

func WithAWSIam added in v0.6.1

func WithAWSIam() ClusterE2ETestOpt

func WithAuthenticatedRegistryMirror added in v0.15.0

func WithAuthenticatedRegistryMirror(providerName string) ClusterE2ETestOpt

WithAuthenticatedRegistryMirror sets up e2e for authenticated registry mirrors.

func WithAwsIamEnvVarCheck added in v0.16.0

func WithAwsIamEnvVarCheck() ClusterE2ETestOpt

WithAwsIamEnvVarCheck returns a ClusterE2ETestOpt that checks for the required env vars.

func WithClusterConfigLocationOverride

func WithClusterConfigLocationOverride(path string) ClusterE2ETestOpt

func WithClusterFiller

func WithClusterFiller(f ...api.ClusterFiller) ClusterE2ETestOpt

func WithClusterName added in v0.14.0

func WithClusterName(name string) ClusterE2ETestOpt

WithClusterName sets the name that will be used for the cluster. This will drive both the name of the eks-a cluster config objects as well as the cluster config file name.

func WithClusterSingleNode added in v0.13.0

func WithClusterSingleNode(v v1alpha1.KubernetesVersion) ClusterE2ETestOpt

WithClusterSingleNode helps to create an e2e test option for a single node cluster.

func WithClusterUpgrade

func WithClusterUpgrade(fillers ...api.ClusterFiller) ClusterE2ETestOpt

WithClusterUpgrade adds a cluster upgrade.

func WithClusterUpgradeGit added in v0.7.1

func WithClusterUpgradeGit(fillers ...api.ClusterFiller) ClusterE2ETestOpt

func WithControlPlaneHardware added in v0.9.2

func WithControlPlaneHardware(requiredCount int) ClusterE2ETestOpt

func WithCustomLabelHardware added in v0.9.2

func WithCustomLabelHardware(requiredCount int, label string) ClusterE2ETestOpt

func WithEksaVersion added in v0.6.1

func WithEksaVersion(version *semver.Version) ClusterE2ETestOpt

func WithEnvVar added in v0.8.0

func WithEnvVar(key, val string) ClusterE2ETestOpt

func WithEtcdEncrytion added in v0.18.0

func WithEtcdEncrytion() ClusterE2ETestOpt

WithEtcdEncrytion is a ClusterE2ETestOpt that adds etcd encryption config to the Cluster.

func WithExternalEtcdHardware added in v0.9.2

func WithExternalEtcdHardware(requiredCount int) ClusterE2ETestOpt

func WithFluxGit added in v0.9.0

func WithFluxGit(opts ...api.FluxConfigOpt) ClusterE2ETestOpt

func WithFluxGithub added in v0.9.0

func WithFluxGithub(opts ...api.FluxConfigOpt) ClusterE2ETestOpt

func WithFluxGithubCleanup added in v0.14.0

func WithFluxGithubCleanup() ClusterE2ETestOpt

WithFluxGithubCleanup returns a ClusterE2ETestOpt that registers the git repository cleanup operation.

func WithFluxGithubEnvVarCheck added in v0.14.0

func WithFluxGithubEnvVarCheck() ClusterE2ETestOpt

WithFluxGithubEnvVarCheck returns a ClusterE2ETestOpt that checks for the required env vars.

func WithHelmInstallConfig added in v0.9.0

func WithHelmInstallConfig(t *testing.T, chartName, chartURI, chartVersion string, chartValues []string) ClusterE2ETestOpt

func WithKubeletConfig added in v0.20.0

func WithKubeletConfig() ClusterE2ETestOpt

WithKubeletConfig returns the default kubelet config set for e2e test.

func WithLatestMinorReleaseFromMain added in v0.6.1

func WithLatestMinorReleaseFromMain() ClusterE2ETestOpt

func WithNoPowerActions added in v0.10.0

func WithNoPowerActions() ClusterE2ETestOpt

func WithOIDC

func WithOIDC() ClusterE2ETestOpt

func WithOIDCEnvVarCheck added in v0.16.0

func WithOIDCEnvVarCheck() ClusterE2ETestOpt

WithOIDCEnvVarCheck returns a ClusterE2ETestOpt that checks for the required env vars.

func WithOOBConfiguration added in v0.18.0

func WithOOBConfiguration() ClusterE2ETestOpt

WithOOBConfiguration sets up the required environment to run OOB e2e tests.

func WithPackageConfig added in v0.9.2

func WithPackageConfig(t *testing.T, bundleURI, chartName, chartURI,
	chartVersion string, chartValues []string, packageConfiguration *v1alpha1.PackageConfiguration,
) ClusterE2ETestOpt

func WithPodIamConfig added in v0.18.0

func WithPodIamConfig() ClusterE2ETestOpt

WithPodIamConfig is a ClusterE2ETestOpt that adds pod IAM config to the cluster.

func WithProxy added in v0.6.0

func WithProxy(requiredEnvVars ProxyRequiredEnvVars) ClusterE2ETestOpt

func WithRegistryMirrorEndpointAndCert added in v0.6.0

func WithRegistryMirrorEndpointAndCert(providerName string) ClusterE2ETestOpt

WithRegistryMirrorEndpointAndCert sets up e2e for registry mirrors.

func WithRegistryMirrorInsecureSkipVerify added in v0.15.0

func WithRegistryMirrorInsecureSkipVerify(providerName string) ClusterE2ETestOpt

WithRegistryMirrorInsecureSkipVerify sets up e2e for registry mirrors with InsecureSkipVerify option.

func WithRegistryMirrorOciNamespaces added in v0.20.0

func WithRegistryMirrorOciNamespaces(providerName string) ClusterE2ETestOpt

WithRegistryMirrorOciNamespaces sets up e2e for registry mirrors with ocinamespaces.

func WithSkipCiliumUpgrade added in v0.16.0

func WithSkipCiliumUpgrade() ClusterE2ETestOpt

WithSkipCiliumUpgrade returns an E2E test option that configures the Cluster object to skip Cilium upgrades.

func WithUpgradeClusterConfig added in v0.17.0

func WithUpgradeClusterConfig(fillers ...api.ClusterConfigFiller) ClusterE2ETestOpt

WithUpgradeClusterConfig adds a cluster upgrade. When we migrate usages of ClusterFiller to ClusterConfigFiller we can rename this to WithClusterUpgrade.

func WithWorkerHardware added in v0.9.2

func WithWorkerHardware(requiredCount int) ClusterE2ETestOpt

type CommandOpt added in v0.6.1

type CommandOpt func(*string, *[]string) (err error)

func ExecuteWithBinary added in v0.15.0

func ExecuteWithBinary(eksa PackagedBinary) CommandOpt

ExecuteWithBinary executes the command with a binary from an specific path.

func ExecuteWithEksaRelease added in v0.7.0

func ExecuteWithEksaRelease(release *releasev1alpha1.EksARelease) CommandOpt

func WithBundlesOverride added in v0.15.0

func WithBundlesOverride(bundles string) CommandOpt

WithBundlesOverride modify bundles-override.

func WithControlPlaneWaitTimeout added in v0.12.0

func WithControlPlaneWaitTimeout(timeout string) CommandOpt

func WithExternalEtcdWaitTimeout added in v0.12.0

func WithExternalEtcdWaitTimeout(timeout string) CommandOpt

func WithPerMachineWaitTimeout added in v0.12.0

func WithPerMachineWaitTimeout(timeout string) CommandOpt

func WithSudo added in v0.15.0

func WithSudo(user string) CommandOpt

WithSudo add prefix "sudo" to the command. And preserve PATH.

type ControlPlaneNodeValidation added in v0.7.1

type ControlPlaneNodeValidation func(configuration v1alpha1.ControlPlaneConfiguration, node corev1.Node) (err error)

ControlPlaneNodeValidation should return an error if either an error is encountered during execution or the validation logically fails. This validation function will be executed by ValidateControlPlaneNodes with a Control Plane configuration and a corresponding node which was created as a part of that configuration.

type Docker

type Docker struct {
	executables.Docker
	// contains filtered or unexported fields
}

Docker is a Provider for running end-to-end tests.

func NewDocker

func NewDocker(t *testing.T) *Docker

NewDocker creates a new Docker object implementing the Provider interface for testing.

func (*Docker) CleanupResources added in v0.20.0

func (d *Docker) CleanupResources(_ string) error

CleanupResources implements the Provider interface.

func (*Docker) ClusterConfigUpdates added in v0.14.0

func (d *Docker) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*Docker) ClusterStateValidations added in v0.15.0

func (d *Docker) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific validations.

func (*Docker) Name

func (d *Docker) Name() string

Name implements the Provider interface.

func (*Docker) Setup

func (d *Docker) Setup()

Setup implements the Provider interface.

func (*Docker) UpdateKubeConfig added in v0.14.0

func (d *Docker) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig by replacing the server value with correct host and the docker LB port. This is required for the docker provider.

func (*Docker) WithKubeVersionAndOS added in v0.17.0

func (d *Docker) WithKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, _ OS, _ *releasev1.EksARelease, _ ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version.

func (*Docker) WithNewWorkerNodeGroup added in v0.17.0

func (d *Docker) WithNewWorkerNodeGroup(machineConfig string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration and a corresponding DockerMachineConfig to the cluster config.

func (*Docker) WithProviderUpgradeGit added in v0.8.0

func (d *Docker) WithProviderUpgradeGit() ClusterE2ETestOpt

type EKSAReleasePackagedBinary added in v0.15.0

type EKSAReleasePackagedBinary struct {
	*releasev1alpha1.EksARelease
}

EKSAReleasePackagedBinary decorates an EKSA release with extra functionality.

func NewEKSAReleasePackagedBinary added in v0.15.0

func NewEKSAReleasePackagedBinary(release *releasev1alpha1.EksARelease) *EKSAReleasePackagedBinary

NewEKSAReleasePackagedBinary builds a new EKSAReleasePackagedBinary.

func (*EKSAReleasePackagedBinary) BinaryPath added in v0.15.0

func (b *EKSAReleasePackagedBinary) BinaryPath() (string, error)

BinaryPath implements EKSAPackagedBinary.

func (*EKSAReleasePackagedBinary) Version added in v0.15.0

func (b *EKSAReleasePackagedBinary) Version() string

Version returns the eks-a release version.

type HelmInstallConfig added in v0.9.0

type HelmInstallConfig struct {
	HelmClient helm.Client
	// contains filtered or unexported fields
}

type LoggingOnlyT added in v0.14.0

type LoggingOnlyT struct{}

LoggingOnlyT implements select logging and error handling functionality of T.

Most non-logging, non-error reporting methods will simply panic.

func NewLoggingOnlyT added in v0.14.0

func NewLoggingOnlyT() *LoggingOnlyT

NewLoggingOnlyT creates a LoggingOnlyT, which does what its name implies.

func (LoggingOnlyT) Cleanup added in v0.14.0

func (t LoggingOnlyT) Cleanup(_ func())

Cleanup implements T.

func (LoggingOnlyT) Error added in v0.14.0

func (t LoggingOnlyT) Error(_ ...any)

Error implements T.

func (LoggingOnlyT) Errorf added in v0.14.0

func (t LoggingOnlyT) Errorf(_ string, _ ...any)

Errorf implements T.

func (LoggingOnlyT) Fail added in v0.14.0

func (t LoggingOnlyT) Fail()

Fail implements T.

func (LoggingOnlyT) FailNow added in v0.14.0

func (t LoggingOnlyT) FailNow()

FailNow implements T.

func (LoggingOnlyT) Failed added in v0.14.0

func (t LoggingOnlyT) Failed() bool

Failed implements T.

func (LoggingOnlyT) Fatal added in v0.14.0

func (t LoggingOnlyT) Fatal(_ ...any)

Fatal implements T.

func (LoggingOnlyT) Fatalf added in v0.14.0

func (t LoggingOnlyT) Fatalf(format string, args ...any)

Fatalf implements T.

func (LoggingOnlyT) Helper added in v0.14.0

func (t LoggingOnlyT) Helper()

Helper implements T.

func (LoggingOnlyT) Log added in v0.14.0

func (t LoggingOnlyT) Log(args ...any)

Log implements T.

func (LoggingOnlyT) Logf added in v0.14.0

func (t LoggingOnlyT) Logf(format string, args ...any)

Logf implements T.

func (LoggingOnlyT) Name added in v0.14.0

func (t LoggingOnlyT) Name() string

Name implements T.

func (LoggingOnlyT) Parallel added in v0.14.0

func (t LoggingOnlyT) Parallel()

Parallel implements T.

func (LoggingOnlyT) Run added in v0.14.0

func (t LoggingOnlyT) Run(_ string, _ func(*testing.T)) bool

Run implements T.

func (LoggingOnlyT) Setenv added in v0.14.0

func (t LoggingOnlyT) Setenv(_ string, _ string)

Setenv implements T.

func (LoggingOnlyT) Skip added in v0.14.0

func (t LoggingOnlyT) Skip(_ ...any)

Skip implements T.

func (LoggingOnlyT) SkipNow added in v0.14.0

func (t LoggingOnlyT) SkipNow()

SkipNow implements T.

func (LoggingOnlyT) Skipf added in v0.14.0

func (t LoggingOnlyT) Skipf(_ string, _ ...any)

Skipf implements T.

func (LoggingOnlyT) Skipped added in v0.14.0

func (t LoggingOnlyT) Skipped() bool

Skipped implements T.

func (LoggingOnlyT) TempDir added in v0.14.0

func (t LoggingOnlyT) TempDir() string

TempDir implements T.

type MulticlusterE2ETest added in v0.6.1

type MulticlusterE2ETest struct {
	T                 *testing.T
	ManagementCluster *ClusterE2ETest
	WorkloadClusters  WorkloadClusters
	// MaxConcurrentWorkers defines the max number of workers for concurrent operations.
	// If it's -1, it will use one worker per job.
	MaxConcurrentWorkers int
	// contains filtered or unexported fields
}

func NewMulticlusterE2ETest added in v0.6.1

func NewMulticlusterE2ETest(t *testing.T, managementCluster *ClusterE2ETest, workloadClusters ...*ClusterE2ETest) *MulticlusterE2ETest

func (*MulticlusterE2ETest) CreateManagementCluster added in v0.6.1

func (m *MulticlusterE2ETest) CreateManagementCluster(opts ...CommandOpt)

func (*MulticlusterE2ETest) CreateManagementClusterForVersion added in v0.12.0

func (m *MulticlusterE2ETest) CreateManagementClusterForVersion(eksaVersion string, opts ...CommandOpt)

func (*MulticlusterE2ETest) CreateManagementClusterWithConfig added in v0.14.0

func (m *MulticlusterE2ETest) CreateManagementClusterWithConfig(opts ...CommandOpt)

CreateManagementClusterWithConfig first generates a cluster config based on the management cluster test's previous configuration and proceeds to create a management cluster with the CLI.

func (*MulticlusterE2ETest) CreateTinkerbellManagementCluster added in v0.13.0

func (m *MulticlusterE2ETest) CreateTinkerbellManagementCluster(opts ...CommandOpt)

CreateTinkerbellManagementCluster runs tinkerbell related steps for cluster creation.

func (*MulticlusterE2ETest) DeleteManagementCluster added in v0.6.1

func (m *MulticlusterE2ETest) DeleteManagementCluster()

func (*MulticlusterE2ETest) DeleteTinkerbellManagementCluster added in v0.13.0

func (m *MulticlusterE2ETest) DeleteTinkerbellManagementCluster()

DeleteTinkerbellManagementCluster runs tinkerbell related steps for cluster deletion.

func (*MulticlusterE2ETest) DeleteWorkloadClusterFromGit added in v0.14.0

func (m *MulticlusterE2ETest) DeleteWorkloadClusterFromGit(w *WorkloadCluster)

DeleteWorkloadClusterFromGit deletes a workload cluster config file and pushes the changes to git.

func (*MulticlusterE2ETest) NewWorkloadClusterName added in v0.14.0

func (m *MulticlusterE2ETest) NewWorkloadClusterName() string

NewWorkloadClusterName returns a new unique name for a workload cluster based on the management cluster name. This is not thread safe.

func (*MulticlusterE2ETest) PushWorkloadClusterToGit added in v0.14.0

func (m *MulticlusterE2ETest) PushWorkloadClusterToGit(w *WorkloadCluster, opts ...api.ClusterConfigFiller)

PushWorkloadClusterToGit builds the workload cluster config file for git and pushing changes to git.

func (*MulticlusterE2ETest) RunConcurrently added in v0.14.0

func (m *MulticlusterE2ETest) RunConcurrently(flows ...func())

RunConcurrently runs the given jobs concurrently using no more than MaxConcurrentWorkers workers. If MaxConcurrentWorkers is -1, it will use one worker per job.

func (*MulticlusterE2ETest) RunConcurrentlyInWorkloadClusters added in v0.14.0

func (m *MulticlusterE2ETest) RunConcurrentlyInWorkloadClusters(flow func(*WorkloadCluster))

RunConcurrentlyInWorkloadClusters executes the given flow concurrently for all workload clusters. It respects MaxConcurrentWorkers.

func (*MulticlusterE2ETest) RunInWorkloadClusters added in v0.6.1

func (m *MulticlusterE2ETest) RunInWorkloadClusters(flow func(*WorkloadCluster))

func (*MulticlusterE2ETest) WithWorkloadClusters added in v0.14.0

func (m *MulticlusterE2ETest) WithWorkloadClusters(workloadClusters ...*ClusterE2ETest)

WithWorkloadClusters adds ClusterE2ETest's as workload clusters to the test.

type Nutanix added in v0.12.0

type Nutanix struct {
	// contains filtered or unexported fields
}

func NewNutanix added in v0.12.0

func NewNutanix(t *testing.T, opts ...NutanixOpt) *Nutanix

func (*Nutanix) CleanupResources added in v0.20.0

func (n *Nutanix) CleanupResources(clustername string) error

CleanupResources satisfies the test framework Provider.

func (*Nutanix) ClusterConfigUpdates added in v0.14.0

func (n *Nutanix) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*Nutanix) ClusterStateValidations added in v0.15.0

func (n *Nutanix) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific ClusterStateValidations.

func (*Nutanix) Name added in v0.12.0

func (n *Nutanix) Name() string

Name returns the provider name. It satisfies the test framework Provider.

func (*Nutanix) RedHat126Template added in v0.18.0

func (n *Nutanix) RedHat126Template() api.NutanixFiller

RedHat126Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat127Template added in v0.18.0

func (n *Nutanix) RedHat127Template() api.NutanixFiller

RedHat127Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat128Template added in v0.18.0

func (n *Nutanix) RedHat128Template() api.NutanixFiller

RedHat128Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat129Template added in v0.19.0

func (n *Nutanix) RedHat129Template() api.NutanixFiller

RedHat129Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat130Template added in v0.20.0

func (n *Nutanix) RedHat130Template() api.NutanixFiller

RedHat130Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat9Kubernetes126Template added in v0.18.0

func (n *Nutanix) RedHat9Kubernetes126Template() api.NutanixFiller

RedHat9Kubernetes126Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat9Kubernetes127Template added in v0.18.0

func (n *Nutanix) RedHat9Kubernetes127Template() api.NutanixFiller

RedHat9Kubernetes127Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat9Kubernetes128Template added in v0.18.0

func (n *Nutanix) RedHat9Kubernetes128Template() api.NutanixFiller

RedHat9Kubernetes128Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat9Kubernetes129Template added in v0.19.0

func (n *Nutanix) RedHat9Kubernetes129Template() api.NutanixFiller

RedHat9Kubernetes129Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) RedHat9Kubernetes130Template added in v0.20.0

func (n *Nutanix) RedHat9Kubernetes130Template() api.NutanixFiller

RedHat9Kubernetes130Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) Setup added in v0.12.0

func (n *Nutanix) Setup()

Setup does nothing. It satisfies the test framework Provider.

func (*Nutanix) Ubuntu126Template added in v0.17.0

func (n *Nutanix) Ubuntu126Template() api.NutanixFiller

Ubuntu126Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) Ubuntu127Template added in v0.17.0

func (n *Nutanix) Ubuntu127Template() api.NutanixFiller

Ubuntu127Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) Ubuntu128Template added in v0.18.0

func (n *Nutanix) Ubuntu128Template() api.NutanixFiller

Ubuntu128Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) Ubuntu129Template added in v0.19.0

func (n *Nutanix) Ubuntu129Template() api.NutanixFiller

Ubuntu129Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) Ubuntu130Template added in v0.20.0

func (n *Nutanix) Ubuntu130Template() api.NutanixFiller

Ubuntu130Template returns NutanixFiller by reading the env var and setting machine config's image name parameter in the spec.

func (*Nutanix) UpdateKubeConfig added in v0.14.0

func (n *Nutanix) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig for the provider.

func (*Nutanix) WithKubeVersionAndOS added in v0.17.0

func (n *Nutanix) WithKubeVersionAndOS(_ anywherev1.KubernetesVersion, _ OS, _ *releasev1.EksARelease, _ ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right template for all nutanix machine configs.

func (*Nutanix) WithNewWorkerNodeGroup added in v0.17.0

func (n *Nutanix) WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration and a corresponding NutanixMachineConfig to the cluster config.

func (*Nutanix) WithProviderUpgrade added in v0.12.0

func (n *Nutanix) WithProviderUpgrade(fillers ...api.NutanixFiller) ClusterE2ETestOpt

WithProviderUpgrade returns a ClusterE2EOpt that updates the cluster config for provider-specific upgrade.

type NutanixOpt added in v0.12.0

type NutanixOpt func(*Nutanix)

func WithNutanixSubnetUUID added in v0.15.0

func WithNutanixSubnetUUID() NutanixOpt

WithNutanixSubnetUUID returns a NutanixOpt that adds API fillers to use a Subnet UUID.

func WithPrismElementClusterUUID added in v0.13.0

func WithPrismElementClusterUUID() NutanixOpt

WithPrismElementClusterUUID returns a NutanixOpt that adds API fillers to use a PE Cluster UUID.

func WithRedHat126Nutanix added in v0.18.0

func WithRedHat126Nutanix() NutanixOpt

WithRedHat126Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template for k8s 1.26 and the "redhat" osFamily in all machine configs.

func WithRedHat126NutanixUUID added in v0.18.0

func WithRedHat126NutanixUUID() NutanixOpt

WithRedHat126NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat Nutanix template UUID for k8s 1.26 and the "redhat" osFamily in all machine configs.

func WithRedHat127Nutanix added in v0.18.0

func WithRedHat127Nutanix() NutanixOpt

WithRedHat127Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template for k8s 1.27 and the "redhat" osFamily in all machine configs.

func WithRedHat127NutanixUUID added in v0.18.0

func WithRedHat127NutanixUUID() NutanixOpt

WithRedHat127NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat Nutanix template UUID for k8s 1.27 and the "redhat" osFamily in all machine configs.

func WithRedHat128Nutanix added in v0.18.0

func WithRedHat128Nutanix() NutanixOpt

WithRedHat128Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template for k8s 1.28 and the "redhat" osFamily in all machine configs.

func WithRedHat128NutanixUUID added in v0.18.0

func WithRedHat128NutanixUUID() NutanixOpt

WithRedHat128NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat Nutanix template UUID for k8s 1.28 and the "redhat" osFamily in all machine configs.

func WithRedHat129Nutanix added in v0.19.0

func WithRedHat129Nutanix() NutanixOpt

WithRedHat129Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template for k8s 1.29 and the "redhat" osFamily in all machine configs.

func WithRedHat129NutanixUUID added in v0.19.0

func WithRedHat129NutanixUUID() NutanixOpt

WithRedHat129NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template UUID for k8s 1.29 and the "redhat" osFamily in all machine configs.

func WithRedHat130Nutanix added in v0.20.0

func WithRedHat130Nutanix() NutanixOpt

WithRedHat130Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 8 Nutanix template for k8s 1.30 and the "redhat" osFamily in all machine configs.

func WithRedHat130NutanixUUID added in v0.20.0

func WithRedHat130NutanixUUID() NutanixOpt

WithRedHat130NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat Nutanix template UUID for k8s 1.30 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes126Nutanix added in v0.18.0

func WithRedHat9Kubernetes126Nutanix() NutanixOpt

WithRedHat9Kubernetes126Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template for k8s 1.26 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes126NutanixUUID added in v0.18.0

func WithRedHat9Kubernetes126NutanixUUID() NutanixOpt

WithRedHat9Kubernetes126NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template UUID for k8s 1.26 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes127Nutanix added in v0.18.0

func WithRedHat9Kubernetes127Nutanix() NutanixOpt

WithRedHat9Kubernetes127Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template for k8s 1.27 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes127NutanixUUID added in v0.18.0

func WithRedHat9Kubernetes127NutanixUUID() NutanixOpt

WithRedHat9Kubernetes127NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template UUID for k8s 1.27 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes128Nutanix added in v0.18.0

func WithRedHat9Kubernetes128Nutanix() NutanixOpt

WithRedHat9Kubernetes128Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template for k8s 1.28 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes128NutanixUUID added in v0.18.0

func WithRedHat9Kubernetes128NutanixUUID() NutanixOpt

WithRedHat9Kubernetes128NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template UUID for k8s 1.28 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes129Nutanix added in v0.19.0

func WithRedHat9Kubernetes129Nutanix() NutanixOpt

WithRedHat9Kubernetes129Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template for k8s 1.29 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes129NutanixUUID added in v0.19.0

func WithRedHat9Kubernetes129NutanixUUID() NutanixOpt

WithRedHat9Kubernetes129NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template UUID for k8s 1.28 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes130Nutanix added in v0.20.0

func WithRedHat9Kubernetes130Nutanix() NutanixOpt

WithRedHat9Kubernetes130Nutanix returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template for k8s 1.30 and the "redhat" osFamily in all machine configs.

func WithRedHat9Kubernetes130NutanixUUID added in v0.20.0

func WithRedHat9Kubernetes130NutanixUUID() NutanixOpt

WithRedHat9Kubernetes130NutanixUUID returns a NutanixOpt that adds API fillers to use a RedHat 9 Nutanix template UUID for k8s 1.30 and the "redhat" osFamily in all machine configs.

func WithUbuntu126Nutanix added in v0.15.0

func WithUbuntu126Nutanix() NutanixOpt

WithUbuntu126Nutanix returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template for k8s 1.26 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu126NutanixUUID added in v0.15.0

func WithUbuntu126NutanixUUID() NutanixOpt

WithUbuntu126NutanixUUID returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template UUID for k8s 1.26 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu127Nutanix added in v0.16.0

func WithUbuntu127Nutanix() NutanixOpt

WithUbuntu127Nutanix returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template for k8s 1.27 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu127NutanixUUID added in v0.16.0

func WithUbuntu127NutanixUUID() NutanixOpt

WithUbuntu127NutanixUUID returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template UUID for k8s 1.27 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu128Nutanix added in v0.18.0

func WithUbuntu128Nutanix() NutanixOpt

WithUbuntu128Nutanix returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template for k8s 1.28 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu128NutanixUUID added in v0.18.0

func WithUbuntu128NutanixUUID() NutanixOpt

WithUbuntu128NutanixUUID returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template UUID for k8s 1.28 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu129Nutanix added in v0.19.0

func WithUbuntu129Nutanix() NutanixOpt

WithUbuntu129Nutanix returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template for k8s 1.29 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu129NutanixUUID added in v0.19.0

func WithUbuntu129NutanixUUID() NutanixOpt

WithUbuntu129NutanixUUID returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template UUID for k8s 1.29 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu130Nutanix added in v0.20.0

func WithUbuntu130Nutanix() NutanixOpt

WithUbuntu130Nutanix returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template for k8s 1.30 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu130NutanixUUID added in v0.20.0

func WithUbuntu130NutanixUUID() NutanixOpt

WithUbuntu130NutanixUUID returns a NutanixOpt that adds API fillers to use a Ubuntu Nutanix template UUID for k8s 1.30 and the "ubuntu" osFamily in all machine configs.

type OS added in v0.17.0

type OS string

OS refers to the Operating System to be used for Machine configs.

const (
	// DockerOS corresponds to a dummy Docker OS that will be ignored when creating the cluster config.
	DockerOS OS = "docker"
	// Ubuntu2204 corresponds to Ubuntu 22.04 OS.
	Ubuntu2204 OS = "ubuntu-2204"
	// Ubuntu2004 corresponds to Ubuntu 20.04 OS. We don't add the version number in the string to facilitate backwards compatibility.
	Ubuntu2004 OS = "ubuntu"
	// Bottlerocket1 corresponds to Bottlerocket OS. We don't add the version number in the string to facilitate backwards compatibility.
	Bottlerocket1 OS = "bottlerocket"
	// RedHat9 corresponds to Red Hat 9 OS.
	RedHat9 OS = "redhat-9"
	// RedHat8 corresponds to Red Hat 8 OS. We don't add the version number in the string to facilitate backwards compatibility.
	RedHat8 OS = "redhat"
)

type PackageConfig added in v0.9.2

type PackageConfig struct {
	*HelmInstallConfig
	// contains filtered or unexported fields
}

type PackagedBinary added in v0.15.0

type PackagedBinary interface {
	// BinaryPath returns the local disk path to the binary.
	BinaryPath() (string, error)
}

PackagedBinary represents a binary that can be extracted executed from local disk.

type Provider

type Provider interface {
	Name() string
	// ClusterConfigUpdates allows a provider to modify the default cluster config
	// after this one is generated for the first time. This is not reapplied on every CLI operation.
	// Prefer to call UpdateClusterConfig directly from the tests to make it more explicit.
	ClusterConfigUpdates() []api.ClusterConfigFiller
	Setup()
	CleanupResources(clusterName string) error
	UpdateKubeConfig(content *[]byte, clusterName string) error
	ClusterStateValidations() []clusterf.StateValidation
	WithKubeVersionAndOS(kubeVersion v1alpha1.KubernetesVersion, os OS, release *releasev1.EksARelease, rtos ...bool) api.ClusterConfigFiller
	WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller
}

type ProxyRequiredEnvVars added in v0.11.0

type ProxyRequiredEnvVars struct {
	HttpProxy  string
	HttpsProxy string
	NoProxy    string
}

type Snow added in v0.9.0

type Snow struct {
	// contains filtered or unexported fields
}

func NewSnow added in v0.9.0

func NewSnow(t *testing.T, opts ...SnowOpt) *Snow

func (*Snow) CleanupResources added in v0.20.0

func (s *Snow) CleanupResources(clusterName string) error

CleanupResources satisfies the test framework Provider.

func (*Snow) ClusterConfigUpdates added in v0.14.0

func (s *Snow) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*Snow) ClusterStateValidations added in v0.15.0

func (s *Snow) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific validations.

func (*Snow) Name added in v0.9.0

func (s *Snow) Name() string

func (*Snow) Setup added in v0.9.0

func (s *Snow) Setup()

func (*Snow) UpdateKubeConfig added in v0.14.0

func (s *Snow) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig for the provider.

func (*Snow) WithBottlerocket126 added in v0.16.0

func (s *Snow) WithBottlerocket126() api.ClusterConfigFiller

WithBottlerocket126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right devices and osFamily for all SnowMachineConfigs. It also sets any necessary machine config default required for BR, like the container volume size. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithBottlerocket127 added in v0.16.0

func (s *Snow) WithBottlerocket127() api.ClusterConfigFiller

WithBottlerocket127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right devices and osFamily for all SnowMachineConfigs. It also sets any necessary machine config default required for BR, like the container volume size. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithBottlerocket128 added in v0.18.0

func (s *Snow) WithBottlerocket128() api.ClusterConfigFiller

WithBottlerocket128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right devices and osFamily for all SnowMachineConfigs. It also sets any necessary machine config default required for BR, like the container volume size. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithBottlerocketStaticIP126 added in v0.16.0

func (s *Snow) WithBottlerocketStaticIP126() api.ClusterConfigFiller

WithBottlerocketStaticIP126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right devices, osFamily and static ip config for all SnowMachineConfigs. Comparing to WithBottlerocket126, this method also adds a snow ip pool to support static ip configuration.

func (*Snow) WithBottlerocketStaticIP127 added in v0.16.0

func (s *Snow) WithBottlerocketStaticIP127() api.ClusterConfigFiller

WithBottlerocketStaticIP127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right devices, osFamily and static ip config for all SnowMachineConfigs. Comparing to WithBottlerocket127, this method also adds a snow ip pool to support static ip configuration.

func (*Snow) WithBottlerocketStaticIP128 added in v0.18.0

func (s *Snow) WithBottlerocketStaticIP128() api.ClusterConfigFiller

WithBottlerocketStaticIP128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right devices, osFamily and static ip config for all SnowMachineConfigs. Comparing to WithBottlerocket128, this method also adds a snow ip pool to support static ip configuration.

func (*Snow) WithKubeVersionAndOS added in v0.17.0

func (s *Snow) WithKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, _ *releasev1.EksARelease, _ ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the correct AMI ID and devices for the Snow machine configs.

func (*Snow) WithNewSnowWorkerNodeGroup added in v0.11.0

func (s *Snow) WithNewSnowWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.SnowMachineConfigFiller) ClusterE2ETestOpt

WithNewSnowWorkerNodeGroup updates the test cluster Config with the fillers for an specific snow worker node group. It applies the fillers in WorkerNodeGroup to the named worker node group and the ones for the corresponding SnowMachineConfig.

func (*Snow) WithNewWorkerNodeGroup added in v0.17.0

func (s *Snow) WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns a filler that updates/creates the provided worker node group with its corresponding SnowMachineConfig.

func (*Snow) WithProviderUpgrade added in v0.11.0

func (s *Snow) WithProviderUpgrade(fillers ...api.SnowFiller) ClusterE2ETestOpt

func (*Snow) WithUbuntu126 added in v0.16.0

func (s *Snow) WithUbuntu126() api.ClusterConfigFiller

WithUbuntu126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithUbuntu127 added in v0.16.0

func (s *Snow) WithUbuntu127() api.ClusterConfigFiller

WithUbuntu127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithUbuntu128 added in v0.18.0

func (s *Snow) WithUbuntu128() api.ClusterConfigFiller

WithUbuntu128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func (*Snow) WithWorkerNodeGroup added in v0.15.0

func (s *Snow) WithWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.SnowMachineConfigFiller) api.ClusterConfigFiller

WithWorkerNodeGroup returns a filler that updates/creates the provided worker node group with its corresponding SnowMachineConfig and applies the given changes to that machine config.

type SnowOpt added in v0.9.0

type SnowOpt func(*Snow)

func WithSnowUbuntu126 added in v0.16.0

func WithSnowUbuntu126() SnowOpt

WithSnowUbuntu126 returns SnowOpt that sets the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func WithSnowUbuntu127 added in v0.16.0

func WithSnowUbuntu127() SnowOpt

WithSnowUbuntu127 returns SnowOpt that sets the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func WithSnowUbuntu128 added in v0.18.0

func WithSnowUbuntu128() SnowOpt

WithSnowUbuntu128 returns SnowOpt that sets the right devices and osFamily for all SnowMachineConfigs. If the env var is set, this will also set the AMI ID. Otherwise, it will leave it empty and let CAPAS select one.

func WithSnowWorkerNodeGroup added in v0.11.0

func WithSnowWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.SnowMachineConfigFiller) SnowOpt

WithSnowWorkerNodeGroup stores the necessary fillers to update/create the provided worker node group with its corresponding SnowMachineConfig and apply the given changes to that machine config.

type T added in v0.14.0

type T interface {
	Cleanup(func())
	Error(...any)
	Errorf(string, ...any)
	Fail()
	FailNow()
	Failed() bool
	Fatal(...any)
	Fatalf(string, ...any)
	Helper()
	Log(args ...any)
	Logf(format string, args ...any)
	Name() string
	Parallel()
	Run(string, func(*testing.T)) bool
	Setenv(string, string)
	Skip(...any)
	SkipNow()
	Skipf(string, ...any)
	Skipped() bool
	TempDir() string
}

T defines test support functionality, ala the Go stdlib testing.T.

Being able to change its implementation supports logging functionality for test support methods that are executed outside of a test, such as when bringing up or tearing down test clusters that will be used and re-used throughout multiple tests.

Only those methods currently in use are defined. Add more methods from stdlib testing.T as necessary.

type Tinkerbell added in v0.8.0

type Tinkerbell struct {
	// contains filtered or unexported fields
}

func NewTinkerbell added in v0.8.0

func NewTinkerbell(t *testing.T, opts ...TinkerbellOpt) *Tinkerbell

func (*Tinkerbell) CleanupResources added in v0.20.0

func (t *Tinkerbell) CleanupResources(_ string) error

CleanupResources runs a clean up the Tinkerbell machines which simply powers them down.

func (*Tinkerbell) ClusterConfigUpdates added in v0.14.0

func (t *Tinkerbell) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*Tinkerbell) ClusterStateValidations added in v0.15.0

func (t *Tinkerbell) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific validations.

func (*Tinkerbell) Name added in v0.8.0

func (t *Tinkerbell) Name() string

func (*Tinkerbell) Setup added in v0.8.0

func (t *Tinkerbell) Setup()

func (*Tinkerbell) UpdateKubeConfig added in v0.14.0

func (t *Tinkerbell) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig for the provider.

func (*Tinkerbell) WithCPKubeVersionAndOS added in v0.18.0

func (t *Tinkerbell) WithCPKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS) api.ClusterConfigFiller

WithCPKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right image for CP tinkerbell machine configs.

func (*Tinkerbell) WithKubeVersionAndOS added in v0.17.0

func (t *Tinkerbell) WithKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, _ *releasev1.EksARelease, rtos ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right image for all tinkerbell machine configs.

func (*Tinkerbell) WithNewWorkerNodeGroup added in v0.17.0

func (t *Tinkerbell) WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration and a corresponding TinkerbellMachineConfig to the cluster config.

func (*Tinkerbell) WithProviderUpgrade added in v0.12.0

func (t *Tinkerbell) WithProviderUpgrade(fillers ...api.TinkerbellFiller) ClusterE2ETestOpt

func (*Tinkerbell) WithWorkerKubeVersionAndOS added in v0.18.0

func (t *Tinkerbell) WithWorkerKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS) api.ClusterConfigFiller

WithWorkerKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right image for all Worker tinkerbell machine configs.

type TinkerbellOpt added in v0.8.0

type TinkerbellOpt func(*Tinkerbell)

func WithBottleRocketTinkerbell added in v0.9.2

func WithBottleRocketTinkerbell() TinkerbellOpt

func WithCustomTinkerbellMachineConfig added in v0.9.2

func WithCustomTinkerbellMachineConfig(selector string) TinkerbellOpt

func WithHookImagesURLPath added in v0.15.0

func WithHookImagesURLPath(url string) TinkerbellOpt

WithHookImagesURLPath Modify Hook OS Image url.

func WithOSImageURL added in v0.15.0

func WithOSImageURL(url string) TinkerbellOpt

WithOSImageURL Modify OS Image url.

func WithRedHat126Tinkerbell added in v0.16.0

func WithRedHat126Tinkerbell() TinkerbellOpt

WithRedHat126Tinkerbell tink test with redhat 1.26.

func WithRedHat127Tinkerbell added in v0.16.0

func WithRedHat127Tinkerbell() TinkerbellOpt

WithRedHat127Tinkerbell tink test with redhat 1.27.

func WithRedHat128Tinkerbell added in v0.18.0

func WithRedHat128Tinkerbell() TinkerbellOpt

WithRedHat128Tinkerbell tink test with redhat 1.28.

func WithRedHat129Tinkerbell added in v0.19.0

func WithRedHat129Tinkerbell() TinkerbellOpt

WithRedHat129Tinkerbell tink test with redhat 1.29.

func WithRedHat130Tinkerbell added in v0.20.0

func WithRedHat130Tinkerbell() TinkerbellOpt

WithRedHat130Tinkerbell tink test with redhat 1.30.

func WithTinkerbellExternalEtcdTopology added in v0.8.0

func WithTinkerbellExternalEtcdTopology(count int) TinkerbellOpt

func WithUbuntu126Tinkerbell added in v0.15.0

func WithUbuntu126Tinkerbell() TinkerbellOpt

WithUbuntu126Tinkerbell tink test with ubuntu 1.26.

func WithUbuntu127Tinkerbell added in v0.16.0

func WithUbuntu127Tinkerbell() TinkerbellOpt

WithUbuntu127Tinkerbell tink test with ubuntu 1.27.

func WithUbuntu128Tinkerbell added in v0.18.0

func WithUbuntu128Tinkerbell() TinkerbellOpt

WithUbuntu128Tinkerbell tink test with ubuntu 1.28.

func WithUbuntu129Tinkerbell added in v0.19.0

func WithUbuntu129Tinkerbell() TinkerbellOpt

WithUbuntu129Tinkerbell tink test with ubuntu 1.29.

func WithUbuntu130Tinkerbell added in v0.20.0

func WithUbuntu130Tinkerbell() TinkerbellOpt

WithUbuntu130Tinkerbell tink test with ubuntu 1.30.

type VSphere

type VSphere struct {
	GovcClient *executables.Govc
	// contains filtered or unexported fields
}

func NewVSphere

func NewVSphere(t *testing.T, opts ...VSphereOpt) *VSphere

func (*VSphere) Bottlerocket126Template added in v0.15.0

func (v *VSphere) Bottlerocket126Template() api.VSphereFiller

Bottlerocket126Template returns vsphere filler for 1.26 BR.

func (*VSphere) Bottlerocket127Template added in v0.16.0

func (v *VSphere) Bottlerocket127Template() api.VSphereFiller

Bottlerocket127Template returns vsphere filler for 1.27 BR.

func (*VSphere) Bottlerocket128Template added in v0.18.0

func (v *VSphere) Bottlerocket128Template() api.VSphereFiller

Bottlerocket128Template returns vsphere filler for 1.28 BR.

func (*VSphere) Bottlerocket129Template added in v0.19.0

func (v *VSphere) Bottlerocket129Template() api.VSphereFiller

Bottlerocket129Template returns vsphere filler for 1.29 BR.

func (*VSphere) Bottlerocket130Template added in v0.20.0

func (v *VSphere) Bottlerocket130Template() api.VSphereFiller

Bottlerocket130Template returns vsphere filler for 1.30 BR.

func (*VSphere) CleanupResources added in v0.20.0

func (v *VSphere) CleanupResources(clusterName string) error

CleanupResources deletes all the VMs owned by the test EKS-A cluster. It satisfies the test framework Provider.

func (*VSphere) ClusterConfigUpdates added in v0.14.0

func (v *VSphere) ClusterConfigUpdates() []api.ClusterConfigFiller

ClusterConfigUpdates satisfies the test framework Provider.

func (*VSphere) ClusterStateValidations added in v0.15.0

func (v *VSphere) ClusterStateValidations() []clusterf.StateValidation

ClusterStateValidations returns a list of provider specific validations.

func (*VSphere) Name

func (v *VSphere) Name() string

Name returns the provider name. It satisfies the test framework Provider.

func (*VSphere) Redhat127Template added in v0.17.0

func (v *VSphere) Redhat127Template() api.VSphereFiller

Redhat127Template returns vsphere filler for 1.27 Redhat.

func (*VSphere) Redhat128Template added in v0.18.0

func (v *VSphere) Redhat128Template() api.VSphereFiller

Redhat128Template returns vsphere filler for 1.28 Redhat.

func (*VSphere) Redhat129Template added in v0.19.0

func (v *VSphere) Redhat129Template() api.VSphereFiller

Redhat129Template returns vsphere filler for 1.29 Redhat.

func (*VSphere) Redhat130Template added in v0.20.0

func (v *VSphere) Redhat130Template() api.VSphereFiller

Redhat130Template returns vsphere filler for 1.30 Redhat.

func (*VSphere) Setup

func (v *VSphere) Setup()

Setup does nothing. It satisfies the test framework Provider.

func (*VSphere) Ubuntu126Template added in v0.15.0

func (v *VSphere) Ubuntu126Template() api.VSphereFiller

Ubuntu126Template returns vsphere filler for 1.26 Ubuntu.

func (*VSphere) Ubuntu127Template added in v0.16.0

func (v *VSphere) Ubuntu127Template() api.VSphereFiller

Ubuntu127Template returns vsphere filler for 1.27 Ubuntu.

func (*VSphere) Ubuntu128Template added in v0.18.0

func (v *VSphere) Ubuntu128Template() api.VSphereFiller

Ubuntu128Template returns vsphere filler for 1.28 Ubuntu.

func (*VSphere) Ubuntu128TemplateForMachineConfig added in v0.19.0

func (v *VSphere) Ubuntu128TemplateForMachineConfig(name string) api.VSphereFiller

Ubuntu128TemplateForMachineConfig returns vsphere filler for 1.28 Ubuntu for a specific machine config.

func (*VSphere) Ubuntu129Template added in v0.19.0

func (v *VSphere) Ubuntu129Template() api.VSphereFiller

Ubuntu129Template returns vsphere filler for 1.29 Ubuntu.

func (*VSphere) Ubuntu130Template added in v0.20.0

func (v *VSphere) Ubuntu130Template() api.VSphereFiller

Ubuntu130Template returns vsphere filler for 1.30 Ubuntu.

func (*VSphere) Ubuntu2204Kubernetes126Template added in v0.17.0

func (v *VSphere) Ubuntu2204Kubernetes126Template() api.VSphereFiller

Ubuntu2204Kubernetes126Template returns vsphere filler for 1.26 Ubuntu 22.04.

func (*VSphere) Ubuntu2204Kubernetes127Template added in v0.17.0

func (v *VSphere) Ubuntu2204Kubernetes127Template() api.VSphereFiller

Ubuntu2204Kubernetes127Template returns vsphere filler for 1.27 Ubuntu 22.04.

func (*VSphere) Ubuntu2204Kubernetes128Template added in v0.18.0

func (v *VSphere) Ubuntu2204Kubernetes128Template() api.VSphereFiller

Ubuntu2204Kubernetes128Template returns vsphere filler for 1.28 Ubuntu 22.04.

func (*VSphere) Ubuntu2204Kubernetes129Template added in v0.19.0

func (v *VSphere) Ubuntu2204Kubernetes129Template() api.VSphereFiller

Ubuntu2204Kubernetes129Template returns vsphere filler for 1.29 Ubuntu 22.04.

func (*VSphere) Ubuntu2204Kubernetes130Template added in v0.20.0

func (v *VSphere) Ubuntu2204Kubernetes130Template() api.VSphereFiller

Ubuntu2204Kubernetes130Template returns vsphere filler for 1.30 Ubuntu 22.04.

func (*VSphere) UpdateKubeConfig added in v0.14.0

func (v *VSphere) UpdateKubeConfig(content *[]byte, clusterName string) error

UpdateKubeConfig customizes generated kubeconfig for the provider.

func (*VSphere) ValidateNodesDiskGiB added in v0.15.0

func (v *VSphere) ValidateNodesDiskGiB(machines map[string]anywheretypes.Machine, expectedDiskSize int) error

ValidateNodesDiskGiB validates DiskGiB for all the machines.

func (*VSphere) WithBottleRocket130 added in v0.20.0

func (v *VSphere) WithBottleRocket130() api.ClusterConfigFiller

WithBottleRocket130 returns a cluster config filler that sets the kubernetes version of the cluster to 1.30 as well as the right botllerocket template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithKubeVersionAndOS added in v0.17.0

func (v *VSphere) WithKubeVersionAndOS(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease, _ ...bool) api.ClusterConfigFiller

WithKubeVersionAndOS returns a cluster config filler that sets the cluster kube version and the right template for all vsphere machine configs.

func (*VSphere) WithKubeVersionAndOSForRelease added in v0.17.0

func (v *VSphere) WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) api.ClusterConfigFiller

WithKubeVersionAndOSForRelease returns a cluster config filler that sets the cluster kube version and the right template for all vsphere machine configs based on the EKS-A release.

func (*VSphere) WithKubeVersionAndOSMachineConfig added in v0.19.0

func (v *VSphere) WithKubeVersionAndOSMachineConfig(name string, kubeVersion anywherev1.KubernetesVersion, os OS) api.ClusterConfigFiller

WithKubeVersionAndOSMachineConfig returns a cluster config filler that sets the cluster kube version and the right template for a specific vsphere machine config.

func (*VSphere) WithMachineTemplate added in v0.18.0

func (v *VSphere) WithMachineTemplate(machineName, template string) api.ClusterConfigFiller

WithMachineTemplate returns an api.ClusterConfigFiller that changes template in machine template.

func (*VSphere) WithNewVSphereWorkerNodeGroup added in v0.7.1

func (v *VSphere) WithNewVSphereWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) ClusterE2ETestOpt

WithNewVSphereWorkerNodeGroup adds a new worker node group to the cluster config.

func (*VSphere) WithNewWorkerNodeGroup added in v0.17.0

func (v *VSphere) WithNewWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithNewWorkerNodeGroup returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration and a corresponding VSphereMachineConfig to the cluster config.

func (*VSphere) WithProviderUpgrade

func (v *VSphere) WithProviderUpgrade(fillers ...api.VSphereFiller) ClusterE2ETestOpt

func (*VSphere) WithProviderUpgradeGit added in v0.7.1

func (v *VSphere) WithProviderUpgradeGit(fillers ...api.VSphereFiller) ClusterE2ETestOpt

func (*VSphere) WithUbuntu126 added in v0.15.0

func (v *VSphere) WithUbuntu126() api.ClusterConfigFiller

WithUbuntu126 returns a cluster config filler that sets the kubernetes version of the cluster to 1.26 as well as the right ubuntu template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithUbuntu127 added in v0.17.0

func (v *VSphere) WithUbuntu127() api.ClusterConfigFiller

WithUbuntu127 returns a cluster config filler that sets the kubernetes version of the cluster to 1.27 as well as the right ubuntu template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithUbuntu128 added in v0.18.0

func (v *VSphere) WithUbuntu128() api.ClusterConfigFiller

WithUbuntu128 returns a cluster config filler that sets the kubernetes version of the cluster to 1.28 as well as the right ubuntu template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithUbuntu129 added in v0.20.0

func (v *VSphere) WithUbuntu129() api.ClusterConfigFiller

WithUbuntu129 returns a cluster config filler that sets the kubernetes version of the cluster to 1.29 as well as the right ubuntu template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithUbuntu130 added in v0.20.0

func (v *VSphere) WithUbuntu130() api.ClusterConfigFiller

WithUbuntu130 returns a cluster config filler that sets the kubernetes version of the cluster to 1.30 as well as the right ubuntu template and osFamily for all VSphereMachineConfigs.

func (*VSphere) WithWorkerNodeGroupConfiguration added in v0.14.0

func (v *VSphere) WithWorkerNodeGroupConfiguration(name string, workerNodeGroup *WorkerNodeGroup) api.ClusterConfigFiller

WithWorkerNodeGroupConfiguration returns an api.ClusterFiller that adds a new workerNodeGroupConfiguration item to the cluster config.

type VSphereOpt

type VSphereOpt func(*VSphere)

VSphereOpt is construction option for the E2E vSphere provider.

func WithBottleRocket126 added in v0.15.0

func WithBottleRocket126() VSphereOpt

WithBottleRocket126 returns br 1.26 var.

func WithBottleRocket127 added in v0.16.0

func WithBottleRocket127() VSphereOpt

WithBottleRocket127 returns br 1.27 var.

func WithBottleRocket128 added in v0.18.0

func WithBottleRocket128() VSphereOpt

WithBottleRocket128 returns br 1.28 var.

func WithBottleRocket129 added in v0.19.0

func WithBottleRocket129() VSphereOpt

WithBottleRocket129 returns br 1.29 var.

func WithBottleRocket130 added in v0.20.0

func WithBottleRocket130() VSphereOpt

WithBottleRocket130 returns br 1.30 var.

func WithBottlerocketKubernetesSettingsForAllMachines added in v0.15.0

func WithBottlerocketKubernetesSettingsForAllMachines() VSphereOpt

WithBottlerocketKubernetesSettingsForAllMachines sets Bottlerocket Kubernetes settings for all the machines.

func WithDiskGiBForAllMachines added in v0.15.0

func WithDiskGiBForAllMachines(value int) VSphereOpt

WithDiskGiBForAllMachines sets diskGiB for all the machines.

func WithFullCloneMode added in v0.15.0

func WithFullCloneMode() VSphereOpt

WithFullCloneMode sets clone mode to FullClone for all the machine.

func WithKubeVersionAndOSForRelease added in v0.17.0

func WithKubeVersionAndOSForRelease(kubeVersion anywherev1.KubernetesVersion, os OS, release *releasev1.EksARelease) VSphereOpt

WithKubeVersionAndOSForRelease returns a vSphereOpt that sets the cluster kube version and the right template for all vsphere machine configs based on the EKS-A release.

func WithLinkedCloneMode added in v0.15.0

func WithLinkedCloneMode() VSphereOpt

WithLinkedCloneMode sets clone mode to LinkedClone for all the machine.

func WithNTPServersForAllMachines added in v0.15.0

func WithNTPServersForAllMachines() VSphereOpt

WithNTPServersForAllMachines sets NTP servers for all the machines.

func WithPrivateNetwork added in v0.6.0

func WithPrivateNetwork() VSphereOpt

func WithRedHat126VSphere added in v0.16.0

func WithRedHat126VSphere() VSphereOpt

WithRedHat126VSphere vsphere test with redhat 8 for Kubernetes 1.26.

func WithRedHat127VSphere added in v0.16.0

func WithRedHat127VSphere() VSphereOpt

WithRedHat127VSphere vsphere test with Redhat 8 for Kubernetes 1.27.

func WithRedHat128VSphere added in v0.18.0

func WithRedHat128VSphere() VSphereOpt

WithRedHat128VSphere vsphere test with Redhat 8 for Kubernetes 1.28.

func WithRedHat129VSphere added in v0.19.0

func WithRedHat129VSphere() VSphereOpt

WithRedHat129VSphere vsphere test with Redhat 8 for Kubernetes 1.29.

func WithRedHat130VSphere added in v0.20.0

func WithRedHat130VSphere() VSphereOpt

WithRedHat130VSphere vsphere test with Redhat 8 for Kubernetes 1.30.

func WithSSHAuthorizedKeyForAllMachines added in v0.15.0

func WithSSHAuthorizedKeyForAllMachines(sshKey string) VSphereOpt

WithSSHAuthorizedKeyForAllMachines sets SSH authorized keys for all the machines.

func WithUbuntu126 added in v0.15.0

func WithUbuntu126() VSphereOpt

WithUbuntu126 returns a VSphereOpt that adds API fillers to use a Ubuntu vSphere template for k8s 1.26 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu127 added in v0.16.0

func WithUbuntu127() VSphereOpt

WithUbuntu127 returns a VSphereOpt that adds API fillers to use a Ubuntu vSphere template for k8s 1.27 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu128 added in v0.18.0

func WithUbuntu128() VSphereOpt

WithUbuntu128 returns a VSphereOpt that adds API fillers to use a Ubuntu vSphere template for k8s 1.28 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu129 added in v0.19.0

func WithUbuntu129() VSphereOpt

WithUbuntu129 returns a VSphereOpt that adds API fillers to use a Ubuntu vSphere template for k8s 1.29 and the "ubuntu" osFamily in all machine configs.

func WithUbuntu130 added in v0.20.0

func WithUbuntu130() VSphereOpt

WithUbuntu130 returns a VSphereOpt that adds API fillers to use a Ubuntu vSphere template for k8s 1.30 and the "ubuntu" osFamily in all machine configs.

func WithVSphereFillers

func WithVSphereFillers(fillers ...api.VSphereFiller) VSphereOpt

WithVSphereFillers adds VSphereFiller to the provider default fillers.

func WithVSphereTags added in v0.13.0

func WithVSphereTags() VSphereOpt

WithVSphereTags with vsphere tags option.

func WithVSphereWorkerNodeGroup added in v0.7.1

func WithVSphereWorkerNodeGroup(name string, workerNodeGroup *WorkerNodeGroup, fillers ...api.VSphereMachineConfigFiller) VSphereOpt

type VsphereMachineValidation added in v0.18.0

type VsphereMachineValidation func(machineConfig *v1alpha1.VSphereMachineConfig, machine vspherev1.VSphereMachine) (err error)

VsphereMachineValidation should return an error if either an error is encountered during execution or the validation logically fails. This validation function will be executed by ValidateVsphereMachine and ValidateWorkerNodeVsphereMachine with a vSphere machine config and a corresponding vSphere machine.

type WorkerNodeGroup added in v0.7.1

type WorkerNodeGroup struct {
	Name                                 string
	Fillers                              []api.WorkerNodeGroupFiller
	MachineConfigKind, MachineConfigName string
}

func NoScheduleWorkerNodeGroup added in v0.7.1

func NoScheduleWorkerNodeGroup(name string, count int) *WorkerNodeGroup

func PreferNoScheduleWorkerNodeGroup added in v0.7.1

func PreferNoScheduleWorkerNodeGroup(name string, count int) *WorkerNodeGroup

func WithWorkerNodeGroup added in v0.7.1

func WithWorkerNodeGroup(name string, fillers ...api.WorkerNodeGroupFiller) *WorkerNodeGroup

func (*WorkerNodeGroup) ClusterFiller added in v0.9.0

func (w *WorkerNodeGroup) ClusterFiller() api.ClusterFiller

type WorkerNodeValidation added in v0.7.1

type WorkerNodeValidation func(configuration v1alpha1.WorkerNodeGroupConfiguration, node corev1.Node) (err error)

WorkerNodeValidation should return an error if either an error is encountered during execution or the validation logically fails. This validation function will be executed by ValidateWorkerNodes with a worker node group configuration and a corresponding node which was created as a part of that worker node group configuration.

type WorkloadCluster added in v0.6.1

type WorkloadCluster struct {
	*ClusterE2ETest
	ManagementClusterKubeconfigFile func() string
}

func (*WorkloadCluster) ApplyClusterManifest added in v0.14.0

func (w *WorkloadCluster) ApplyClusterManifest()

ApplyClusterManifest uses client-side logic to create/update objects defined in a cluster yaml manifest.

func (*WorkloadCluster) CreateCluster added in v0.6.1

func (w *WorkloadCluster) CreateCluster(opts ...CommandOpt)

func (*WorkloadCluster) DeleteCluster added in v0.6.1

func (w *WorkloadCluster) DeleteCluster(opts ...CommandOpt)

func (*WorkloadCluster) DeleteClusterWithKubectl added in v0.14.0

func (w *WorkloadCluster) DeleteClusterWithKubectl()

DeleteClusterWithKubectl uses client-side logic to delete a cluster.

func (*WorkloadCluster) UpgradeCluster added in v0.6.1

func (w *WorkloadCluster) UpgradeCluster(clusterOpts []ClusterE2ETestOpt, commandOpts ...CommandOpt)

func (*WorkloadCluster) ValidateClusterDelete added in v0.15.0

func (w *WorkloadCluster) ValidateClusterDelete()

ValidateClusterDelete verifies the cluster has been deleted.

func (*WorkloadCluster) WaitForAvailableHardware added in v0.15.0

func (w *WorkloadCluster) WaitForAvailableHardware()

WaitForAvailableHardware waits for workload cluster hardware to be available.

func (*WorkloadCluster) WaitForKubeconfig added in v0.14.0

func (w *WorkloadCluster) WaitForKubeconfig()

WaitForKubeconfig waits for the kubeconfig for the workload cluster to be available and then writes it to disk.

type WorkloadClusters added in v0.6.1

type WorkloadClusters map[string]*WorkloadCluster

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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