From 09975a6f24cc965fd86f7ac9071d7fd05780a712 Mon Sep 17 00:00:00 2001 From: Xianping Date: Sat, 2 Mar 2024 23:38:20 +0800 Subject: [PATCH] add UTKG acc test case Signed-off-by: Xianping add cluster nodepool acc test case --- .../tanzukubernetescluster/helper.go | 9 +++- .../tests/cluster_env_vars.go | 8 ++++ .../tests/resource_tf_configs.go | 19 +++++--- .../tests/tanzu_kubernetes_cluster_test.go | 48 ++++++++++++++----- 4 files changed, 64 insertions(+), 20 deletions(-) diff --git a/internal/resources/tanzukubernetescluster/helper.go b/internal/resources/tanzukubernetescluster/helper.go index 2be45ee36..260d743c9 100644 --- a/internal/resources/tanzukubernetescluster/helper.go +++ b/internal/resources/tanzukubernetescluster/helper.go @@ -9,6 +9,7 @@ import ( "context" "encoding/json" "fmt" + "log" "time" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -115,7 +116,9 @@ func waitClusterReady(ctx context.Context, config *authctx.TanzuContext, cluster } for !isStopStatus { - time.Sleep(5 * time.Second) + log.Printf("[INFO] waitClusterReady------waiting 30 seconds---------") + + time.Sleep(30 * time.Second) err := ctx.Err() @@ -193,7 +196,9 @@ func waitNodePoolsReady(ctx context.Context, config *authctx.TanzuContext, clust } if !nodePoolsReady { - time.Sleep(5 * time.Second) + log.Printf("[INFO] waitNodePoolsReady------waiting 30 seconds---------") + + time.Sleep(30 * time.Second) err := ctx.Err() diff --git a/internal/resources/tanzukubernetescluster/tests/cluster_env_vars.go b/internal/resources/tanzukubernetescluster/tests/cluster_env_vars.go index 1154f38e6..e176f1c10 100644 --- a/internal/resources/tanzukubernetescluster/tests/cluster_env_vars.go +++ b/internal/resources/tanzukubernetescluster/tests/cluster_env_vars.go @@ -20,6 +20,8 @@ const ( TKGMManagementClusterNameEnv ClusterEnvVar = "TKGM_MANAGEMENT_CLUSTER_NAME" TKGMProvisionerNameEnv ClusterEnvVar = "TKGM_PROVISIONER_NAME" TKGMClusterVersionEnv ClusterEnvVar = "TKGM_CLUSTER_VERSION" + TKGMClusterUpgradeVersionEnv ClusterEnvVar = "TKGM_CLUSTER_UPGRADE_VERSION" + TKGMClusterUpdateGroupEnv ClusterEnvVar = "TKGM_CLUSTER_UPDATE_GROUP" TKGMClusterClassEnv ClusterEnvVar = "TKGM_CLUSTER_CLASS" TKGMClusterVariablesEnv ClusterEnvVar = "TKGM_CLUSTER_VARIABLES" TKGMOSImageNameEnv ClusterEnvVar = "TKGM_OS_IMAGE_NAME" @@ -32,6 +34,8 @@ const ( TKGSManagementClusterNameEnv ClusterEnvVar = "TKGS_MANAGEMENT_CLUSTER_NAME" TKGSProvisionerNameEnv ClusterEnvVar = "TKGS_PROVISIONER_NAME" TKGSClusterVersionEnv ClusterEnvVar = "TKGS_CLUSTER_VERSION" + TKGSClusterUpgradeVersionEnv ClusterEnvVar = "TKGS_CLUSTER_UPGRADE_VERSION" + TKGSClusterUpdateGroupEnv ClusterEnvVar = "TKGS_CLUSTER_UPDATE_GROUP" TKGSClusterClassEnv ClusterEnvVar = "TKGS_CLUSTER_CLASS" TKGSClusterVariablesEnv ClusterEnvVar = "TKGS_CLUSTER_VARIABLES" TKGSOSImageNameEnv ClusterEnvVar = "TKGS_OS_IMAGE_NAME" @@ -58,6 +62,8 @@ var ( TKGMManagementClusterNameEnv: true, TKGMProvisionerNameEnv: true, TKGMClusterVersionEnv: true, + TKGMClusterUpgradeVersionEnv: true, + TKGMClusterUpdateGroupEnv: true, TKGMClusterClassEnv: true, TKGMClusterVariablesEnv: true, TKGMOSImageNameEnv: true, @@ -74,6 +80,8 @@ var ( TKGSManagementClusterNameEnv: true, TKGSProvisionerNameEnv: true, TKGSClusterVersionEnv: true, + TKGSClusterUpgradeVersionEnv: true, + TKGSClusterUpdateGroupEnv: true, TKGSClusterClassEnv: true, TKGSClusterVariablesEnv: true, TKGSOSImageNameEnv: true, diff --git a/internal/resources/tanzukubernetescluster/tests/resource_tf_configs.go b/internal/resources/tanzukubernetescluster/tests/resource_tf_configs.go index 0021d49ba..adf490ae2 100644 --- a/internal/resources/tanzukubernetescluster/tests/resource_tf_configs.go +++ b/internal/resources/tanzukubernetescluster/tests/resource_tf_configs.go @@ -38,7 +38,7 @@ func InitResourceTFConfigBuilder() *ResourceTFConfigBuilder { spec { worker_class = "%s" - replicas = 1 + replicas = %d overrides = jsonencode(%s) meta { @@ -59,7 +59,7 @@ func InitResourceTFConfigBuilder() *ResourceTFConfigBuilder { return tfConfigBuilder } -func (builder *ResourceTFConfigBuilder) GetTKGMClusterConfig(tkgmEnvVars map[ClusterEnvVar]string, nodePoolsNum int) string { +func (builder *ResourceTFConfigBuilder) GetTKGMClusterConfig(tkgmEnvVars map[ClusterEnvVar]string, nodePoolsNum int, clusterGroup, clusterVersion string) string { nodePools := builder.BuildNodePools(tkgmEnvVars[TKGMWorkerClassEnv], tkgmEnvVars[TKGMNodePoolOverridesEnv], tkgmEnvVars[TKGMOSImageNameEnv], tkgmEnvVars[TKGMOSImageVersionEnv], tkgmEnvVars[TKGMOSImageArchEnv], nodePoolsNum) @@ -71,6 +71,8 @@ func (builder *ResourceTFConfigBuilder) GetTKGMClusterConfig(tkgmEnvVars map[Clu provisioner_name = "%s" spec { + cluster_group_name = "%s" + topology { version = "%s" cluster_class = "%s" @@ -129,7 +131,8 @@ func (builder *ResourceTFConfigBuilder) GetTKGMClusterConfig(tkgmEnvVars map[Clu TKGMClusterName, tkgmEnvVars[TKGMManagementClusterNameEnv], tkgmEnvVars[TKGMProvisionerNameEnv], - tkgmEnvVars[TKGMClusterVersionEnv], + clusterGroup, + clusterVersion, tkgmEnvVars[TKGMClusterClassEnv], tkgmEnvVars[TKGMClusterVariablesEnv], tkgmEnvVars[TKGMOSImageNameEnv], @@ -139,7 +142,7 @@ func (builder *ResourceTFConfigBuilder) GetTKGMClusterConfig(tkgmEnvVars map[Clu ) } -func (builder *ResourceTFConfigBuilder) GetTKGSClusterConfig(tkgsEnvVars map[ClusterEnvVar]string, nodePoolsNum int) string { +func (builder *ResourceTFConfigBuilder) GetTKGSClusterConfig(tkgsEnvVars map[ClusterEnvVar]string, nodePoolsNum int, clusterGroup, clusterVersion string) string { nodePools := builder.BuildNodePools(tkgsEnvVars[TKGSWorkerClassEnv], tkgsEnvVars[TKGSNodePoolOverridesEnv], tkgsEnvVars[TKGSOSImageNameEnv], tkgsEnvVars[TKGSOSImageVersionEnv], tkgsEnvVars[TKGSOSImageArchEnv], nodePoolsNum) @@ -151,6 +154,8 @@ func (builder *ResourceTFConfigBuilder) GetTKGSClusterConfig(tkgsEnvVars map[Clu provisioner_name = "%s" spec { + cluster_group_name = "%s" + topology { version = "%s" cluster_class = "%s" @@ -194,7 +199,8 @@ func (builder *ResourceTFConfigBuilder) GetTKGSClusterConfig(tkgsEnvVars map[Clu TKGSClusterName, tkgsEnvVars[TKGSManagementClusterNameEnv], tkgsEnvVars[TKGSProvisionerNameEnv], - tkgsEnvVars[TKGSClusterVersionEnv], + clusterGroup, + clusterVersion, tkgsEnvVars[TKGSClusterClassEnv], tkgsEnvVars[TKGSClusterVariablesEnv], tkgsEnvVars[TKGSOSImageNameEnv], @@ -209,7 +215,8 @@ func (builder *ResourceTFConfigBuilder) BuildNodePools(workerClass string, overr nodePools := "" for i := 0; i < nodePoolsNum; i++ { - np := fmt.Sprintf(builder.NodePoolDefinition, i, workerClass, overrides, osImageName, osImageVersion, osImageArch) + replica := nodePoolsNum + np := fmt.Sprintf(builder.NodePoolDefinition, i, workerClass, replica, overrides, osImageName, osImageVersion, osImageArch) nodePools = fmt.Sprintf("%s\n%s", nodePools, np) } diff --git a/internal/resources/tanzukubernetescluster/tests/tanzu_kubernetes_cluster_test.go b/internal/resources/tanzukubernetescluster/tests/tanzu_kubernetes_cluster_test.go index 1bfe69a9f..cecd3006f 100644 --- a/internal/resources/tanzukubernetescluster/tests/tanzu_kubernetes_cluster_test.go +++ b/internal/resources/tanzukubernetescluster/tests/tanzu_kubernetes_cluster_test.go @@ -58,8 +58,8 @@ func TestAcceptanceUTKGResource(t *testing.T) { var ( provider = initTestProvider(t) tfResourceConfigBuilder = InitResourceTFConfigBuilder() - tkgmEnvironmentVars = environmentVars[TKGMClusterType] - tkgsEnvironmentVars = environmentVars[TKGSClusterType] + // tkgmEnvironmentVars = environmentVars[TKGMClusterType] + tkgsEnvironmentVars = environmentVars[TKGSClusterType] ) resource.Test(t, resource.TestCase{ @@ -67,24 +67,48 @@ func TestAcceptanceUTKGResource(t *testing.T) { ProviderFactories: testhelper.GetTestProviderFactories(provider), CheckDestroy: nil, Steps: []resource.TestStep{ + // { + // Config: tfResourceConfigBuilder.GetTKGMClusterConfig(tkgmEnvironmentVars, 1, "default", tkgmEnvironmentVars[TKGMClusterVersionEnv]), + // Check: resource.ComposeTestCheckFunc( + // resource.TestCheckResourceAttr(TKGMClusterResourceFullName, "name", TKGMClusterName), + // verifyTanzuKubernetesClusterResourceCreation(provider, TKGMClusterResourceFullName, tkgmEnvironmentVars[TKGMManagementClusterNameEnv], + // tkgmEnvironmentVars[TKGMProvisionerNameEnv], TKGMClusterName), + // ), + // }, + // { + // Config: tfResourceConfigBuilder.GetTKGMClusterConfig(tkgmEnvironmentVars, 2, "default", tkgmEnvironmentVars[TKGMClusterVersionEnv]), + // Check: resource.ComposeTestCheckFunc( + // resource.TestCheckResourceAttr(TKGMClusterResourceFullName, "name", TKGMClusterName), + // verifyTanzuKubernetesClusterResourceCreation(provider, TKGMClusterResourceFullName, tkgmEnvironmentVars[TKGMManagementClusterNameEnv], + // tkgmEnvironmentVars[TKGMProvisionerNameEnv], TKGMClusterName), + // ), + // }, + // { + // Config: tfResourceConfigBuilder.GetTKGMClusterConfig(tkgmEnvironmentVars, 1, tkgmEnvironmentVars[TKGMClusterUpdateGroupEnv], tkgmEnvironmentVars[TKGMClusterUpgradeVersionEnv]), + // Check: resource.ComposeTestCheckFunc( + // resource.TestCheckResourceAttr(TKGMClusterResourceFullName, "name", TKGMClusterName), + // verifyTanzuKubernetesClusterResourceCreation(provider, TKGMClusterResourceFullName, tkgmEnvironmentVars[TKGMManagementClusterNameEnv], + // tkgmEnvironmentVars[TKGMProvisionerNameEnv], TKGMClusterName), + // ), + // }, { - Config: tfResourceConfigBuilder.GetTKGMClusterConfig(tkgmEnvironmentVars, 1), + Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 1, "default", tkgsEnvironmentVars[TKGSClusterVersionEnv]), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(TKGMClusterResourceFullName, "name", TKGMClusterName), - verifyTanzuKubernetesClusterResourceCreation(provider, TKGMClusterResourceFullName, tkgmEnvironmentVars[TKGMManagementClusterNameEnv], - tkgmEnvironmentVars[TKGMProvisionerNameEnv], TKGMClusterName), + resource.TestCheckResourceAttr(TKGSClusterResourceFullName, "name", TKGSClusterName), + verifyTanzuKubernetesClusterResourceCreation(provider, TKGSClusterResourceFullName, tkgsEnvironmentVars[TKGSManagementClusterNameEnv], + tkgsEnvironmentVars[TKGSProvisionerNameEnv], TKGSClusterName), ), }, { - Config: tfResourceConfigBuilder.GetTKGMClusterConfig(tkgmEnvironmentVars, 2), + Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 1, tkgsEnvironmentVars[TKGSClusterUpdateGroupEnv], tkgsEnvironmentVars[TKGSClusterUpgradeVersionEnv]), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(TKGMClusterResourceFullName, "name", TKGMClusterName), - verifyTanzuKubernetesClusterResourceCreation(provider, TKGMClusterResourceFullName, tkgmEnvironmentVars[TKGMManagementClusterNameEnv], - tkgmEnvironmentVars[TKGMProvisionerNameEnv], TKGMClusterName), + resource.TestCheckResourceAttr(TKGSClusterResourceFullName, "name", TKGSClusterName), + verifyTanzuKubernetesClusterResourceCreation(provider, TKGSClusterResourceFullName, tkgsEnvironmentVars[TKGSManagementClusterNameEnv], + tkgsEnvironmentVars[TKGSProvisionerNameEnv], TKGSClusterName), ), }, { - Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 1), + Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 2, tkgsEnvironmentVars[TKGSClusterUpdateGroupEnv], tkgsEnvironmentVars[TKGSClusterUpgradeVersionEnv]), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr(TKGSClusterResourceFullName, "name", TKGSClusterName), verifyTanzuKubernetesClusterResourceCreation(provider, TKGSClusterResourceFullName, tkgsEnvironmentVars[TKGSManagementClusterNameEnv], @@ -92,7 +116,7 @@ func TestAcceptanceUTKGResource(t *testing.T) { ), }, { - Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 2), + Config: tfResourceConfigBuilder.GetTKGSClusterConfig(tkgsEnvironmentVars, 1, "default", tkgsEnvironmentVars[TKGSClusterUpgradeVersionEnv]), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr(TKGSClusterResourceFullName, "name", TKGSClusterName), verifyTanzuKubernetesClusterResourceCreation(provider, TKGSClusterResourceFullName, tkgsEnvironmentVars[TKGSManagementClusterNameEnv],