Skip to content

Commit 786ae09

Browse files
committed
fix: add e2e test for tke gpu args
1 parent f2eaa9c commit 786ae09

File tree

3 files changed

+178
-3
lines changed

3 files changed

+178
-3
lines changed

.changelog/1593.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
```release-note:enhancement
2-
resource/tencentcloud_kubernetes_scale_worker: feat: support setting tke gpu args
2+
resource/tencentcloud_kubernetes_scale_worker: support setting tke gpu args
33
```
44
```release-note:enhancement
5-
resource/tencentcloud_kubernetes_cluster_attachment: feat: support setting tke gpu args
5+
resource/tencentcloud_kubernetes_cluster_attachment: support setting tke gpu args
66
```
77
```release-note:enhancement
8-
resource/tencentcloud_kubernetes_node_pool: feat: support setting tke gpu args
8+
resource/tencentcloud_kubernetes_node_pool: support setting tke gpu args
99
```

tencentcloud/resource_tc_kubernetes_node_pool_test.go

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,25 @@ func TestAccTencentCloudKubernetesNodePoolResource_DiskEncrypt(t *testing.T) {
167167
})
168168
}
169169

170+
func TestAccTencentCloudKubernetesNodePoolResource_GPUInstance(t *testing.T) {
171+
t.Parallel()
172+
resource.Test(t, resource.TestCase{
173+
PreCheck: func() { testAccPreCheck(t) },
174+
Providers: testAccProviders,
175+
CheckDestroy: testAccCheckTkeNodePoolDestroy,
176+
Steps: []resource.TestStep{
177+
{
178+
Config: testAccTkeNodePoolClusterGpu,
179+
Check: resource.ComposeTestCheckFunc(
180+
testAccCheckTkeNodePoolExists,
181+
resource.TestCheckResourceAttrSet(testTkeClusterNodePoolResourceKey, "cluster_id"),
182+
resource.TestCheckResourceAttrSet(testTkeClusterNodePoolResourceKey, "node_config.0.gpu_args.#"),
183+
),
184+
},
185+
},
186+
})
187+
}
188+
170189
func testAccCheckTkeNodePoolDestroy(s *terraform.State) error {
171190
logId := getLogId(contextNil)
172191
ctx := context.WithValue(context.TODO(), logIdKey, logId)
@@ -436,3 +455,93 @@ resource "tencentcloud_kubernetes_node_pool" "np_test" {
436455
unschedulable = 0
437456
}
438457
`
458+
459+
const testAccTkeNodePoolClusterGpu string = testAccTkeNodePoolClusterBasic + `
460+
resource "tencentcloud_kubernetes_node_pool" "np_test" {
461+
name = "gpu_args_node_pool"
462+
cluster_id = local.cluster_id
463+
max_size = 1
464+
min_size = 0
465+
vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id
466+
subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id]
467+
retry_policy = "INCREMENTAL_INTERVALS"
468+
desired_capacity = 1
469+
enable_auto_scale = false
470+
node_os = "ubuntu20.04x86_64"
471+
scaling_group_project_id = var.default_project
472+
delete_keep_instance = false
473+
scaling_group_name = "asg_np_test_changed"
474+
default_cooldown = 350
475+
termination_policies = ["NEWEST_INSTANCE"]
476+
multi_zone_subnet_policy = "EQUALITY"
477+
478+
auto_scaling_config {
479+
instance_type = "GN6S.LARGE20"
480+
system_disk_type = "CLOUD_PREMIUM"
481+
system_disk_size = "100"
482+
security_group_ids = [data.tencentcloud_security_groups.sg.security_groups[0].security_group_id, data.tencentcloud_security_groups.sg_as.security_groups[0].security_group_id]
483+
instance_charge_type = "SPOTPAID"
484+
spot_instance_type = "one-time"
485+
spot_max_price = "1000"
486+
cam_role_name = "TCB_QcsRole"
487+
488+
data_disk {
489+
disk_type = "CLOUD_PREMIUM"
490+
disk_size = 50
491+
delete_with_instance = true
492+
}
493+
data_disk {
494+
disk_type = "CLOUD_PREMIUM"
495+
disk_size = 100
496+
delete_with_instance = true
497+
}
498+
499+
public_ip_assigned = false
500+
password = "test123#"
501+
enhanced_security_service = true
502+
enhanced_monitor_service = false
503+
host_name = "12.123.1.1"
504+
host_name_style = "UNIQUE"
505+
506+
}
507+
unschedulable = 0
508+
labels = {
509+
"test3" = "test3",
510+
"test2" = "test2",
511+
}
512+
513+
taints {
514+
key = "test_taint"
515+
value = "taint_value"
516+
effect = "PreferNoSchedule"
517+
}
518+
519+
tags = {
520+
keep-test-np1 = "testI"
521+
keep-test-np3 = "testIII"
522+
}
523+
524+
node_config {
525+
extra_args = [
526+
"root-dir=/var/lib/kubelet"
527+
]
528+
gpu_args {
529+
mig_enable = false
530+
driver = {
531+
name = "NVIDIA-Linux-x86_64-450.102.04.run"
532+
version = "450.102.04"
533+
}
534+
cuda = {
535+
name = "cuda_11.0.3_450.51.06_linux.run"
536+
version = "11.0.3"
537+
}
538+
cudnn = {
539+
name = "libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb"
540+
version = "8.1.0"
541+
doc_name = "libcudnn8-samples_8.1.0.77-1+cuda11.2_amd64.deb"
542+
dev_name = "libcudnn8-dev_8.1.0.77-1+cuda11.2_amd64.deb"
543+
}
544+
}
545+
}
546+
}
547+
`

tencentcloud/resource_tc_kubernetes_scale_worker_test.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,15 @@ func TestAccTencentCloudKubernetesScaleWorkerResource(t *testing.T) {
9595
resource.TestCheckResourceAttrSet(testTkeScaleWorkerResourceKey, "unschedulable"),
9696
),
9797
},
98+
{
99+
Config: testAccTkeScaleWorkerInstanceGpuInsTypeUpdate,
100+
Check: resource.ComposeTestCheckFunc(
101+
testAccCheckTkeScaleWorkerExists(testTkeScaleWorkerResourceKey),
102+
resource.TestCheckResourceAttrSet(testTkeScaleWorkerResourceKey, "cluster_id"),
103+
resource.TestCheckResourceAttr(testTkeScaleWorkerResourceKey, "worker_instances_list.0.instance_type", "GN6S.LARGE20"),
104+
resource.TestCheckResourceAttrSet(testTkeScaleWorkerResourceKey, "gpu_args.#"),
105+
),
106+
},
98107
},
99108
})
100109
}
@@ -200,6 +209,44 @@ const testAccTkeScaleWorkerInstanceBasic = TkeExclusiveNetwork + TkeDataSource +
200209

201210
const testAccTkeScaleWorkerInstance string = testAccTkeScaleWorkerInstanceBasic + `
202211
212+
resource tencentcloud_kubernetes_scale_worker test_scale {
213+
cluster_id = local.cluster_id
214+
215+
extra_args = [
216+
"root-dir=/var/lib/kubelet"
217+
]
218+
219+
labels = {
220+
"test1" = "test1",
221+
"test2" = "test2",
222+
}
223+
unschedulable = 0
224+
225+
worker_config {
226+
count = 1
227+
availability_zone = var.default_az
228+
instance_type = "GN6S.LARGE20"
229+
subnet_id = local.subnet_id
230+
system_disk_type = "CLOUD_SSD"
231+
system_disk_size = 50
232+
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
233+
security_group_ids = [local.sg_id]
234+
235+
data_disk {
236+
disk_type = "CLOUD_PREMIUM"
237+
disk_size = 50
238+
}
239+
240+
enhanced_security_service = false
241+
enhanced_monitor_service = false
242+
user_data = "dGVzdA=="
243+
password = "AABBccdd1122"
244+
}
245+
}
246+
`
247+
248+
const testAccTkeScaleWorkerInstanceGpuInsTypeUpdate string = testAccTkeScaleWorkerInstanceBasic + `
249+
203250
resource tencentcloud_kubernetes_scale_worker test_scale {
204251
cluster_id = local.cluster_id
205252
@@ -222,6 +269,7 @@ resource tencentcloud_kubernetes_scale_worker test_scale {
222269
system_disk_size = 50
223270
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
224271
security_group_ids = [local.sg_id]
272+
img_id = "img-22trbn9x"
225273
226274
data_disk {
227275
disk_type = "CLOUD_PREMIUM"
@@ -233,5 +281,23 @@ resource tencentcloud_kubernetes_scale_worker test_scale {
233281
user_data = "dGVzdA=="
234282
password = "AABBccdd1122"
235283
}
284+
285+
gpu_args {
286+
mig_enable = false
287+
driver = {
288+
name = "NVIDIA-Linux-x86_64-450.102.04.run"
289+
version = "450.102.04"
290+
}
291+
cuda = {
292+
name = "cuda_11.0.3_450.51.06_linux.run"
293+
version = "11.0.3"
294+
}
295+
cudnn = {
296+
name = "libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb"
297+
version = "8.1.0"
298+
doc_name = "libcudnn8-samples_8.1.0.77-1+cuda11.2_amd64.deb"
299+
dev_name = "libcudnn8-dev_8.1.0.77-1+cuda11.2_amd64.deb"
300+
}
301+
}
236302
}
237303
`

0 commit comments

Comments
 (0)