From cb342573dc95e9092e8e5b195f324a1335a67878 Mon Sep 17 00:00:00 2001 From: EKS Distro PR Bot Date: Tue, 18 Feb 2025 05:42:05 -0800 Subject: [PATCH] Set LicenseToken field only when version is greater than v0.22 LicenseToken field on cluster spec will be introduced in 'v0.22.0'. At present since we set this field when initialize the end-to-end test object it gets set even on the previous minor versions where it's not intended to. This change sets this field only on main, or if the version is higher than 'v0.22.0'. This change also cleans up some old cleanup code in our e2e framework that was used only during way old releases such as 'v0.6.1' and is no longer needed. Signed-off-by: Rahul Ganesh --- .../build/buildspecs/quick-test-eks-a-cli.yml | 2 +- test/e2e/side_effects.go | 5 ++++ test/framework/api.go | 17 ----------- test/framework/cluster.go | 28 ++++++++++++++----- 4 files changed, 27 insertions(+), 25 deletions(-) delete mode 100644 test/framework/api.go diff --git a/cmd/integration_test/build/buildspecs/quick-test-eks-a-cli.yml b/cmd/integration_test/build/buildspecs/quick-test-eks-a-cli.yml index 0f10be7a65f3..4f495c587600 100644 --- a/cmd/integration_test/build/buildspecs/quick-test-eks-a-cli.yml +++ b/cmd/integration_test/build/buildspecs/quick-test-eks-a-cli.yml @@ -265,4 +265,4 @@ reports: e2e-reports: files: - reports/junit-testing-*.xml - file-format: "JUNITXML" + file-format: "JUNITXML" \ No newline at end of file diff --git a/test/e2e/side_effects.go b/test/e2e/side_effects.go index fa4e90d7b75d..3833b06c06c9 100644 --- a/test/e2e/side_effects.go +++ b/test/e2e/side_effects.go @@ -41,6 +41,11 @@ func runFlowUpgradeManagementClusterCheckForSideEffects(test *framework.Multiclu printStateOfMachines(test.ManagementCluster.ClusterConfig.Cluster, preUpgradeWorkloadClustersState) test.T.Logf("Upgrading management cluster with EKS-A version %s", newEKSA.Version()) + + // Since we do not generate cluster config from the new binary and update the existing cluster config, + // we will need to manually add the license token for upgrade tests as long as the latest minor is 'v0.21.*'. + licenseToken := os.Getenv(framework.LicenseTokenEnvVar) + test.ManagementCluster.ClusterConfig.Cluster.Spec.LicenseToken = licenseToken test.ManagementCluster.UpgradeClusterWithNewConfig(clusterOpts, framework.ExecuteWithBinary(newEKSA)) checker := machineSideEffectChecker{ diff --git a/test/framework/api.go b/test/framework/api.go deleted file mode 100644 index 848c426c7728..000000000000 --- a/test/framework/api.go +++ /dev/null @@ -1,17 +0,0 @@ -package framework - -import ( - "github.com/aws/eks-anywhere/internal/pkg/api" - "github.com/aws/eks-anywhere/pkg/cluster" -) - -var incompatiblePathsForVersion = map[string][]string{ - "v0.6.1": { - "spec.clusterNetwork.dns", - "spec.workerNodeGroupConfigurations[].name", - }, -} - -func cleanUpClusterForVersion(config *cluster.Config, version string) error { - return api.CleanupPathsInObject(config.Cluster, incompatiblePathsForVersion[version]) -} diff --git a/test/framework/cluster.go b/test/framework/cluster.go index 565d358c1996..f3a7a8e18b8c 100644 --- a/test/framework/cluster.go +++ b/test/framework/cluster.go @@ -69,6 +69,7 @@ const ( hardwareCsvPath = "hardware.csv" EksaPackagesInstallation = "eks-anywhere-packages" bundleReleasePathFromArtifacts = "./eks-anywhere-downloads/bundle-release.yaml" + releaseV022 = "v0.22.0" ) //go:embed testdata/oidc-roles.yaml @@ -144,11 +145,6 @@ func NewClusterE2ETest(t T, provider Provider, opts ...ClusterE2ETestOpt) *Clust e.ClusterConfigLocation = filepath.Join(e.ClusterConfigFolder, e.ClusterName+"-eks-a.yaml") - licenseToken := getLicenseToken() - if licenseToken != "" { - e.clusterFillers = append(e.clusterFillers, api.WithLicenseToken(licenseToken)) - } - if err := os.MkdirAll(e.ClusterConfigFolder, os.ModePerm); err != nil { t.Fatalf("Failed creating cluster config folder for test: %s", err) } @@ -357,6 +353,10 @@ type Provider interface { } func (e *ClusterE2ETest) GenerateClusterConfig(opts ...CommandOpt) { + licenseToken := getLicenseToken() + if licenseToken != "" { + e.clusterFillers = append(e.clusterFillers, api.WithLicenseToken(licenseToken)) + } e.GenerateClusterConfigForVersion("", opts...) } @@ -481,9 +481,23 @@ func (e *ClusterE2ETest) generateHardwareConfig(opts ...CommandOpt) { func (e *ClusterE2ETest) GenerateClusterConfigForVersion(eksaVersion string, opts ...CommandOpt) { e.generateClusterConfigObjects(opts...) if eksaVersion != "" { - err := cleanUpClusterForVersion(e.ClusterConfig, eksaVersion) + // LicenseToken field was introduced in cluster spec only in release-22 + // attempting to populate the field for any prior versions would break the api. + // We will need the conditional check as long as the latest minor is 'v0.21.*'. + currentSemver, err := semver.New(eksaVersion) if err != nil { - e.T.Fatal(err) + e.T.Fatal("parsing esk-a version", err) + } + semverV022, err := semver.New(releaseV022) + if err != nil { + e.T.Fatal("parsing esk-a version", err) + } + + if currentSemver.Compare(semverV022) != -1 { + licenseToken := getLicenseToken() + if licenseToken != "" { + e.clusterFillers = append(e.clusterFillers, api.WithLicenseToken(licenseToken)) + } } }