//go:build e2e && (tinkerbell || all_providers) // +build e2e // +build tinkerbell all_providers package e2e import ( "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/networkutils" "github.com/aws/eks-anywhere/test/framework" ) // AWS IAM Auth func TestTinkerbellKubernetes123AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellAWSIamAuthFlow(test) } func TestTinkerbellKubernetes127AWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellAWSIamAuthFlow(test) } func TestTinkerbellKubernetes123BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellAWSIamAuthFlow(test) } func TestTinkerbellKubernetes127BottleRocketAWSIamAuth(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithAWSIam(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellAWSIamAuthFlow(test) } // Upgrade func TestTinkerbellKubernetes123UbuntuTo124Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube124, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube124)), provider.WithProviderUpgrade(framework.Ubuntu124Image()), ) } func TestTinkerbellKubernetes124UbuntuTo125Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube125, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube125)), provider.WithProviderUpgrade(framework.Ubuntu125Image()), ) } func TestTinkerbellKubernetes125UbuntuTo126Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(framework.Ubuntu126Image()), ) } func TestTinkerbellKubernetes126UbuntuTo127Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(framework.Ubuntu127Image()), ) } func TestTinkerbellKubernetes125To126Ubuntu2204Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube125, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowForBaremetalWithoutClusterConfigGeneration( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(framework.Ubuntu2204Kubernetes126Image()), ) } func TestTinkerbellKubernetes126To127Ubuntu2204Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2204, nil), ) runSimpleUpgradeFlowForBaremetalWithoutClusterConfigGeneration( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(framework.Ubuntu2204Kubernetes126Image()), ) } func TestTinkerbellKubernetes126Ubuntu2004To2204Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2004, nil), ) runSimpleUpgradeFlowForBaremetalWithoutClusterConfigGeneration( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube126)), provider.WithProviderUpgrade(framework.Ubuntu2204Kubernetes126Image()), ) } func TestTinkerbellKubernetes127Ubuntu2004To2204Upgrade(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube127, framework.Ubuntu2004, nil), ) runSimpleUpgradeFlowForBaremetalWithoutClusterConfigGeneration( test, v1alpha1.Kube126, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(framework.Ubuntu2204Kubernetes127Image()), ) } func TestTinkerbellKubernetes127UbuntuWorkerNodeUpgrade(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithWorkerNodeCount(2)), ) } func TestTinkerbellKubernetes125UbuntuWorkerNodeScaleUpWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(2), ) runUpgradeFlowForBareMetalWithAPI(test, api.ClusterToConfigFiller( api.WithWorkerNodeCount(2), ), ) } func TestTinkerbellKubernetes125UbuntuAddWorkerNodeGroupWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithCustomLabelHardware(1, "worker-0"), ) runUpgradeFlowForBareMetalWithAPI(test, api.ClusterToConfigFiller( api.WithWorkerNodeGroup("worker-0", api.WithCount(1), api.WithMachineGroupRef("worker-0", "TinkerbellMachineConfig"), ), ), api.TinkerbellToConfigFiller( api.WithCustomTinkerbellMachineConfig("worker-0", framework.UpdateTinkerbellMachineSSHAuthorizedKey(), api.WithOsFamilyForTinkerbellMachineConfig(v1alpha1.Ubuntu), ), ), ) } // Curated packages func TestTinkerbellKubernetes127UbuntuSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes127BottleRocketSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes127UbuntuSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes127BottleRocketSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes127UbuntuSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127UbuntuCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube127), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126UbuntuSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes126BottleRocketSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes126UbuntuSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes126BottleRocketSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes126UbuntuSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126BottleRocketSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126UbuntuCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126BottleRocketCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube126), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube126), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125UbuntuSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes125BottleRocketSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes125UbuntuSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes125BottleRocketSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes125UbuntuSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125BottleRocketSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125UbuntuCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125BottleRocketCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube125), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube125), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124UbuntuSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes124BottleRocketSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes124UbuntuSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes124BottleRocketSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes124UbuntuSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124BottleRocketSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124UbuntuCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124BottleRocketCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube124), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube124), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123UbuntuSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes123BottleRocketSingleNodeCuratedPackagesFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes123UbuntuSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes123BottleRocketSingleNodeCuratedPackagesEmissaryFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageEmissaryInstallTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes123UbuntuSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123BottleRocketSingleNodeCuratedPackagesHarborFlow(t *testing.T) { test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackageHarborInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123UbuntuCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123BottleRocketCuratedPackagesAdotSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesAdotInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123UbuntuCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123BottleRocketCuratedPackagesPrometheusSimpleFlow(t *testing.T) { framework.CheckCuratedPackagesCredentials(t) test := framework.NewClusterE2ETest(t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube123), framework.WithControlPlaneHardware(1), framework.WithPackageConfig(t, packageBundleURI(v1alpha1.Kube123), EksaPackageControllerHelmChartName, EksaPackageControllerHelmURI, EksaPackageControllerHelmVersion, EksaPackageControllerHelmValues, nil), ) runCuratedPackagesPrometheusInstallTinkerbellSimpleFlow(test) } // Single node func TestTinkerbellKubernetes127BottleRocketSingleNodeSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(1), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), framework.WithControlPlaneHardware(1), ) runTinkerbellSingleNodeFlow(test) } func TestTinkerbellKubernetes127UbuntuSingleNodeSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(1), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), framework.WithControlPlaneHardware(1), ) runTinkerbellSingleNodeFlow(test) } // Multicluster func TestTinkerbellKubernetes127UbuntuWorkloadCluster(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ), ) runTinkerbellWorkloadClusterFlow(test) } func TestTinkerbellKubernetes127UbuntuWorkloadClusterWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), ), ), ) runWorkloadClusterWithAPIFlowForBareMetal(test) } func TestTinkerbellKubernetes127UbuntuWorkloadClusterGitFluxWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( framework.WithFluxGithubConfig(), api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), ), ), ) runWorkloadClusterGitOpsAPIFlowForBareMetal(test) } func TestTinkerbellKubernetes127BottlerocketWorkloadClusterSimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ), ) runTinkerbellWorkloadClusterFlow(test) } func TestTinkerbellKubernetes127BottlerocketWorkloadClusterWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), ), ), ) runWorkloadClusterWithAPIFlowForBareMetal(test) } func TestTinkerbellKubernetes127UbuntuSingleNodeWorkloadCluster(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(0), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ), ) runTinkerbellWorkloadClusterFlow(test) } func TestTinkerbellKubernetes127UbuntuSingleNodeWorkloadClusterWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(0), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ), ) runWorkloadClusterWithAPIFlowForBareMetal(test) } func TestTinkerbellKubernetes127BottlerocketSingleNodeWorkloadCluster(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(0), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ), ) runTinkerbellWorkloadClusterFlow(test) } func TestTinkerbellKubernetes127BottlerocketSingleNodeWorkloadClusterWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(0), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ), ) runWorkloadClusterWithAPIFlowForBareMetal(test) } func TestTinkerbellKubernetes127BottlerocketWorkloadClusterSkipPowerActions(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithNoPowerActions(), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithNoPowerActions(), ), ) runTinkerbellWorkloadClusterFlowSkipPowerActions(test) } func TestTinkerbellUpgrade127MulticlusterWorkloadClusterWorkerScaleup(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(3), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ), ) runSimpleWorkloadUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithWorkerNodeCount(2), ), ) } func TestTinkerbellSingleNode125ManagementScaleupWorkloadWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube125), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube125), api.WithManagementCluster(managementCluster.ClusterName), api.WithEtcdCountIfExternal(0), ), ), ) runWorkloadClusterUpgradeFlowWithAPIForBareMetal(test, api.ClusterToConfigFiller( api.WithWorkerNodeCount(2), ), ) } func TestTinkerbellUpgrade127MulticlusterWorkloadClusterWorkerScaleupGitFluxWithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(2), framework.WithFluxGithubEnvVarCheck(), framework.WithFluxGithubCleanup(), ).WithClusterConfig( framework.WithFluxGithubConfig(), api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.RemoveAllWorkerNodeGroups(), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithManagementCluster(managementCluster.ClusterName), ), ), ) runWorkloadClusterGitOpsAPIUpgradeFlowForBareMetal(test, api.ClusterToConfigFiller( api.WithWorkerNodeCount(2), ), ) } func TestTinkerbellUpgrade127MulticlusterWorkloadClusterCPScaleup(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(4), framework.WithWorkerHardware(2), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), ), ) runSimpleWorkloadUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneCount(3), ), ) } func TestTinkerbellUpgrade127MulticlusterWorkloadClusterWorkerScaleDown(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(2), framework.WithWorkerHardware(3), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithWorkerNodeCount(2)), ), ) runSimpleWorkloadUpgradeFlowForBareMetal( test, v1alpha1.Kube126, framework.WithClusterUpgrade( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithWorkerNodeCount(1), ), ) } func TestTinkerbellUpgradeMulticlusterWorkloadClusterK8sUpgrade126To127(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()) test := framework.NewMulticlusterE2ETest( t, framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(3), ), framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), ), ) runSimpleWorkloadUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithKubernetesVersion(v1alpha1.Kube127)), provider.WithProviderUpgrade(framework.Ubuntu127Image()), ) } func TestTinkerbellUpgradeMulticlusterWorkloadClusterK8sUpgrade124To125WithAPI(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()) managementCluster := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(1), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube124), ), ) test := framework.NewMulticlusterE2ETest( t, managementCluster, ) test.WithWorkloadClusters( framework.NewClusterE2ETest( t, provider, framework.WithClusterName(test.NewWorkloadClusterName()), ).WithClusterConfig( api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube124), api.WithManagementCluster(managementCluster.ClusterName), api.WithEtcdCountIfExternal(0), api.RemoveAllWorkerNodeGroups(), ), ), ) runWorkloadClusterUpgradeFlowWithAPIForBareMetal(test, api.ClusterToConfigFiller( api.WithKubernetesVersion(v1alpha1.Kube125), ), ) } // Nodes powered on func TestTinkerbellKubernetes127WithNodesPoweredOn(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) test.GenerateClusterConfig() test.GenerateHardwareConfig() test.PowerOffHardware() test.PowerOnHardware() test.CreateCluster(framework.WithForce(), framework.WithControlPlaneWaitTimeout("20m")) test.DeleteCluster() test.ValidateHardwareDecommissioned() } // OIDC func TestTinkerbellKubernetes127OIDC(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithOIDC(), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellOIDCFlow(test) } // Registry mirror func TestTinkerbellKubernetes127UbuntuRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithRegistryMirrorEndpointAndCert(constants.TinkerbellProviderName), ) runTinkerbellRegistryMirrorFlow(test) } func TestTinkerbellKubernetes127UbuntuInsecureSkipVerifyRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithRegistryMirrorInsecureSkipVerify(constants.TinkerbellProviderName), ) runTinkerbellRegistryMirrorFlow(test) } func TestTinkerbellKubernetes127BottlerocketRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithRegistryMirrorEndpointAndCert(constants.TinkerbellProviderName), ) runTinkerbellRegistryMirrorFlow(test) } func TestTinkerbellKubernetes127UbuntuAuthenticatedRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithAuthenticatedRegistryMirror(constants.TinkerbellProviderName), ) runTinkerbellRegistryMirrorFlow(test) } func TestTinkerbellKubernetes127BottlerocketAuthenticatedRegistryMirror(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithAuthenticatedRegistryMirror(constants.TinkerbellProviderName), ) runTinkerbellRegistryMirrorFlow(test) } // Simpleflow func TestTinkerbellKubernetes123UbuntuSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu123Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124UbuntuSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu124Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125UbuntuSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu125Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126UbuntuSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu126Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127UbuntuSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube123, framework.Ubuntu2204, nil), ) runTinkerbellSimpleFlowWithoutClusterConfigGeneration(test) } func TestTinkerbellKubernetes124Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube124, framework.Ubuntu2204, nil), ) runTinkerbellSimpleFlowWithoutClusterConfigGeneration(test) } func TestTinkerbellKubernetes125Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube125, framework.Ubuntu2204, nil), ) runTinkerbellSimpleFlowWithoutClusterConfigGeneration(test) } func TestTinkerbellKubernetes126Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube126, framework.Ubuntu2204, nil), ) runTinkerbellSimpleFlowWithoutClusterConfigGeneration(test) } func TestTinkerbellKubernetes127Ubuntu2204SimpleFlow(t *testing.T) { provider := framework.NewTinkerbell(t) test := framework.NewClusterE2ETest( t, provider, framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ).WithClusterConfig( provider.WithKubeVersionAndOS(v1alpha1.Kube127, framework.Ubuntu2204, nil), ) runTinkerbellSimpleFlowWithoutClusterConfigGeneration(test) } func TestTinkerbellKubernetes123RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithRedHat123Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithRedHat124Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithRedHat125Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithRedHat126Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127RedHatSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithRedHat127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes123BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube123)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes124BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube124)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes125BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube125)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes126BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube126)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127UbuntuThreeControlPlaneReplicasSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketThreeControlPlaneReplicasSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(1), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127UbuntuThreeWorkersSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(3), ) runTinkerbellSimpleFlow(test) } func TestTinkerbellKubernetes127BottleRocketThreeWorkersSimpleFlow(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithWorkerNodeCount(3)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(3), ) runTinkerbellSimpleFlow(test) } // Skip power actions func TestTinkerbellKubernetes127SkipPowerActions(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithNoPowerActions(), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), ) test.GenerateClusterConfig() test.GenerateHardwareConfig() test.PowerOffHardware() test.PXEBootHardware() test.PowerOnHardware() test.CreateCluster(framework.WithForce(), framework.WithControlPlaneWaitTimeout("20m")) test.DeleteCluster() test.PowerOffHardware() test.ValidateHardwareDecommissioned() } func TestTinkerbellKubernetes127SingleNodeSkipPowerActions(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()), framework.WithClusterSingleNode(v1alpha1.Kube127), framework.WithNoPowerActions(), framework.WithControlPlaneHardware(1), ) test.GenerateClusterConfig() test.GenerateHardwareConfig() test.PowerOffHardware() test.PXEBootHardware() test.PowerOnHardware() test.CreateCluster(framework.WithForce(), framework.WithControlPlaneWaitTimeout("20m")) test.DeleteCluster() test.PowerOffHardware() test.ValidateHardwareDecommissioned() } func TestTinkerbellKubernetes127UbuntuControlPlaneScaleUp(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(1), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithControlPlaneCount(3)), ) } func TestTinkerbellKubernetes127UbuntuWorkerNodeScaleUp(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithWorkerNodeCount(2)), ) } func TestTinkerbellKubernetes127UbuntuWorkerNodeScaleDown(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(1)), framework.WithClusterFiller(api.WithWorkerNodeCount(2)), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(2), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithWorkerNodeCount(1)), ) } func TestTinkerbellKubernetes127UbuntuControlPlaneScaleDown(t *testing.T) { provider := framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell()) test := framework.NewClusterE2ETest( t, provider, framework.WithClusterFiller(api.WithKubernetesVersion(v1alpha1.Kube127)), framework.WithClusterFiller(api.WithControlPlaneCount(3)), framework.WithClusterFiller(api.WithWorkerNodeCount(1)), framework.WithControlPlaneHardware(3), framework.WithWorkerHardware(1), ) runSimpleUpgradeFlowForBareMetal( test, v1alpha1.Kube127, framework.WithClusterUpgrade(api.WithControlPlaneCount(1)), ) } // Worker nodegroup taints and labels func TestTinkerbellKubernetes127UbuntuWorkerNodeGroupsTaintsAndLabels(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell( t, framework.WithUbuntu127Tinkerbell(), framework.WithCustomTinkerbellMachineConfig(nodeGroupLabel1), framework.WithCustomTinkerbellMachineConfig(nodeGroupLabel2), ), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneLabel(cpKey1, cpVal1), api.WithControlPlaneTaints([]corev1.Taint{framework.NoScheduleTaint()}), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate api.WithWorkerNodeGroup(worker0, api.WithMachineGroupRef(nodeGroupLabel1, "TinkerbellMachineConfig"), api.WithTaint(framework.PreferNoScheduleTaint()), api.WithLabel(key1, val1), api.WithCount(1)), api.WithWorkerNodeGroup(worker1, api.WithMachineGroupRef(nodeGroupLabel2, "TinkerbellMachineConfig"), api.WithLabel(key2, val2), api.WithCount(1)), ), framework.WithControlPlaneHardware(1), framework.WithCustomLabelHardware(1, nodeGroupLabel1), framework.WithCustomLabelHardware(1, nodeGroupLabel2), ) test.GenerateClusterConfig() test.GenerateHardwareConfig() test.PowerOffHardware() test.CreateCluster(framework.WithControlPlaneWaitTimeout("20m")) test.ValidateWorkerNodes(framework.ValidateWorkerNodeTaints, framework.ValidateWorkerNodeLabels) test.ValidateControlPlaneNodes(framework.ValidateControlPlaneTaints, framework.ValidateControlPlaneLabels) test.DeleteCluster() test.ValidateHardwareDecommissioned() } func TestTinkerbellKubernetes127BottlerocketWorkerNodeGroupsTaintsAndLabels(t *testing.T) { test := framework.NewClusterE2ETest( t, framework.NewTinkerbell( t, framework.WithBottleRocketTinkerbell(), framework.WithCustomTinkerbellMachineConfig(nodeGroupLabel1), framework.WithCustomTinkerbellMachineConfig(nodeGroupLabel2), ), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), api.WithControlPlaneLabel(cpKey1, cpVal1), api.WithControlPlaneTaints([]corev1.Taint{framework.NoScheduleTaint()}), api.RemoveAllWorkerNodeGroups(), // This gives us a blank slate api.WithWorkerNodeGroup(worker0, api.WithMachineGroupRef(nodeGroupLabel1, "TinkerbellMachineConfig"), api.WithTaint(framework.PreferNoScheduleTaint()), api.WithLabel(key1, val1), api.WithCount(1)), api.WithWorkerNodeGroup(worker1, api.WithMachineGroupRef(nodeGroupLabel2, "TinkerbellMachineConfig"), api.WithLabel(key2, val2), api.WithCount(1)), ), framework.WithControlPlaneHardware(1), framework.WithCustomLabelHardware(1, nodeGroupLabel1), framework.WithCustomLabelHardware(1, nodeGroupLabel2), ) test.GenerateClusterConfig() test.GenerateHardwareConfig() test.PowerOffHardware() test.CreateCluster(framework.WithControlPlaneWaitTimeout("20m")) test.ValidateWorkerNodes(framework.ValidateWorkerNodeTaints, framework.ValidateWorkerNodeLabels) test.ValidateControlPlaneNodes(framework.ValidateControlPlaneTaints, framework.ValidateControlPlaneLabels) test.DeleteCluster() test.ValidateHardwareDecommissioned() } // Airgapped tests func TestTinkerbellAirgappedKubernetes127BottleRocketRegistryMirror(t *testing.T) { localIp, err := networkutils.GetLocalIP() if err != nil { t.Fatalf("Cannot get admin machine local IP: %v", err) } t.Logf("Admin machine's IP is: %s", localIp) test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell(), framework.WithHookImagesURLPath("http://"+localIp.String()+":8080"), framework.WithOSImageURL("http://"+localIp.String()+":8080/"+bottlerocketOSFileName), ), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithRegistryMirrorEndpointAndCert(constants.TinkerbellProviderName), ) runTinkerbellAirgapConfigFlow(test, "10.80.0.0/16") } // Proxy tests func TestTinkerbellAirgappedKubernetes127BottlerocketProxyConfigFlow(t *testing.T) { localIp, err := networkutils.GetLocalIP() if err != nil { t.Fatalf("Cannot get admin machine local IP: %v", err) } t.Logf("Admin machine's IP is: %s", localIp) test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithBottleRocketTinkerbell(), framework.WithHookImagesURLPath("http://"+localIp.String()+":8080"), ), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithProxy(framework.TinkerbellProxyRequiredEnvVars), ) runTinkerbellAirgapConfigProxyFlow(test, "10.80.0.0/16") } func TestTinkerbellAirgappedKubernetes127UbuntuProxyConfigFlow(t *testing.T) { localIp, err := networkutils.GetLocalIP() if err != nil { t.Fatalf("Cannot get admin machine local IP: %v", err) } t.Logf("Admin machine's IP is: %s", localIp) test := framework.NewClusterE2ETest( t, framework.NewTinkerbell(t, framework.WithUbuntu127Tinkerbell(), framework.WithHookImagesURLPath("http://"+localIp.String()+":8080"), ), framework.WithClusterFiller( api.WithKubernetesVersion(v1alpha1.Kube127), ), framework.WithControlPlaneHardware(1), framework.WithWorkerHardware(1), framework.WithProxy(framework.TinkerbellProxyRequiredEnvVars), ) runTinkerbellAirgapConfigProxyFlow(test, "10.80.0.0/16") }