//go:build e2e && (vsphere || all_providers) // +build e2e // +build vsphere all_providers package e2e import ( "os" "testing" corev1 "k8s.io/api/core/v1" "github.com/aws/eks-anywhere/internal/pkg/api" "github.com/aws/eks-anywhere/pkg/api/v1alpha1" "github.com/aws/eks-anywhere/pkg/constants" "github.com/aws/eks-anywhere/pkg/features" "github.com/aws/eks-anywhere/test/framework" ) // Autoimport func TestVSphereKubernetes123BottlerocketAutoimport(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithTemplateForAllMachines(""), api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runAutoImportFlow(test, provider) } func TestVSphereKubernetes124BottlerocketAutoimport(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithTemplateForAllMachines(""), api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runAutoImportFlow(test, provider) } func TestVSphereKubernetes125BottlerocketAutoimport(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithTemplateForAllMachines(""), api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runAutoImportFlow(test, provider) } func TestVSphereKubernetes126BottlerocketAutoimport(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithTemplateForAllMachines(""), api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runAutoImportFlow(test, provider) } func TestVSphereKubernetes127BottlerocketAutoimport(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithTemplateForAllMachines(""), api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runAutoImportFlow(test, provider) } // AWS IAM Auth func TestVSphereKubernetes123AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes124AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes125AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes126AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes127AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes123BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes124BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes125BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes126BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes127BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runAWSIamAuthFlow(test) } func TestVSphereKubernetes126To127AWSIamAuthUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runUpgradeFlowWithAWSIamAuth( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } // Curated packages func TestVSphereKubernetes123CuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes124CuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes125CuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes126CuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes127CuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallSimpleFlow(test) } func TestVSphereKubernetes123CuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes124CuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes125CuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes126CuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes127CuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallSimpleFlow(test) } func TestVSphereKubernetes123CuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes124CuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes125CuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes126CuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes127CuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesHarborSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallSimpleFlowLocalStorageProvisioner(test) } func TestVSphereKubernetes123CuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes124CuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes125CuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes126CuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes127CuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesAdotUpdateFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallUpdateFlow(test) } func TestVSphereKubernetes123UbuntuCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes124UbuntuCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes125UbuntuCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes126UbuntuCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes127UbuntuCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesClusterAutoscalerSimpleFlow(t *testing.T) { minNodes := 1 maxNodes := 2 framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127), api.WithWorkerNodeAutoScalingConfig(minNodes, maxNodes)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runAutoscalerWithMetricsServerSimpleFlow(test) } func TestVSphereKubernetes123UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes124UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes125UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes126UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes127UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallSimpleFlow(test) } func TestVSphereKubernetes123UbuntuWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124UbuntuWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125UbuntuWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126UbuntuWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127UbuntuWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketWorkloadClusterCuratedPackagesSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCuratedPackageRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes123UbuntuWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124UbuntuWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125UbuntuWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126UbuntuWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127UbuntuWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketWorkloadClusterCuratedPackagesEmissarySimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCuratedPackageEmissaryRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes123UbuntuWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124UbuntuWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125UbuntuWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126UbuntuWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127UbuntuWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes123BottleRocketWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket123()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube123) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes124BottleRocketWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket124()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube124) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes125BottleRocketWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket125()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube125) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes126BottleRocketWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube126) runCertManagerRemoteClusterInstallSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketWorkloadClusterCuratedPackagesCertManagerSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) framework.CheckCertManagerCredentials(t) provider := framework.NewVSphere(t, framework.WithBottleRocket127()) test := SetupSimpleMultiCluster(t, provider, v1alpha1.Kube127) runCertManagerRemoteClusterInstallSimpleFlow(test) } // Download artifacts func TestVSphereDownloadArtifacts(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runDownloadArtifactsFlow(test) } // Flux func TestVSphereKubernetes127GithubFlux(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithFluxGithub(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runFluxFlow(test) } func TestVSphereKubernetes127GitFlux(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithFluxGit(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runFluxFlow(test) } func TestVSphereKubernetes127BottleRocketGithubFlux(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithFluxGithub(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runFluxFlow(test) } func TestVSphereKubernetes127BottleRocketGitFlux(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithFluxGit(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runFluxFlow(test) } func TestVSphereKubernetes126To127GitFluxUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest(t, provider, framework.WithFluxGit(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFlowWithFlux( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } func TestVSphereInstallGitFluxDuringUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := framework.NewClusterE2ETest(t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFlowWithFlux( test, v1alpha1.Kube127, framework.WithFluxGit(), framework.WithClusterUpgrade(api.WithGitOpsRef(framework.DefaultFluxConfigName, v1alpha1.FluxConfigKind)), ) } // Labels func TestVSphereKubernetes127UbuntuLabelsUpgradeFlow(t *testing.T) { provider := ubuntu127ProviderWithLabels(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), ) runLabelsUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithWorkerNodeGroup(worker0, api.WithLabel(key1, val1)), api.WithWorkerNodeGroup(worker1, api.WithLabel(key2, val2)), api.WithWorkerNodeGroup(worker2), api.WithControlPlaneLabel(cpKey1, cpVal1), ), ) } func TestVSphereKubernetes127BottlerocketLabelsUpgradeFlow(t *testing.T) { provider := bottlerocket127ProviderWithLabels(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), ) runLabelsUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithWorkerNodeGroup(worker0, api.WithLabel(key1, val1)), api.WithWorkerNodeGroup(worker1, api.WithLabel(key2, val2)), api.WithWorkerNodeGroup(worker2), api.WithControlPlaneLabel(cpKey1, cpVal1), ), ) } // Multicluster func TestVSphereKubernetes127MulticlusterWorkloadCluster(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), ), ) runWorkloadClusterFlow(test) } func TestVSphereUpgradeMulticlusterWorkloadClusterWithGithubFlux(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithFluxGithub(), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube126), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), ), framework.NewClusterE2ETest( t, provider, framework.WithFluxGithub(), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube126), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), ), ) runWorkloadClusterFlowWithGitOps( test, framework.WithClusterUpgradeGit( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(3), api.WithWorkerNodeCount(3), ), provider.WithProviderUpgradeGit( provider.Ubuntu127Template(), ), ) } // OIDC func TestVSphereKubernetes123OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runOIDCFlow(test) } func TestVSphereKubernetes124OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runOIDCFlow(test) } func TestVSphereKubernetes125OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runOIDCFlow(test) } func TestVSphereKubernetes126OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runOIDCFlow(test) } func TestVSphereKubernetes127OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runOIDCFlow(test) } func TestVSphereKubernetes126To127OIDCUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFlowWithOIDC( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } // Proxy config func TestVSphereKubernetes127UbuntuProxyConfigFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithProxy(framework.VsphereProxyRequiredEnvVars), ) runProxyConfigFlow(test) } func TestVSphereKubernetes127BottlerocketProxyConfigFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithProxy(framework.VsphereProxyRequiredEnvVars), ) runProxyConfigFlow(test) } // Registry mirror func TestVSphereKubernetes127UbuntuRegistryMirrorInsecureSkipVerify(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithRegistryMirrorInsecureSkipVerify(constants.VSphereProviderName), ) runRegistryMirrorConfigFlow(test) } func TestVSphereKubernetes127UbuntuRegistryMirrorAndCert(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithRegistryMirrorEndpointAndCert(constants.VSphereProviderName), ) runRegistryMirrorConfigFlow(test) } func TestVSphereKubernetes127BottlerocketRegistryMirrorAndCert(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithRegistryMirrorEndpointAndCert(constants.VSphereProviderName), ) runRegistryMirrorConfigFlow(test) } func TestVSphereKubernetes127UbuntuAuthenticatedRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithAuthenticatedRegistryMirror(constants.VSphereProviderName), ) runRegistryMirrorConfigFlow(test) } func TestVSphereKubernetes127BottlerocketAuthenticatedRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithAuthenticatedRegistryMirror(constants.VSphereProviderName), ) runRegistryMirrorConfigFlow(test) } // Clone mode func TestVSphereKubernetes127FullClone(t *testing.T) { diskSize := 30 vsphere := framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithFullCloneMode(), framework.WithDiskGiBForAllMachines(diskSize), ) test := framework.NewClusterE2ETest( t, vsphere, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), ) runVSphereCloneModeFlow(test, vsphere, diskSize) } func TestVSphereKubernetes127LinkedClone(t *testing.T) { diskSize := 20 vsphere := framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithLinkedCloneMode(), framework.WithDiskGiBForAllMachines(diskSize), ) test := framework.NewClusterE2ETest( t, vsphere, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), ) runVSphereCloneModeFlow(test, vsphere, diskSize) } func TestVSphereKubernetes127BottlerocketFullClone(t *testing.T) { diskSize := 30 vsphere := framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithFullCloneMode(), framework.WithDiskGiBForAllMachines(diskSize), ) test := framework.NewClusterE2ETest( t, vsphere, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), ) runVSphereCloneModeFlow(test, vsphere, diskSize) } func TestVSphereKubernetes127BottlerocketLinkedClone(t *testing.T) { diskSize := 22 vsphere := framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithLinkedCloneMode(), framework.WithDiskGiBForAllMachines(diskSize), ) test := framework.NewClusterE2ETest( t, vsphere, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), ) runVSphereCloneModeFlow(test, vsphere, diskSize) } // Simpleflow func TestVSphereKubernetes123Ubuntu2004SimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runSimpleFlow(test) } func TestVSphereKubernetes124Ubuntu2004SimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runSimpleFlow(test) } func TestVSphereKubernetes125Ubuntu2004SimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runSimpleFlow(test) } func TestVSphereKubernetes126Ubuntu2004SimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleFlow(test) } func TestVSphereKubernetes127Ubuntu2004SimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runSimpleFlow(test) } func TestVSphereKubernetes123Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube123, framework.Ubuntu2204, nil), ) runSimpleFlowWithoutClusterConfigGeneration(test) } func TestVSphereKubernetes124Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube124, framework.Ubuntu2204, nil), ) runSimpleFlowWithoutClusterConfigGeneration(test) } func TestVSphereKubernetes125Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube125, framework.Ubuntu2204, nil), ) runSimpleFlowWithoutClusterConfigGeneration(test) } func TestVSphereKubernetes126Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2204, nil), ) runSimpleFlowWithoutClusterConfigGeneration(test) } func TestVSphereKubernetes127Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube127, framework.Ubuntu2204, nil), ) runSimpleFlowWithoutClusterConfigGeneration(test) } func TestVSphereKubernetes123RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithRedHat123VSphere()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runSimpleFlow(test) } func TestVSphereKubernetes124RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithRedHat124VSphere()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runSimpleFlow(test) } func TestVSphereKubernetes125RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithRedHat125VSphere()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runSimpleFlow(test) } func TestVSphereKubernetes126RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithRedHat126VSphere()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleFlow(test) } func TestVSphereKubernetes127RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithRedHat127VSphere()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runSimpleFlow(test) } func TestVSphereKubernetes123ThreeReplicasFiveWorkersSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithWorkerNodeCount(5)), ) runSimpleFlow(test) } func TestVSphereKubernetes123DifferentNamespaceSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu123(), framework.WithVSphereFillers(api.WithVSphereConfigNamespaceForAllMachinesAndDatacenter(clusterNamespace))), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithClusterNamespace(clusterNamespace)), ) runSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketThreeReplicasFiveWorkersSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithWorkerNodeCount(5)), ) runSimpleFlow(test) } func TestVSphereKubernetes127BottleRocketDifferentNamespaceSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithBottleRocket127(), framework.WithVSphereFillers(api.WithVSphereConfigNamespaceForAllMachinesAndDatacenter(clusterNamespace))), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithClusterNamespace(clusterNamespace)), ) runSimpleFlow(test) } func TestVSphereKubernetes127CiliumAlwaysPolicyEnforcementModeSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithCiliumPolicyEnforcementMode(v1alpha1.CiliumPolicyModeAlways)), ) runSimpleFlow(test) } // NTP Servers test func TestVSphereKubernetes127BottleRocketWithNTP(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere( t, framework.WithBottleRocket127(), framework.WithNTPServersForAllMachines(), framework.WithSSHAuthorizedKeyForAllMachines(""), // set SSH key to empty ), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runNTPFlow(test, v1alpha1.Bottlerocket) } func TestVSphereKubernetes127UbuntuWithNTP(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere( t, framework.WithUbuntu127(), framework.WithNTPServersForAllMachines(), framework.WithSSHAuthorizedKeyForAllMachines(""), // set SSH key to empty ), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runNTPFlow(test, v1alpha1.Ubuntu) } // Bottlerocket Configuration test func TestVSphereKubernetes127BottlerocketWithBottlerocketKubernetesSettings(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere( t, framework.WithBottleRocket127(), framework.WithBottlerocketKubernetesSettingsForAllMachines(), framework.WithSSHAuthorizedKeyForAllMachines(""), // set SSH key to empty ), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ) runBottlerocketConfigurationFlow(test) } // Stacked etcd func TestVSphereKubernetes123StackedEtcdUbuntu(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu123()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithStackedEtcdTopology())) runStackedEtcdFlow(test) } func TestVSphereKubernetes124StackedEtcdUbuntu(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu124()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithStackedEtcdTopology())) runStackedEtcdFlow(test) } func TestVSphereKubernetes125StackedEtcdUbuntu(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu125()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithStackedEtcdTopology())) runStackedEtcdFlow(test) } func TestVSphereKubernetes126StackedEtcdUbuntu(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu126()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithStackedEtcdTopology())) runStackedEtcdFlow(test) } func TestVSphereKubernetes127StackedEtcdUbuntu(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewVSphere(t, framework.WithUbuntu127()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithStackedEtcdTopology())) runStackedEtcdFlow(test) } // Taints func TestVSphereKubernetes127UbuntuTaintsUpgradeFlow(t *testing.T) { provider := ubuntu127ProviderWithTaints(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), ) runTaintsUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithWorkerNodeGroup(worker0, api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup(worker1, api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup(worker2, api.WithNoTaints()), api.WithControlPlaneTaints([]corev1.Taint{framework.PreferNoScheduleTaint()}), ), ) } func TestVSphereKubernetes127BottlerocketTaintsUpgradeFlow(t *testing.T) { provider := bottlerocket127ProviderWithTaints(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), ) runTaintsUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithWorkerNodeGroup(worker0, api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup(worker1, api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup(worker2, api.WithNoTaints()), api.WithControlPlaneTaints([]corev1.Taint{framework.PreferNoScheduleTaint()}), ), ) } // Upgrade func TestVSphereKubernetes123UbuntuTo124Upgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu123()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube124, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube124)), provider.WithProviderUpgrade(provider.Ubuntu124Template()), ) } func TestVSphereKubernetes124UbuntuTo125Upgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu124()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube125, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube125)), provider.WithProviderUpgrade(provider.Ubuntu125Template()), ) } func TestVSphereKubernetes125UbuntuTo126Upgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu125()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(provider.Ubuntu126Template()), ) } func TestVSphereKubernetes126UbuntuTo127Upgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } func TestVSphereKubernetes125To126Ubuntu2204Upgrade(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube125, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowWithoutClusterConfigGeneration( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(provider.Ubuntu2204Kubernetes126Template()), ) } func TestVSphereKubernetes126To127Ubuntu2204Upgrade(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowWithoutClusterConfigGeneration( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu2204Kubernetes127Template()), ) } func TestVSphereKubernetes126Ubuntu2004To2204Upgrade(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowWithoutClusterConfigGeneration( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(provider.Ubuntu2204Kubernetes126Template()), ) } func TestVSphereKubernetes127Ubuntu2004To2204Upgrade(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube127, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowWithoutClusterConfigGeneration( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu2204Kubernetes127Template()), ) } func TestVSphereKubernetes126UbuntuTo127UpgradeCiliumPolicyEnforcementMode(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithCiliumPolicyEnforcementMode(v1alpha1.CiliumPolicyModeAlways)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } func TestVSphereKubernetes126UbuntuTo127MultipleFieldsUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade( provider.Ubuntu127Template(), api.WithNumCPUsForAllMachines(vsphereCpVmNumCpuUpdateVar), api.WithMemoryMiBForAllMachines(vsphereCpVmMemoryUpdate), api.WithDiskGiBForAllMachines(vsphereCpDiskGiBUpdateVar), api.WithFolderForAllMachines(vsphereFolderUpdateVar), // Uncomment once we support tests with multiple machine configs /*api.WithWorkloadVMsNumCPUs(vsphereWlVmNumCpuUpdateVar), api.WithWorkloadVMsMemoryMiB(vsphereWlVmMemoryUpdate), api.WithWorkloadDiskGiB(vsphereWlDiskGiBUpdate),*/ // Uncomment the network field once upgrade starts working with it // api.WithNetwork(vsphereNetwork2UpdateVar), ), ) } func TestVSphereKubernetes127UbuntuControlPlaneNodeUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithControlPlaneCount(3)), ) } func TestVSphereKubernetes127UbuntuWorkerNodeUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu127()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithWorkerNodeCount(5)), ) } func TestVSphereKubernetes126BottlerocketTo127Upgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Bottlerocket127Template()), ) } func TestVSphereKubernetes126BottlerocketTo127MultipleFieldsUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade( provider.Bottlerocket127Template(), api.WithNumCPUsForAllMachines(vsphereCpVmNumCpuUpdateVar), api.WithMemoryMiBForAllMachines(vsphereCpVmMemoryUpdate), api.WithDiskGiBForAllMachines(vsphereCpDiskGiBUpdateVar), api.WithFolderForAllMachines(vsphereFolderUpdateVar), // Uncomment once we support tests with multiple machine configs /*api.WithWorkloadVMsNumCPUs(vsphereWlVmNumCpuUpdateVar), api.WithWorkloadVMsMemoryMiB(vsphereWlVmMemoryUpdate), api.WithWorkloadDiskGiB(vsphereWlDiskGiBUpdate),*/ // Uncomment the network field once upgrade starts working with it // api.WithNetwork(vsphereNetwork2UpdateVar), ), ) } func TestVSphereKubernetes127BottlerocketControlPlaneNodeUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithBottleRocket127()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithControlPlaneCount(3)), ) } func TestVSphereKubernetes127BottlerocketWorkerNodeUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithBottleRocket127()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithWorkerNodeCount(5)), ) } func TestVSphereKubernetes126UbuntuTo127StackedEtcdUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithStackedEtcdTopology()), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Ubuntu127Template()), ) } func TestVSphereKubernetes126BottlerocketTo127StackedEtcdUpgrade(t *testing.T) { provider := framework.NewVSphere(t, framework.WithBottleRocket126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithStackedEtcdTopology()), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(provider.Bottlerocket127Template()), ) } func TestVSphereKubernetes126UbuntuTo127UpgradeWithCheckpoint(t *testing.T) { var clusterOpts []framework.ClusterE2ETestOpt var clusterOpts2 []framework.ClusterE2ETestOpt provider := framework.NewVSphere(t, framework.WithUbuntu126()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) clusterOpts = append(clusterOpts, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.ExpectFailure(true), provider.WithProviderUpgrade(provider.Ubuntu127Template(), api.WithResourcePoolForAllMachines(vsphereInvalidResourcePoolUpdateVar)), framework.WithEnvVar(features.CheckpointEnabledEnvVar, "true"), framework.WithEnvVar(framework.CleanupVmsVar, "false")) commandOpts := []framework.CommandOpt{framework.WithExternalEtcdWaitTimeout("10m")} clusterOpts2 = append(clusterOpts, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.ExpectFailure(false), provider.WithProviderUpgrade(provider.Ubuntu127Template(), api.WithResourcePoolForAllMachines(os.Getenv(vsphereResourcePoolVar))), framework.WithEnvVar(features.CheckpointEnabledEnvVar, "true"), framework.WithEnvVar(framework.CleanupVmsVar, "true")) runUpgradeFlowWithCheckpoint( test, v1alpha1.Kube127, clusterOpts, clusterOpts2, commandOpts, ) } func TestVSphereKubernetes124BottlerocketUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube124, framework.Bottlerocket1, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube124, provider.WithProviderUpgrade( provider.Bottlerocket124Template(), // Set the template so it doesn't get autoimported ), ) } func TestVSphereKubernetes124UbuntuUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube124, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube124, provider.WithProviderUpgrade( provider.Ubuntu124Template(), // Set the template so it doesn't get autoimported ), ) } func TestVSphereKubernetes127RedhatUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.RedHat), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube127, framework.RedHat8, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube127, provider.WithProviderUpgrade( provider.Redhat127Template(), // Set the template so it doesn't get autoimported ), ) } func TestVSphereKubernetes126WithOIDCManagementClusterUpgradeFromLatestSideEffects(t *testing.T) { provider := framework.NewVSphere(t) runTestManagementClusterUpgradeSideEffects(t, provider, framework.Ubuntu2004, v1alpha1.Kube126) } func TestVSphereKubernetes124UbuntuUpgradeFromLatestMinorReleaseAlwaysNetworkPolicy(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube124, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube124, framework.WithClusterFiller(api.WithCiliumPolicyEnforcementMode(v1alpha1.CiliumPolicyModeAlways)), provider.WithProviderUpgrade( provider.Ubuntu124Template(), // Set the template so it doesn't get autoimported ), ) } func TestVSphereKubernetes123To124UbuntuUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube123, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube124, provider.WithProviderUpgrade( provider.Ubuntu124Template(), // Set the template so it doesn't get autoimported ), framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube124)), ) } func TestVSphereKubernetes124To125UbuntuUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube124, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube125, provider.WithProviderUpgrade( provider.Ubuntu125Template(), // Set the template so it doesn't get autoimported ), framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube125)), ) } func TestVSphereKubernetes125To126UbuntuUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube125, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube126, provider.WithProviderUpgrade( provider.Ubuntu126Template(), // Set the template so it doesn't get autoimported ), framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), ) } func TestVSphereKubernetes126To127UbuntuUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.Ubuntu), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube126, framework.Ubuntu2004, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube127, provider.WithProviderUpgrade( provider.Ubuntu127Template(), // Set the template so it doesn't get autoimported ), framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), ) } func TestVSphereKubernetes127BottlerocketAndRemoveWorkerNodeGroups(t *testing.T) { provider := framework.NewVSphere(t, framework.WithVSphereWorkerNodeGroup( "worker-1", framework.WithWorkerNodeGroup("workers-1", api.WithCount(2)), ), framework.WithVSphereWorkerNodeGroup( "worker-2", framework.WithWorkerNodeGroup("workers-2", api.WithCount(1)), ), framework.WithBottleRocket127(), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), ) runSimpleUpgradeFlow( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.RemoveWorkerNodeGroup("workers-2"), api.WithWorkerNodeGroup("workers-1", api.WithCount(1)), ), provider.WithNewVSphereWorkerNodeGroup( "worker-1", framework.WithWorkerNodeGroup( "workers-3", api.WithCount(1), ), ), ) } func TestVSphereKubernetes126To127RedhatUpgradeFromLatestMinorRelease(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t, framework.WithVSphereFillers( api.WithOsFamilyForAllMachines(v1alpha1.RedHat), ), framework.WithKubeVersionAndOSForRelease(v1alpha1.Kube126, framework.RedHat8, release), ) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), ) runUpgradeFromReleaseFlow( test, release, v1alpha1.Kube127, provider.WithProviderUpgrade( provider.Redhat127Template(), // Set the template so it doesn't get auto-imported ), framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), ) } func TestVSphereKubernetes124UbuntuUpgradeAndRemoveWorkerNodeGroupsAPI(t *testing.T) { provider := framework.NewVSphere(t) test := framework.NewClusterE2ETest( t, provider, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube124), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), provider.WithNewWorkerNodeGroup("worker-1", framework.WithWorkerNodeGroup("worker-1", api.WithCount(2))), provider.WithNewWorkerNodeGroup("worker-2", framework.WithWorkerNodeGroup("worker-2", api.WithCount(1))), provider.WithNewWorkerNodeGroup("worker-3", framework.WithWorkerNodeGroup("worker-3", api.WithCount(1), api.WithLabel("tier", "frontend"))), provider.WithUbuntu124(), ) runUpgradeFlowWithAPI( test, api.ClusterToConfigFiller( api.RemoveWorkerNodeGroup("worker-2"), api.WithWorkerNodeGroup("worker-1", api.WithCount(1)), api.RemoveWorkerNodeGroup("worker-3"), ), // Re-adding with no labels and a taint provider.WithWorkerNodeGroupConfiguration("worker-3", framework.WithWorkerNodeGroup("worker-3", api.WithCount(1), api.WithTaint(framework.NoScheduleTaint()))), provider.WithWorkerNodeGroupConfiguration("worker-1", framework.WithWorkerNodeGroup("worker-4", api.WithCount(1))), ) } func TestVSphereKubernetes123to124UpgradeFromLatestMinorReleaseBottleRocketAPI(t *testing.T) { release := latestMinorRelease(t) provider := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, provider, ) managementCluster.GenerateClusterConfigForVersion(release.Version, framework.ExecuteWithEksaRelease(release)) managementCluster.UpdateClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube123), ), api.VSphereToConfigFiller( api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube123, framework.Bottlerocket1, release), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) wc := framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ) wc.GenerateClusterConfigForVersion(release.Version, framework.ExecuteWithEksaRelease(release)) wc.UpdateClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube123), api.WithManagementCluster(managementCluster.ClusterName), ), api.VSphereToConfigFiller( api.WithOsFamilyForAllMachines(v1alpha1.Bottlerocket), ), provider.WithKubeVersionAndOSForRelease(v1alpha1.Kube124, framework.Bottlerocket1, release), ) test.WithWorkloadClusters(wc) runMulticlusterUpgradeFromReleaseFlowAPI( test, release, api.JoinClusterConfigFillers( provider.WithBottleRocket124(), api.VSphereToConfigFiller( provider.Bottlerocket124Template(), // Set the template so it doesn't get autoimported ), ), ) } // Workload API func TestVSphereMulticlusterWorkloadClusterAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu123(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu123(), ), framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), ), framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu125(), ), framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu126(), ), ) test.CreateManagementCluster() test.RunConcurrentlyInWorkloadClusters(func(wc *framework.WorkloadCluster) { wc.ApplyClusterManifest() wc.WaitForKubeconfig() wc.ValidateClusterState() wc.DeleteClusterWithKubectl() wc.ValidateClusterDelete() }) test.ManagementCluster.StopIfFailed() test.DeleteManagementCluster() } func TestVSphereUpgradeLabelsTaintsUbuntuAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(2), api.WithLabel("key1", "val2"), api.WithTaint(framework.NoScheduleTaint()))), vsphere.WithNewWorkerNodeGroup("worker-1", framework.WithWorkerNodeGroup("worker-1", api.WithCount(1))), vsphere.WithNewWorkerNodeGroup("worker-2", framework.WithWorkerNodeGroup("worker-2", api.WithCount(1), api.WithLabel("key2", "val2"), api.WithTaint(framework.PreferNoScheduleTaint()))), vsphere.WithUbuntu124(), ), ) runWorkloadClusterUpgradeFlowAPI(test, api.ClusterToConfigFiller( api.WithWorkerNodeGroup("worker-0", api.WithLabel("key1", "val1"), api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup("worker-1", api.WithLabel("key2", "val2"), api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup("worker-2", api.WithNoTaints()), api.WithControlPlaneLabel("cpKey1", "cpVal1"), api.WithControlPlaneTaints([]corev1.Taint{framework.PreferNoScheduleTaint()}), ), ) } func TestVSphereUpgradeWorkerNodeGroupsUbuntuAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(1))), vsphere.WithNewWorkerNodeGroup("worker-1", framework.WithWorkerNodeGroup("worker-1", api.WithCount(1))), vsphere.WithUbuntu124(), ), ) runWorkloadClusterUpgradeFlowAPI(test, api.ClusterToConfigFiller( api.WithWorkerNodeGroup("worker-0", api.WithCount(2)), api.RemoveWorkerNodeGroup("worker-1"), ), vsphere.WithWorkerNodeGroupConfiguration("worker-1", framework.WithWorkerNodeGroup("worker-2", api.WithCount(1))), ) } func TestVSphereMulticlusterWorkloadClusterGitHubFluxAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), framework.WithFluxGithubConfig(), vsphere.WithUbuntu124(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu123(), ), framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithExternalEtcdTopology(1), ), vsphere.WithUbuntu124(), ), ) test.CreateManagementCluster() test.RunInWorkloadClusters(func(wc *framework.WorkloadCluster) { test.PushWorkloadClusterToGit(wc) wc.WaitForKubeconfig() wc.ValidateClusterState() test.DeleteWorkloadClusterFromGit(wc) wc.ValidateClusterDelete() }) test.ManagementCluster.StopIfFailed() test.DeleteManagementCluster() } func TestVSphereUpgradeKubernetes123to124UbuntuWorkloadClusterAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(1))), vsphere.WithUbuntu123(), ), ) runWorkloadClusterUpgradeFlowAPI(test, vsphere.WithUbuntu124(), ) } func TestVSphereCiliumUbuntuAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(1))), vsphere.WithUbuntu124(), ), ) test.CreateManagementCluster() test.RunConcurrentlyInWorkloadClusters(func(wc *framework.WorkloadCluster) { wc.ApplyClusterManifest() wc.WaitForKubeconfig() wc.ValidateClusterState() wc.UpdateClusterConfig( api.ClusterToConfigFiller( api.WithCiliumPolicyEnforcementMode(v1alpha1.CiliumPolicyModeAlways), ), ) wc.ApplyClusterManifest() wc.ValidateClusterState() wc.DeleteClusterWithKubectl() wc.ValidateClusterDelete() }) test.ManagementCluster.StopIfFailed() test.DeleteManagementCluster() } func TestVSphereUpgradeLabelsTaintsBottleRocketGitHubFluxAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithBottleRocket124(), framework.WithFluxGithubConfig(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(2), api.WithLabel("key1", "val2"), api.WithTaint(framework.NoScheduleTaint()))), vsphere.WithNewWorkerNodeGroup("worker-1", framework.WithWorkerNodeGroup("worker-1", api.WithCount(1))), vsphere.WithNewWorkerNodeGroup("worker-2", framework.WithWorkerNodeGroup("worker-2", api.WithCount(1), api.WithLabel("key2", "val2"), api.WithTaint(framework.PreferNoScheduleTaint()))), vsphere.WithBottleRocket124(), ), ) runWorkloadClusterUpgradeFlowAPIWithFlux(test, api.ClusterToConfigFiller( api.WithWorkerNodeGroup("worker-0", api.WithLabel("key1", "val1"), api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup("worker-1", api.WithLabel("key2", "val2"), api.WithTaint(framework.NoExecuteTaint())), api.WithWorkerNodeGroup("worker-2", api.WithNoTaints()), api.WithControlPlaneLabel("cpKey1", "cpVal1"), api.WithControlPlaneTaints([]corev1.Taint{framework.PreferNoScheduleTaint()}), ), ) } func TestVSphereUpgradeWorkerNodeGroupsUbuntuGitHubFluxAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), framework.WithFluxGithubConfig(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(1))), vsphere.WithNewWorkerNodeGroup("worker-1", framework.WithWorkerNodeGroup("worker-1", api.WithCount(1))), vsphere.WithUbuntu124(), ), ) runWorkloadClusterUpgradeFlowAPIWithFlux(test, api.ClusterToConfigFiller( api.WithWorkerNodeGroup("worker-0", api.WithCount(2)), api.RemoveWorkerNodeGroup("worker-1"), ), vsphere.WithWorkerNodeGroupConfiguration("worker-1", framework.WithWorkerNodeGroup("worker-2", api.WithCount(1))), ) } func TestVSphereUpgradeKubernetesCiliumUbuntuGitHubFluxAPI(t *testing.T) { vsphere := framework.NewVSphere(t) managementCluster := framework.NewClusterE2ETest( t, vsphere, framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithControlPlaneCount(1), api.WithWorkerNodeCount(1), api.WithStackedEtcdTopology(), ), vsphere.WithUbuntu124(), framework.WithFluxGithubConfig(), ) test := framework.NewMulticlusterE2ETest(t, managementCluster) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, vsphere, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithManagementCluster(managementCluster.ClusterName), api.WithExternalEtcdTopology(1), api.WithControlPlaneCount(1), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate ), vsphere.WithNewWorkerNodeGroup("worker-0", framework.WithWorkerNodeGroup("worker-0", api.WithCount(1))), vsphere.WithUbuntu123(), ), ) test.CreateManagementCluster() test.RunConcurrentlyInWorkloadClusters(func(wc *framework.WorkloadCluster) { test.PushWorkloadClusterToGit(wc) wc.WaitForKubeconfig() wc.ValidateClusterState() test.PushWorkloadClusterToGit(wc, api.ClusterToConfigFiller( api.WithCiliumPolicyEnforcementMode(v1alpha1.CiliumPolicyModeAlways), ), vsphere.WithUbuntu124(), ) wc.ValidateClusterState() test.DeleteWorkloadClusterFromGit(wc) wc.ValidateClusterDelete() }) test.ManagementCluster.StopIfFailed() test.DeleteManagementCluster() } func TestVSphereKubernetes127UbuntuAirgappedRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewVSphere(t, framework.WithUbuntu127(), framework.WithPrivateNetwork()), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithExternalEtcdTopology(1)), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithRegistryMirrorEndpointAndCert(constants.VSphereProviderName), ) runAirgapConfigFlow(test, "195.18.0.1/16,196.18.0.1/16") } func ubuntu127ProviderWithLabels(t *testing.T) *framework.VSphere { return framework.NewVSphere(t, framework.WithVSphereWorkerNodeGroup( worker0, framework.WithWorkerNodeGroup(worker0, api.WithCount(2), api.WithLabel(key1, val2)), ), framework.WithVSphereWorkerNodeGroup( worker1, framework.WithWorkerNodeGroup(worker1, api.WithCount(1)), ), framework.WithVSphereWorkerNodeGroup( worker2, framework.WithWorkerNodeGroup(worker2, api.WithCount(1), api.WithLabel(key2, val2)), ), framework.WithUbuntu127(), ) } func bottlerocket127ProviderWithLabels(t *testing.T) *framework.VSphere { return framework.NewVSphere(t, framework.WithVSphereWorkerNodeGroup( worker0, framework.WithWorkerNodeGroup(worker0, api.WithCount(2), api.WithLabel(key1, val2)), ), framework.WithVSphereWorkerNodeGroup( worker1, framework.WithWorkerNodeGroup(worker1, api.WithCount(1)), ), framework.WithVSphereWorkerNodeGroup( worker2, framework.WithWorkerNodeGroup(worker2, api.WithCount(1), api.WithLabel(key2, val2)), ), framework.WithBottleRocket127(), ) } func ubuntu127ProviderWithTaints(t *testing.T) *framework.VSphere { return framework.NewVSphere(t, framework.WithVSphereWorkerNodeGroup( worker0, framework.NoScheduleWorkerNodeGroup(worker0, 2), ), framework.WithVSphereWorkerNodeGroup( worker1, framework.WithWorkerNodeGroup(worker1, api.WithCount(1)), ), framework.WithVSphereWorkerNodeGroup( worker2, framework.PreferNoScheduleWorkerNodeGroup(worker2, 1), ), framework.WithUbuntu127(), ) } func bottlerocket127ProviderWithTaints(t *testing.T) *framework.VSphere { return framework.NewVSphere(t, framework.WithVSphereWorkerNodeGroup( worker0, framework.NoScheduleWorkerNodeGroup(worker0, 2), ), framework.WithVSphereWorkerNodeGroup( worker1, framework.WithWorkerNodeGroup(worker1, api.WithCount(1)), ), framework.WithVSphereWorkerNodeGroup( worker2, framework.PreferNoScheduleWorkerNodeGroup(worker2, 1), ), framework.WithBottleRocket127(), ) } func runVSphereCloneModeFlow(test *framework.ClusterE2ETest, vsphere *framework.VSphere, diskSize int) { test.GenerateClusterConfig() test.CreateCluster() vsphere.ValidateNodesDiskGiB(test.GetCapiMachinesForCluster(test.ClusterName), diskSize) test.DeleteCluster() }