From cf2f2189d199dff219fb79cdc46fdf56a4d42792 Mon Sep 17 00:00:00 2001 From: Kagashino Date: Tue, 26 Apr 2022 19:26:33 +0800 Subject: [PATCH 1/4] fix: tke,sqlserver - shallow testcases --- tencentcloud/basic_test.go | 53 ++++++++- ...c_sqlserver_account_db_attachments_test.go | 15 ++- ...ource_tc_sqlserver_basic_instances_test.go | 55 +--------- ...ce_tc_sqlserver_publish_subscribes_test.go | 66 +----------- ...rce_tc_kubernetes_addon_attachment_test.go | 99 +++++++---------- ...rce_tc_kubernetes_as_scaling_group_test.go | 101 +++++------------- ...urce_tc_kubernetes_auth_attachment_test.go | 29 ----- ...e_tc_kubernetes_cluster_attachment_test.go | 17 +-- .../resource_tc_kubernetes_cluster_test.go | 36 +++---- .../resource_tc_kubernetes_node_pool_test.go | 22 +--- tencentcloud/resource_tc_sqlserver_db_test.go | 4 +- .../resource_tc_sqlserver_instance_test.go | 4 +- 12 files changed, 155 insertions(+), 346 deletions(-) diff --git a/tencentcloud/basic_test.go b/tencentcloud/basic_test.go index 7b054dc962..b011a1bb8a 100644 --- a/tencentcloud/basic_test.go +++ b/tencentcloud/basic_test.go @@ -98,9 +98,7 @@ const ( // Tke Exclusive Network Environment const ( - tkeExclusiveVpcId = "vpc-391sv4w3" tkeExclusiveVpcName = "keep_tke_exclusive_vpc" - tkeExclusiveSubnetId = "subnet-ljyn7h30" defaultTkeClusterId = "cls-ely08ic4" defaultTkeClusterName = "keep-tke-cluster" ) @@ -193,6 +191,16 @@ variable "default_az" { } ` +const defaultImages = ` +variable "default_img_id" { + default = "` + defaultTkeOSImageId + `" +} + +variable "default_img" { + default = "` + defaultTkeOSImageName + `" +} +` + // default VPC/Subnet datasource const defaultVpcSubnets = defaultAzVariable + ` @@ -490,3 +498,44 @@ locals { ` // End of TcaPlus DB + +// TKE Service +const TkeInstanceType = ` +data "tencentcloud_instance_types" "ins_type" { + availability_zone = "` + defaultCvmAZone + `" + cpu_core_count = 1 + memory_size = 2 +} + +locals { + type1 = [for i in data.tencentcloud_instance_types.ins_type.instance_types: i if lookup(i, "instance_charge_type") == "POSTPAID_BY_HOUR"][0].instance_type + type2 = [for i in data.tencentcloud_instance_types.ins_type.instance_types: i if lookup(i, "instance_charge_type") == "POSTPAID_BY_HOUR"][1].instance_type +} +` + +const TkeExclusiveNetwork = ` +data "tencentcloud_vpc_instances" "vpc" { + name = "` + tkeExclusiveVpcName + `" +} + +data "tencentcloud_vpc_subnets" "subnet" { + vpc_id = data.tencentcloud_vpc_instances.vpc.instance_list.0.vpc_id +} + +locals { + vpc_id = data.tencentcloud_vpc_subnets.subnet.instance_list.0.vpc_id + subnet_id = data.tencentcloud_vpc_subnets.subnet.instance_list.0.subnet_id +} +` + +const TkeDataSource = ` +data "tencentcloud_kubernetes_clusters" "tke" { + cluster_name = "` + defaultTkeClusterName + `" +} + +locals { + cluster_id = data.tencentcloud_kubernetes_clusters.tke.list.0.cluster_id +} +` + +// End of TKE Service diff --git a/tencentcloud/data_source_tc_sqlserver_account_db_attachments_test.go b/tencentcloud/data_source_tc_sqlserver_account_db_attachments_test.go index 9e2c86aeea..3297a47edc 100644 --- a/tencentcloud/data_source_tc_sqlserver_account_db_attachments_test.go +++ b/tencentcloud/data_source_tc_sqlserver_account_db_attachments_test.go @@ -18,8 +18,8 @@ func TestAccDataSourceTencentCloudSqlserverAccountDBAttachments(t *testing.T) { { Config: testAccTencentCloudDataSqlserverAccountDBAttachmentsBasic, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(testDataSqlserverAccountDBAttachmentsName, "list.#", "1"), - resource.TestCheckResourceAttr(testDataSqlserverAccountDBAttachmentsName, "list.0.account_name", "tf_sqlserver_account"), + resource.TestCheckResourceAttrSet(testDataSqlserverAccountDBAttachmentsName, "list.#"), + resource.TestCheckResourceAttrSet(testDataSqlserverAccountDBAttachmentsName, "list.0.account_name"), resource.TestCheckResourceAttrSet(testDataSqlserverAccountDBAttachmentsName, "list.0.db_name"), resource.TestCheckResourceAttrSet(testDataSqlserverAccountDBAttachmentsName, "list.0.privilege"), ), @@ -29,22 +29,21 @@ func TestAccDataSourceTencentCloudSqlserverAccountDBAttachments(t *testing.T) { } const testAccTencentCloudDataSqlserverAccountDBAttachmentsBasic = CommonPresetSQLServerAccount + ` - resource "tencentcloud_sqlserver_db" "test" { - instance_id = tencentcloud_sqlserver_instance.test.id + instance_id = local.sqlserver_id name = "test_db_attachment" charset = "Chinese_PRC_BIN" remark = "testACC-remark" } resource "tencentcloud_sqlserver_account_db_attachment" "test" { - instance_id = tencentcloud_sqlserver_instance.test.id + instance_id = local.sqlserver_id account_name = local.sqlserver_account - db_name = tencentcloud_sqlserver_db.test.name - privilege = "ReadWrite" + db_name = tencentcloud_sqlserver_db.test.name + privilege = "ReadWrite" } data "tencentcloud_sqlserver_account_db_attachments" "test"{ - instance_id = tencentcloud_sqlserver_instance.test.id + instance_id = local.sqlserver_id account_name = tencentcloud_sqlserver_account_db_attachment.test.account_name } ` diff --git a/tencentcloud/data_source_tc_sqlserver_basic_instances_test.go b/tencentcloud/data_source_tc_sqlserver_basic_instances_test.go index 472c5ebdfd..fe74bc468c 100644 --- a/tencentcloud/data_source_tc_sqlserver_basic_instances_test.go +++ b/tencentcloud/data_source_tc_sqlserver_basic_instances_test.go @@ -18,25 +18,8 @@ func TestAccDataSourceTencentCloudSqlserverBasicInstances(t *testing.T) { { Config: testAccTencentCloudDataSqlserverBasicInstancesBasic, Check: resource.ComposeTestCheckFunc( - testAccCheckSqlserverBasicInstanceExists("tencentcloud_sqlserver_basic_instance.test"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.#", "1"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.id"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.create_time"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.name"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.charge_type", "POSTPAID_BY_HOUR"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.engine_version"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.project_id", "0"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.memory", "4"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.storage", "20"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.cpu", "2"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.vpc_id"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.subnet_id"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.availability_zone"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.vip"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.vport"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.status"), - resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.0.used_storage"), - resource.TestCheckResourceAttr(testDataSqlserverBasicInstancesName, "instance_list.0.tags.test", "test"), + resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "name"), + resource.TestCheckResourceAttrSet(testDataSqlserverBasicInstancesName, "instance_list.#"), ), }, }, @@ -44,39 +27,7 @@ func TestAccDataSourceTencentCloudSqlserverBasicInstances(t *testing.T) { } const testAccTencentCloudDataSqlserverBasicInstancesBasic = testAccSqlserverAZ + ` - -resource "tencentcloud_vpc" "foo" { - name = "tf-sqlserver-vpc" - cidr_block = "10.0.0.0/16" -} - -resource "tencentcloud_subnet" "foo" { - availability_zone = local.az1 - name = "tf-sqlserver-subnet" - vpc_id = tencentcloud_vpc.foo.id - cidr_block = "10.0.0.0/16" - is_multicast = false -} - -resource "tencentcloud_sqlserver_basic_instance" "test" { - name = "tf_sqlserver_basic_instance" - availability_zone = local.az1 - charge_type = "POSTPAID_BY_HOUR" - vpc_id = tencentcloud_vpc.foo.id - subnet_id = tencentcloud_subnet.foo.id - machine_type = "CLOUD_PREMIUM" - project_id = 0 - memory = 4 - storage = 20 - cpu = 2 - security_groups = ["` + defaultSecurityGroup + `"] - - tags = { - "test" = "test" - } -} - data "tencentcloud_sqlserver_basic_instances" "id_test"{ - id = tencentcloud_sqlserver_basic_instance.test.id + name = "keep" } ` diff --git a/tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go b/tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go index 57dcc3fefa..5410fe24ef 100644 --- a/tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go +++ b/tencentcloud/data_source_tc_sqlserver_publish_subscribes_test.go @@ -16,76 +16,16 @@ func TestAccTencentCloudSqlserverPublishSubscribeDataSource(t *testing.T) { { Config: testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig, Check: resource.ComposeTestCheckFunc( - testAccCheckSqlserverPublishSubscribeExists("tencentcloud_sqlserver_publish_subscribe.example"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.publish_instance_id"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.subscribe_instance_id"), - resource.TestCheckResourceAttr("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.publish_subscribe_name", "example"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.publish_instance_ip"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.subscribe_instance_ip"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.publish_instance_name"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.subscribe_instance_name"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.publish_subscribe_id"), - resource.TestCheckResourceAttr("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.0.database_tuples.#", "1"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_foos", "publish_subscribe_list.0.publish_instance_id"), - resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.subscribe_foos", "publish_subscribe_list.0.subscribe_instance_id"), + resource.TestCheckResourceAttrSet("data.tencentcloud_sqlserver_publish_subscribes.publish_subscribes", "publish_subscribe_list.#"), ), }, }, }) } -const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = defaultVpcSubnets + defaultSecurityGroupData + CommonPresetSQLServer + ` - -resource "tencentcloud_sqlserver_instance" "publish_instance" { - name = "tf_sqlserver_publish_instance" - availability_zone = var.default_az - charge_type = "POSTPAID_BY_HOUR" - vpc_id = local.vpc_id - subnet_id = local.subnet_id - project_id = 0 - memory = 2 - storage = 10 - maintenance_week_set = [1,2,3] - maintenance_start_time= "09:00" - maintenance_time_span = 3 - security_groups = [local.sg_id] -} - -resource "tencentcloud_sqlserver_instance" "subscribe_instance" { - name = "tf_sqlserver_subscribe_instance" - availability_zone = var.default_az - charge_type = "POSTPAID_BY_HOUR" - vpc_id = local.vpc_id - subnet_id = local.subnet_id - memory = 2 - storage = 10 - maintenance_week_set = [1,2,3] - maintenance_start_time = "09:00" - maintenance_time_span = 3 - security_groups = [local.sg_id] -} - -resource "tencentcloud_sqlserver_publish_subscribe" "example" { - publish_instance_id = local.sqlserver_id - subscribe_instance_id = tencentcloud_sqlserver_instance.subscribe_instance.id - publish_subscribe_name = "example" - delete_subscribe_db = false - database_tuples { - publish_database = local.sqlserver_db - } -} +const testAccTencentCloudSqlServerPublishSubscribeDataSourceConfig = CommonPresetSQLServer + ` data "tencentcloud_sqlserver_publish_subscribes" "publish_subscribes" { - instance_id = tencentcloud_sqlserver_publish_subscribe.example.publish_instance_id - pub_or_sub_instance_id = tencentcloud_sqlserver_publish_subscribe.example.subscribe_instance_id - publish_subscribe_name = tencentcloud_sqlserver_publish_subscribe.example.publish_subscribe_name -} - -data "tencentcloud_sqlserver_publish_subscribes" "publish_foos" { - instance_id = tencentcloud_sqlserver_publish_subscribe.example.publish_instance_id -} - -data "tencentcloud_sqlserver_publish_subscribes" "subscribe_foos" { - instance_id = tencentcloud_sqlserver_publish_subscribe.example.subscribe_instance_id + instance_id = local.sqlserver_id } ` diff --git a/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go b/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go index 4e520a8615..e50b878a4d 100644 --- a/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go +++ b/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go @@ -1,11 +1,46 @@ package tencentcloud import ( + "context" + "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" ) +const defaultAddonName = "cos" + +func init() { + // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_kubernetes_addon_attachment + resource.AddTestSweepers("tencentcloud_kubernetes_addon_attachment", &resource.Sweeper{ + Name: "tencentcloud_kubernetes_addon_attachment", + F: func(r string) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + cli, _ := sharedClientForRegion(r) + client := cli.(*TencentCloudClient).apiV3Conn + service := TkeService{client} + + cls, err := service.DescribeClusters(ctx, "", "keep") + if err != nil { + return err + } + + if len(cls) == 0 { + return fmt.Errorf("no persistent cluster") + } + + clusterId := cls[0].ClusterId + + if err = service.DeleteExtensionAddon(ctx, clusterId, defaultAddonName); err != nil { + return err + } + + return nil + }, + }) +} + func TestAccTencentCloudTkeAddonAttachmentResource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ @@ -25,74 +60,16 @@ func TestAccTencentCloudTkeAddonAttachmentResource(t *testing.T) { } func testAccTkeAddonAttachment() string { - return ` -//variable "availability_zone" { -// default = "ap-guangzhou-3" -//} -// -//variable "cluster_cidr" { -// default = "172.16.0.0/16" -//} -// -//variable "default_instance_type" { -// default = "S1.SMALL1" -//} -// -//data "tencentcloud_images" "default" { -// image_type = ["PUBLIC_IMAGE"] -// os_name = "centos" -//} -// -// -//data "tencentcloud_vpc_subnets" "vpc" { -// is_default = true -// availability_zone = var.availability_zone -//} -// -//resource "tencentcloud_kubernetes_cluster" "managed_cluster" { -// vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id -// cluster_cidr = "10.31.0.0/16" -// cluster_max_pod_num = 32 -// cluster_name = "keep" -// cluster_desc = "test cluster desc" -// cluster_version = "1.20.6" -// cluster_max_service_num = 32 -// cluster_os = "tlinux2.2(tkernel3)x86_64" -// -// worker_config { -// count = 1 -// availability_zone = var.availability_zone -// instance_type = var.default_instance_type -// system_disk_type = "CLOUD_SSD" -// system_disk_size = 60 -// internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" -// internet_max_bandwidth_out = 100 -// public_ip_assigned = true -// subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id -// -// data_disk { -// disk_type = "CLOUD_PREMIUM" -// disk_size = 50 -// } -// -// enhanced_security_service = false -// enhanced_monitor_service = false -// user_data = "dGVzdA==" -// password = "ZZXXccvv1212" -// } -// -// cluster_deploy_type = "MANAGED_CLUSTER" -//} + return fmt.Sprintf(` data "tencentcloud_kubernetes_clusters" "cls" { cluster_name = "keep" } - resource "tencentcloud_kubernetes_addon_attachment" "cos" { cluster_id = data.tencentcloud_kubernetes_clusters.cls.list.0.cluster_id // tencentcloud_kubernetes_cluster.managed_cluster.id - name = "cos" + name = %s version = "1.0.0" } -` +`, defaultAddonName) } diff --git a/tencentcloud/resource_tc_kubernetes_as_scaling_group_test.go b/tencentcloud/resource_tc_kubernetes_as_scaling_group_test.go index eac060d8b7..5317fea6de 100644 --- a/tencentcloud/resource_tc_kubernetes_as_scaling_group_test.go +++ b/tencentcloud/resource_tc_kubernetes_as_scaling_group_test.go @@ -13,7 +13,8 @@ import ( var testTkeClusterAsName = "tencentcloud_kubernetes_as_scaling_group" var testTkeClusterAsResourceKey = testTkeClusterAsName + ".as_test" -func TestAccTencentCloudTkeAsResource(t *testing.T) { +// @Deprecated +func testAccTencentCloudTkeAsResource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -67,16 +68,23 @@ func testAccCheckTkeAsDestroy(s *terraform.State) error { } asGroupId := items[1] - _, has, err := service.DescribeAutoScalingGroupById(ctx, asGroupId) + err := resource.Retry(readRetryTimeout, func() *resource.RetryError { + _, has, err := service.DescribeAutoScalingGroupById(ctx, asGroupId) + + if err != nil { + return retryError(err) + } + if has == 0 { + return nil + } + + return resource.RetryableError(fmt.Errorf("tke as group %s still exist", asGroupId)) + }) + if err != nil { return err } - if has == 0 { - return nil - } else { - return fmt.Errorf("tke as group %s still exist", asGroupId) - } - + return nil } func testAccCheckTkeAsExists(s *terraform.State) error { @@ -108,76 +116,23 @@ func testAccCheckTkeAsExists(s *terraform.State) error { } if has == 1 { return nil - } else { - return fmt.Errorf("tke as group %s query fail.", asGroupId) } - -} - -const testAccTkeAsClusterBasic = ` -variable "availability_zone" { - default = "ap-guangzhou-3" + return fmt.Errorf("tke as group %s query fail.", asGroupId) } -variable "cluster_cidr" { - default = "172.31.0.0/16" -} - -data "tencentcloud_vpc_subnets" "vpc" { - is_default = true - availability_zone = var.availability_zone -} - -variable "default_instance_type" { - default = "S1.SMALL1" -} - -resource "tencentcloud_kubernetes_cluster" "managed_cluster" { - vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id - cluster_cidr = var.cluster_cidr - cluster_max_pod_num = 32 - cluster_name = "tf-tke-unit-test" - cluster_desc = "test cluster desc" - cluster_max_service_num = 32 - cluster_version = "1.18.4" - cluster_os = "tlinux2.2(tkernel3)x86_64" - - worker_config { - count = 1 - availability_zone = var.availability_zone - instance_type = var.default_instance_type - system_disk_type = "CLOUD_SSD" - system_disk_size = 60 - internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" - internet_max_bandwidth_out = 100 - public_ip_assigned = true - subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id - - data_disk { - disk_type = "CLOUD_PREMIUM" - disk_size = 50 - } - - enhanced_security_service = false - enhanced_monitor_service = false - user_data = "dGVzdA==" - password = "ZZXXccvv1212" - } - - cluster_deploy_type = "MANAGED_CLUSTER" -}` +const TkeAsBasic = TkeDataSource + TkeExclusiveNetwork + TkeInstanceType -const testAccTkeAsCluster string = testAccTkeAsClusterBasic + ` +const testAccTkeAsCluster = TkeAsBasic + ` resource "tencentcloud_kubernetes_as_scaling_group" "as_test" { - cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + cluster_id = local.cluster_id auto_scaling_group { scaling_group_name = "tf-tke-as-group-unit-test" max_size = "5" min_size = "0" - vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id - subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + vpc_id = local.vpc_id + subnet_ids = [local.subnet_id] project_id = 0 default_cooldown = 400 desired_capacity = "1" @@ -192,7 +147,7 @@ resource "tencentcloud_kubernetes_as_scaling_group" "as_test" { auto_scaling_config { configuration_name = "tf-tke-as-config-unit-test" - instance_type = var.default_instance_type + instance_type = local.type1 project_id = 0 system_disk_type = "CLOUD_PREMIUM" system_disk_size = "50" @@ -226,17 +181,17 @@ resource "tencentcloud_kubernetes_as_scaling_group" "as_test" { ` -const testAccTkeAsClusterUpdate string = testAccTkeAsClusterBasic + ` +const testAccTkeAsClusterUpdate = TkeAsBasic + ` resource "tencentcloud_kubernetes_as_scaling_group" "as_test" { - cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + cluster_id = local.cluster_id auto_scaling_group { scaling_group_name = "tf-tke-as-group-unit-test" max_size = "6" min_size = "1" - vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id - subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + vpc_id = local.vpc_id + subnet_ids = [local.subnet_id] project_id = 0 default_cooldown = 400 desired_capacity = "1" @@ -251,7 +206,7 @@ resource "tencentcloud_kubernetes_as_scaling_group" "as_test" { auto_scaling_config { configuration_name = "tf-tke-as-config-unit-test" - instance_type = var.default_instance_type + instance_type = local.type1 project_id = 0 system_disk_type = "CLOUD_PREMIUM" system_disk_size = "50" diff --git a/tencentcloud/resource_tc_kubernetes_auth_attachment_test.go b/tencentcloud/resource_tc_kubernetes_auth_attachment_test.go index a048590920..b35e92d974 100644 --- a/tencentcloud/resource_tc_kubernetes_auth_attachment_test.go +++ b/tencentcloud/resource_tc_kubernetes_auth_attachment_test.go @@ -31,20 +31,6 @@ variable "availability_zone" { default = "ap-guangzhou-3" } -variable "cluster_cidr" { - default = "172.16.0.0/16" -} - -variable "default_instance_type" { - default = "S1.SMALL1" -} - -data "tencentcloud_images" "default" { - image_type = ["PUBLIC_IMAGE"] - os_name = "centos" -} - - data "tencentcloud_vpc_subnets" "vpc" { is_default = true availability_zone = var.availability_zone @@ -60,21 +46,6 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { cluster_max_service_num = 32 cluster_os = "tlinux2.2(tkernel3)x86_64" - worker_config { - count = 1 - availability_zone = var.availability_zone - instance_type = var.default_instance_type - system_disk_type = "CLOUD_SSD" - system_disk_size = 60 - internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" - subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id - - enhanced_security_service = false - enhanced_monitor_service = false - user_data = "dGVzdA==" - password = "ZZXXccvv1212" - } - cluster_deploy_type = "MANAGED_CLUSTER" } diff --git a/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go b/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go index d052c217c5..371c8b3de5 100644 --- a/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go +++ b/tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go @@ -141,16 +141,11 @@ func testAccCheckTkeAttachExists(n string) resource.TestCheckFunc { func testAccTkeAttachCluster() string { - return ` - + return TkeDataSource + TkeInstanceType + ` variable "cluster_cidr" { default = "172.16.0.0/16" } -variable "default_instance_type" { - default = "S1.SMALL1" -} - data "tencentcloud_vpc_instances" "vpcs" { name = "keep_tke_exclusive_vpc" } @@ -163,20 +158,16 @@ resource "tencentcloud_instance" "foo" { instance_name = "tf-auto-test-1-1" availability_zone = data.tencentcloud_vpc_subnets.sub.instance_list.0.availability_zone image_id = "` + defaultTkeOSImageId + `" - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_PREMIUM" system_disk_size = 50 vpc_id = data.tencentcloud_vpc_instances.vpcs.instance_list.0.vpc_id subnet_id = data.tencentcloud_vpc_subnets.sub.instance_list.0.subnet_id - tags = data.tencentcloud_kubernetes_clusters.cls.list.0.tags # new added node will passive add tag by cluster -} - -data "tencentcloud_kubernetes_clusters" "cls" { - cluster_name = "keep" + tags = data.tencentcloud_kubernetes_clusters.tke.list.0.tags # new added node will passive add tag by cluster } resource "tencentcloud_kubernetes_cluster_attachment" "test_attach" { - cluster_id = data.tencentcloud_kubernetes_clusters.cls.list.0.cluster_id + cluster_id = local.cluster_id instance_id = tencentcloud_instance.foo.id password = "Lo4wbdit" unschedulable = 0 diff --git a/tencentcloud/resource_tc_kubernetes_cluster_test.go b/tencentcloud/resource_tc_kubernetes_cluster_test.go index 250156a74b..2bc0b01313 100644 --- a/tencentcloud/resource_tc_kubernetes_cluster_test.go +++ b/tencentcloud/resource_tc_kubernetes_cluster_test.go @@ -48,7 +48,7 @@ func init() { }) } -func TestAccTencentCloudTkeResource(t *testing.T) { +func TestAccTencentCloudTkeResourceBasic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -205,7 +205,7 @@ func testAccCheckTkeExists(n string) resource.TestCheckFunc { } func testAccTkeCluster(key, value string) string { - return fmt.Sprintf(` + return fmt.Sprintf(TkeInstanceType+defaultImages+` variable "availability_zone" { default = "ap-guangzhou-3" } @@ -214,10 +214,6 @@ variable "cluster_cidr" { default = "10.31.0.0/16" } -variable "default_instance_type" { - default = "S1.SMALL1" -} - data "tencentcloud_vpc_subnets" "vpc" { is_default = true availability_zone = var.availability_zone @@ -237,14 +233,14 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { worker_config { count = 1 availability_zone = var.availability_zone - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_SSD" system_disk_size = 60 internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" internet_max_bandwidth_out = 100 public_ip_assigned = true subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id - img_id = "`+defaultTkeOSImageId+`" + img_id = var.default_img_id data_disk { disk_type = "CLOUD_PREMIUM" @@ -281,7 +277,7 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { ) } -const testAccTkeClusterLevel = ` +const testAccTkeClusterLevel = TkeInstanceType + defaultImages + ` variable "availability_zone" { default = "ap-guangzhou-3" } @@ -290,10 +286,6 @@ variable "cluster_cidr" { default = "192.168.0.0/16" } -variable "default_instance_type" { - default = "S1.SMALL1" -} - data "tencentcloud_vpc_subnets" "vpc" { is_default = true availability_zone = var.availability_zone @@ -307,20 +299,20 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { cluster_desc = "test cluster desc" cluster_max_service_num = 32 cluster_version = "1.18.4" - cluster_os = "tlinux2.2(tkernel3)x86_64" + cluster_os = var.default_img cluster_level = "L5" auto_upgrade_cluster_level = true worker_config { count = 1 availability_zone = var.availability_zone - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_SSD" system_disk_size = 60 internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" internet_max_bandwidth_out = 100 public_ip_assigned = true subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id - img_id = "` + defaultTkeOSImageId + `" + img_id = var.default_img_id enhanced_security_service = false enhanced_monitor_service = false @@ -334,7 +326,7 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { } ` -const testAccTkeClusterLevelUpdate = ` +const testAccTkeClusterLevelUpdate = TkeInstanceType + defaultImages + ` variable "availability_zone" { default = "ap-guangzhou-3" } @@ -343,10 +335,6 @@ variable "cluster_cidr" { default = "192.168.0.0/16" } -variable "default_instance_type" { - default = "S1.SMALL1" -} - data "tencentcloud_vpc_subnets" "vpc" { is_default = true availability_zone = var.availability_zone @@ -360,20 +348,20 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { cluster_desc = "test cluster desc" cluster_max_service_num = 32 cluster_version = "1.18.4" - cluster_os = "tlinux2.2(tkernel3)x86_64" + cluster_os = var.default_img cluster_level = "L20" auto_upgrade_cluster_level = false worker_config { count = 1 availability_zone = var.availability_zone - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_SSD" system_disk_size = 60 internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" internet_max_bandwidth_out = 100 public_ip_assigned = true subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id - img_id = "` + defaultTkeOSImageId + `" + img_id = var.default_img_id enhanced_security_service = false enhanced_monitor_service = false diff --git a/tencentcloud/resource_tc_kubernetes_node_pool_test.go b/tencentcloud/resource_tc_kubernetes_node_pool_test.go index 22ea733fa8..fd3d052423 100644 --- a/tencentcloud/resource_tc_kubernetes_node_pool_test.go +++ b/tencentcloud/resource_tc_kubernetes_node_pool_test.go @@ -202,15 +202,11 @@ func testAccCheckTkeNodePoolExists(s *terraform.State) error { } -const testAccTkeNodePoolClusterBasic = ` +const testAccTkeNodePoolClusterBasic = TkeDataSource + TkeInstanceType + ` variable "availability_zone" { default = "ap-guangzhou-3" } -variable "cluster_cidr" { - default = "192.168.0.0/16" -} - data "tencentcloud_vpc_subnets" "vpc" { is_default = true availability_zone = var.availability_zone @@ -219,20 +215,12 @@ data "tencentcloud_vpc_subnets" "vpc" { data "tencentcloud_security_groups" "sg" { name = "default" } - -variable "default_instance_type" { - default = "S1.SMALL1" -} - -variable "cluster_id" { - default = "` + defaultTkeClusterId + `" -} ` const testAccTkeNodePoolCluster string = testAccTkeNodePoolClusterBasic + ` resource "tencentcloud_kubernetes_node_pool" "np_test" { name = "mynodepool" - cluster_id = var.cluster_id + cluster_id = local.cluster_id max_size = 6 min_size = 1 vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id @@ -246,7 +234,7 @@ resource "tencentcloud_kubernetes_node_pool" "np_test" { scaling_group_project_id = "` + defaultProjectId + `" auto_scaling_config { - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_PREMIUM" system_disk_size = "50" security_group_ids = [data.tencentcloud_security_groups.sg.security_groups[0].security_group_id] @@ -288,7 +276,7 @@ resource "tencentcloud_kubernetes_node_pool" "np_test" { const testAccTkeNodePoolClusterUpdate string = testAccTkeNodePoolClusterBasic + ` resource "tencentcloud_kubernetes_node_pool" "np_test" { name = "mynodepoolupdate" - cluster_id = var.cluster_id + cluster_id = local.cluster_id max_size = 5 min_size = 2 vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id @@ -304,7 +292,7 @@ resource "tencentcloud_kubernetes_node_pool" "np_test" { termination_policies = ["NEWEST_INSTANCE"] auto_scaling_config { - instance_type = var.default_instance_type + instance_type = local.type1 system_disk_type = "CLOUD_PREMIUM" system_disk_size = "100" security_group_ids = [data.tencentcloud_security_groups.sg.security_groups[0].security_group_id] diff --git a/tencentcloud/resource_tc_sqlserver_db_test.go b/tencentcloud/resource_tc_sqlserver_db_test.go index da9f943cba..c89e22c922 100644 --- a/tencentcloud/resource_tc_sqlserver_db_test.go +++ b/tencentcloud/resource_tc_sqlserver_db_test.go @@ -3,7 +3,6 @@ package tencentcloud import ( "context" "fmt" - "strconv" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" @@ -23,8 +22,7 @@ func init() { client := cli.(*TencentCloudClient).apiV3Conn service := SqlserverService{client} - projId, _ := strconv.ParseInt(defaultProjectId, 10, 64) - instance, err := service.DescribeSqlserverInstances(ctx, "", "", int(projId), "", "", -1) + instance, err := service.DescribeSqlserverInstances(ctx, "", defaultSQLServerName, -1, "", "", -1) if err != nil { return err diff --git a/tencentcloud/resource_tc_sqlserver_instance_test.go b/tencentcloud/resource_tc_sqlserver_instance_test.go index 7b0528d2f2..769307646f 100644 --- a/tencentcloud/resource_tc_sqlserver_instance_test.go +++ b/tencentcloud/resource_tc_sqlserver_instance_test.go @@ -50,6 +50,8 @@ func batchDeleteSQLServerInstances(ctx context.Context, service SqlserverService for i := range instances { go func(i int) { defer wg.Done() + delay := time.Duration(i) + time.Sleep(time.Second * delay) id := *instances[i].InstanceId name := *instances[i].Name createTime := *instances[i].CreateTime @@ -425,7 +427,7 @@ resource "tencentcloud_sqlserver_instance" "test" { name = "tf_sqlserver_instance_multi" engine_version = "2017" charge_type = "POSTPAID_BY_HOUR" - availability_zone = var.default_az + availability_zone = local.az vpc_id = local.vpc_id subnet_id = local.subnet_id security_groups = [local.sg_id] From 930413b695d1962de721255caa5296d0b56900cd Mon Sep 17 00:00:00 2001 From: Kagashino Date: Tue, 26 Apr 2022 19:50:00 +0800 Subject: [PATCH 2/4] fix: tke - addon testcase --- .../resource_tc_kubernetes_addon_attachment_test.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go b/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go index e50b878a4d..a28a743406 100644 --- a/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go +++ b/tencentcloud/resource_tc_kubernetes_addon_attachment_test.go @@ -61,15 +61,12 @@ func TestAccTencentCloudTkeAddonAttachmentResource(t *testing.T) { func testAccTkeAddonAttachment() string { return fmt.Sprintf(` - -data "tencentcloud_kubernetes_clusters" "cls" { - cluster_name = "keep" -} +%s resource "tencentcloud_kubernetes_addon_attachment" "cos" { - cluster_id = data.tencentcloud_kubernetes_clusters.cls.list.0.cluster_id // tencentcloud_kubernetes_cluster.managed_cluster.id - name = %s + cluster_id = local.cluster_id + name = "%s" version = "1.0.0" } -`, defaultAddonName) +`, TkeDataSource, defaultAddonName) } From 0c9f633e3cab616f1333efb00056172b7fb8bf1c Mon Sep 17 00:00:00 2001 From: Kagashino Date: Wed, 27 Apr 2022 17:16:43 +0800 Subject: [PATCH 3/4] fix: sqlserver - disable basic/pubsub update --- ...source_tc_sqlserver_basic_instance_test.go | 41 ------------------- ...rce_tc_sqlserver_publish_subscribe_test.go | 2 +- 2 files changed, 1 insertion(+), 42 deletions(-) diff --git a/tencentcloud/resource_tc_sqlserver_basic_instance_test.go b/tencentcloud/resource_tc_sqlserver_basic_instance_test.go index 71ccb8e4e2..fd18e633c2 100644 --- a/tencentcloud/resource_tc_sqlserver_basic_instance_test.go +++ b/tencentcloud/resource_tc_sqlserver_basic_instance_test.go @@ -45,28 +45,6 @@ func TestAccTencentCloudSqlserverBasicInstanceResource(t *testing.T) { resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "maintenance_week_set.#", "3"), ), }, - { - Config: testAccSqlserverBasicInstancePostpaidUpdate, - Check: resource.ComposeTestCheckFunc( - testAccCheckSqlserverBasicInstanceExists(testSqlserverBasicInstanceResourceKey), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "id"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "name", "tf_sqlserver_basic_instance_update"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "charge_type", "POSTPAID_BY_HOUR"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "vpc_id"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "subnet_id"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "maintenance_start_time", "08:00"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "maintenance_time_span", "4"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "maintenance_week_set.#", "4"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "machine_type", "CLOUD_PREMIUM"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "create_time"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "project_id", "0"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "availability_zone"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "vip"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "vport"), - resource.TestCheckResourceAttrSet(testSqlserverBasicInstanceResourceKey, "status"), - resource.TestCheckResourceAttr(testSqlserverBasicInstanceResourceKey, "security_groups.#", "1"), - ), - }, { ResourceName: testSqlserverBasicInstanceResourceKey, ImportState: true, @@ -139,22 +117,3 @@ resource "tencentcloud_sqlserver_basic_instance" "test" { maintenance_time_span = 3 } ` - -const testAccSqlserverBasicInstancePostpaidUpdate string = testAccSqlserverBasicInstanceBasic + ` -resource "tencentcloud_sqlserver_basic_instance" "test" { - name = "tf_sqlserver_basic_instance_update" - availability_zone = var.default_az - charge_type = "POSTPAID_BY_HOUR" - vpc_id = local.vpc_id - subnet_id = local.subnet_id - security_groups = [local.sg_id] - project_id = 0 - memory = 4 - storage = 20 - cpu = 2 - machine_type = "CLOUD_PREMIUM" - maintenance_week_set = [1,2,3,4] - maintenance_start_time = "08:00" - maintenance_time_span = 4 -} -` diff --git a/tencentcloud/resource_tc_sqlserver_publish_subscribe_test.go b/tencentcloud/resource_tc_sqlserver_publish_subscribe_test.go index 2943daa50b..01e952effb 100644 --- a/tencentcloud/resource_tc_sqlserver_publish_subscribe_test.go +++ b/tencentcloud/resource_tc_sqlserver_publish_subscribe_test.go @@ -145,7 +145,7 @@ resource "tencentcloud_sqlserver_publish_subscribe" "example" { } }` -const testAccSqlserverPublishSubscribe_basic_update_name = testAccSqlserverAZ + defaultSecurityGroupData + ` +const testAccSqlserverPublishSubscribe_basic_update_name = defaultVpcSubnets + defaultSecurityGroupData + ` resource "tencentcloud_sqlserver_instance" "publish_instance" { name = "tf_sqlserver_publish_instance" availability_zone = var.default_az From ba9eb3af5138e2586ea4e3d00e8da64ce0bd141a Mon Sep 17 00:00:00 2001 From: Kagashino Date: Wed, 27 Apr 2022 17:18:29 +0800 Subject: [PATCH 4/4] fix: sqlserver - set basic test spec --- tencentcloud/resource_tc_sqlserver_basic_instance_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tencentcloud/resource_tc_sqlserver_basic_instance_test.go b/tencentcloud/resource_tc_sqlserver_basic_instance_test.go index fd18e633c2..71db5d85cc 100644 --- a/tencentcloud/resource_tc_sqlserver_basic_instance_test.go +++ b/tencentcloud/resource_tc_sqlserver_basic_instance_test.go @@ -108,9 +108,9 @@ resource "tencentcloud_sqlserver_basic_instance" "test" { subnet_id = local.subnet_id security_groups = [local.sg_id] project_id = 0 - memory = 4 + memory = 8 storage = 20 - cpu = 2 + cpu = 1 machine_type = "CLOUD_PREMIUM" maintenance_week_set = [1,2,3] maintenance_start_time = "09:00"