Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,5 @@ coverage.out

.qwenignore
.qoder/
.terraflow/
.terraflow/
.terraflow.jsonc
23 changes: 11 additions & 12 deletions alicloud/resource_alicloud_cs_kubernetes_node_pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -2833,16 +2833,16 @@ func resourceAliCloudAckNodepoolUpdate(d *schema.ResourceData, meta interface{})

if d.HasChange("user_data") {
update = true
if v, ok := d.GetOk("user_data"); ok {
kubernetes_config["user_data"] = v
if v := d.Get("user_data").(string); v != "" {
_, base64DecodeError := base64.StdEncoding.DecodeString(v)
if base64DecodeError == nil {
kubernetes_config["user_data"] = tea.String(v)
} else {
kubernetes_config["user_data"] = tea.String(base64.StdEncoding.EncodeToString([]byte(v)))
}
userData := d.Get("user_data").(string)
if userData != "" {
_, base64DecodeError := base64.StdEncoding.DecodeString(userData)
if base64DecodeError == nil {
kubernetes_config["user_data"] = tea.String(userData)
} else {
kubernetes_config["user_data"] = tea.String(base64.StdEncoding.EncodeToString([]byte(userData)))
}
} else {
kubernetes_config["user_data"] = tea.String("")
}
}

Expand Down Expand Up @@ -2893,9 +2893,8 @@ func resourceAliCloudAckNodepoolUpdate(d *schema.ResourceData, meta interface{})

if d.HasChange("pre_user_data") {
update = true
if v, ok := d.GetOk("pre_user_data"); ok {
kubernetes_config["pre_user_data"] = v
}
preUserData := d.Get("pre_user_data").(string)
kubernetes_config["pre_user_data"] = tea.String(preUserData)
}

request["kubernetes_config"] = kubernetes_config
Expand Down
120 changes: 84 additions & 36 deletions alicloud/resource_alicloud_cs_kubernetes_node_pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,7 @@ func TestAccAliCloudCSKubernetesNodePool_KMS(t *testing.T) {
"kms_key_id": "${data.alicloud_kms_keys.default.ids.0}",
"encrypted": "true",
"size": "100",
"category": "cloud_ssd",
"category": "cloud_essd",
},
},
"tags": map[string]interface{}{"Created": "TF", "Foo": "Bar"},
Expand All @@ -765,7 +765,7 @@ func TestAccAliCloudCSKubernetesNodePool_KMS(t *testing.T) {
"system_disk_size": "40",
"data_disks.#": "1",
"data_disks.0.size": "100",
"data_disks.0.category": "cloud_ssd",
"data_disks.0.category": "cloud_essd",
"tags.%": "2",
"tags.Created": "TF",
"tags.Foo": "Bar",
Expand All @@ -784,7 +784,7 @@ func TestAccAliCloudCSKubernetesNodePool_KMS(t *testing.T) {
"data_disks": []map[string]string{
{
"size": "100",
"category": "cloud_ssd",
"category": "cloud_essd",
"device": "/dev/xvdc",
"kms_key_id": "${data.alicloud_kms_keys.default.ids.0}",
},
Expand Down Expand Up @@ -1345,9 +1345,11 @@ data "alicloud_instance_types" "cloud_efficiency" {
}

data "alicloud_instance_types" "cloud_essd" {
availability_zone = data.alicloud_zones.default.zones.0.id
availability_zone = local.vsw1_zone
kubernetes_node_role = "Worker"
system_disk_category = "cloud_essd"
instance_type_family = "ecs.c7"
sorted_by = "Price"
}

data "alicloud_instance_types" "cloud_auto" {
Expand Down Expand Up @@ -1396,6 +1398,10 @@ resource "alicloud_vswitch" "vsw3" {
zone_id = data.alicloud_zones.default.zones.2.id
}

locals {
vsw1_zone = length(data.alicloud_vswitches.vsw1.ids) > 0 ? data.alicloud_vswitches.vsw1.vswitches.0.zone_id : data.alicloud_zones.default.zones.0.id
}

resource "alicloud_key_pair" "default" {
key_name = var.name
}
Expand Down Expand Up @@ -1440,7 +1446,7 @@ resource "alicloud_ecs_capacity_reservation" "default" {
instance_amount = 1
instance_type = data.alicloud_instance_types.cloud_essd.instance_types.0.id
match_criteria = "Open"
zone_ids = ["${data.alicloud_zones.default.zones.0.id}"]
zone_ids = [local.vsw1_zone]
}

data "alicloud_cs_kubernetes_version" "default" {
Expand Down Expand Up @@ -1548,6 +1554,13 @@ data "alicloud_instance_types" "default" {
system_disk_category = "cloud_essd"
}

data "alicloud_instance_types" "for_snapshot" {
availability_zone = data.alicloud_zones.default.zones.0.id
cpu_core_count = 2
memory_size = 4
instance_charge_type = "PostPaid"
}

data "alicloud_vpcs" "default" {
name_regex = "^default-NODELETING-ACK$"
}
Expand Down Expand Up @@ -1633,15 +1646,15 @@ resource "alicloud_ecs_disk" "default" {
data "alicloud_images" "default" {
name_regex = "^ubuntu_[0-9]+_[0-9]+_x64*"
owners = "system"
instance_type = data.alicloud_instance_types.default.instance_types.0.id
instance_type = data.alicloud_instance_types.for_snapshot.instance_types.0.id
}

resource "alicloud_instance" "default" {
count = 2
availability_zone = data.alicloud_zones.default.zones.0.id
instance_name = "terraform-example"
image_id = data.alicloud_images.default.images.0.id
instance_type = data.alicloud_instance_types.default.instance_types.0.id
instance_type = data.alicloud_instance_types.for_snapshot.instance_types.0.id
security_groups = [alicloud_security_group.group.id]
vswitch_id = local.vswitch_id
}
Expand Down Expand Up @@ -1861,31 +1874,12 @@ resource "alicloud_key_pair" "default" {
key_name = var.name
}

resource "alicloud_security_group" "group" {
vpc_id = data.alicloud_vpcs.default.ids.0
security_group_type = "enterprise"
}

data "alicloud_images" "default" {
name_regex = "^aliyun_3_[0-9]+_x64*"
owners = "system"
instance_type = data.alicloud_instance_types.default.instance_types.0.id
}

resource "alicloud_instance" "default" {
count = 2
availability_zone = data.alicloud_zones.default.zones.0.id
instance_name = "terraform-example"
image_id = data.alicloud_images.default.images.0.id
instance_type = data.alicloud_instance_types.default.instance_types.0.id
security_groups = [alicloud_security_group.group.id]
vswitch_id = local.vswitch_id
system_disk_category = "cloud_efficiency"
lifecycle {
ignore_changes = [user_data, instance_name, image_id, security_groups, tags]
}
}

data "alicloud_cs_managed_kubernetes_clusters" "default" {
name_regex = "^Default"
enable_details = true
Expand All @@ -1908,6 +1902,20 @@ locals {
cluster_id = length(data.alicloud_cs_managed_kubernetes_clusters.default.ids) > 0 ? data.alicloud_cs_managed_kubernetes_clusters.default.ids.0 : alicloud_cs_managed_kubernetes.default.0.id
cluster_sg_id = length(data.alicloud_cs_managed_kubernetes_clusters.default.ids) > 0 ? data.alicloud_cs_managed_kubernetes_clusters.default.clusters.0.security_group_id : alicloud_cs_managed_kubernetes.default.0.security_group_id
}

resource "alicloud_instance" "default" {
count = 2
availability_zone = data.alicloud_zones.default.zones.0.id
instance_name = "terraform-example"
image_id = data.alicloud_images.default.images.0.id
instance_type = data.alicloud_instance_types.default.instance_types.0.id
security_groups = [local.cluster_sg_id]
vswitch_id = local.vswitch_id
system_disk_category = "cloud_efficiency"
lifecycle {
ignore_changes = [user_data, instance_name, image_id, security_groups, tags]
}
}
`, name)
}

Expand Down Expand Up @@ -3691,7 +3699,7 @@ func TestAccAliCloudAckNodepool_basic5172(t *testing.T) {
Config: testAccConfig(map[string]interface{}{
"data_disks": []map[string]interface{}{
{
"category": "cloud_ssd",
"category": "cloud_essd",
"encrypted": "true",
"size": "40",
"auto_snapshot_policy_id": "${alicloud_ecs_auto_snapshot_policy.defaultrt8z7K.id}",
Expand Down Expand Up @@ -3776,6 +3784,26 @@ func TestAccAliCloudAckNodepool_basic5172(t *testing.T) {
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"user_data": "",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"user_data": "",
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"user_data": "IyEvYmluL2Jhc2gKCmVjaG8gInRoaXMgaXMgYSBleGFtcGxlIg==",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"user_data": "IyEvYmluL2Jhc2gKCmVjaG8gInRoaXMgaXMgYSBleGFtcGxlIg==",
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"unschedulable": "false",
Expand All @@ -3796,6 +3824,26 @@ func TestAccAliCloudAckNodepool_basic5172(t *testing.T) {
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"pre_user_data": "",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"pre_user_data": "",
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"pre_user_data": "IyEvYmluL2Jhc2gKCmVjaG8gInRoaXMgaXMgcHJlLXVzZXItZGF0YSBhZnRlciBtb2RpZmllZCI=",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"pre_user_data": "IyEvYmluL2Jhc2gKCmVjaG8gInRoaXMgaXMgcHJlLXVzZXItZGF0YSBhZnRlciBtb2RpZmllZCI=",
}),
),
},
{
Config: testAccConfig(map[string]interface{}{
"system_disk_snapshot_policy_id": "${alicloud_ecs_auto_snapshot_policy.defaultrt8z7K.id}",
Expand Down Expand Up @@ -4017,7 +4065,7 @@ func TestAccAliCloudAckNodepool_basic5172(t *testing.T) {
"${data.alicloud_instance_types.cloud_essd.instance_types.0.id}"},
"data_disks": []map[string]interface{}{
{
"category": "cloud_ssd",
"category": "cloud_essd",
"encrypted": "true",
"size": "40",
"auto_snapshot_policy_id": "${alicloud_ecs_auto_snapshot_policy.defaultrt8z7K.id}",
Expand Down Expand Up @@ -4296,11 +4344,11 @@ func TestAccAliCloudAckNodepool_basic5401(t *testing.T) {
},
{
Config: testAccConfig(map[string]interface{}{
"system_disk_category": "cloud_efficiency",
"system_disk_category": "cloud_auto",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"system_disk_category": "cloud_efficiency",
"system_disk_category": "cloud_auto",
}),
),
},
Expand Down Expand Up @@ -4336,7 +4384,7 @@ func TestAccAliCloudAckNodepool_basic5401(t *testing.T) {
"instance_types": []string{
"${data.alicloud_instance_types.cloud_essd.instance_types.0.id}"},
"password": "${var.password}",
"system_disk_category": "cloud_efficiency",
"system_disk_category": "cloud_auto",
"runtime_name": "containerd",
"runtime_version": "${data.alicloud_cs_kubernetes_version.default.metadata.0.runtime.0.version}",
"node_pool_name": name + "_update",
Expand All @@ -4351,7 +4399,7 @@ func TestAccAliCloudAckNodepool_basic5401(t *testing.T) {
"system_disk_size": "60",
"instance_types.#": "1",
"password": CHECKSET,
"system_disk_category": "cloud_efficiency",
"system_disk_category": "cloud_auto",
"runtime_name": "containerd",
"runtime_version": CHECKSET,
"node_pool_name": name + "_update",
Expand Down Expand Up @@ -7755,8 +7803,8 @@ func TestAccAliCloudAckNodepool_basic12069(t *testing.T) {
{
Config: testAccConfig(map[string]interface{}{
"resource_group_id": "${data.alicloud_resource_manager_resource_groups.default.ids.0}",
"image_type": "AliyunLinux",
"image_id": "aliyun_2_1903_x64_20G_alibase_20231221.vhd",
"image_type": "AliyunLinux3ContainerOptimized",
"image_id": "aliyun_3_x64_20G_container_optimized_alibase_20251215.vhd",
"runtime_name": "containerd",
"system_disk_performance_level": "PL0",
"system_disk_size": "40",
Expand All @@ -7773,8 +7821,8 @@ func TestAccAliCloudAckNodepool_basic12069(t *testing.T) {
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"resource_group_id": CHECKSET,
"image_type": "AliyunLinux",
"image_id": "aliyun_2_1903_x64_20G_alibase_20231221.vhd",
"image_type": "AliyunLinux3ContainerOptimized",
"image_id": "aliyun_3_x64_20G_container_optimized_alibase_20251215.vhd",
"runtime_name": "containerd",
"system_disk_performance_level": "PL0",
"system_disk_size": "40",
Expand Down
3 changes: 1 addition & 2 deletions alicloud/resource_alicloud_ecs_key_pair.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// Package alicloud. This file is generated automatically. Please do not modify it manually, thank you!
package alicloud

import (
Expand Down Expand Up @@ -27,7 +26,7 @@ func resourceAliCloudEcsKeyPair() *schema.Resource {
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(5 * time.Minute),
Update: schema.DefaultTimeout(5 * time.Minute),
Delete: schema.DefaultTimeout(5 * time.Minute),
Delete: schema.DefaultTimeout(20 * time.Minute),
},
Schema: map[string]*schema.Schema{
"finger_print": {
Expand Down
2 changes: 1 addition & 1 deletion website/docs/r/ecs_key_pair.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The following attributes are exported:
The `timeouts` block allows you to specify [timeouts](https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) for certain actions:
* `create` - (Defaults to 5 mins) Used when create the Key Pair.
* `delete` - (Defaults to 5 mins) Used when delete the Key Pair.
* `update` - (Defaults to 5 mins) Used when update the Key Pair.
* `update` - (Defaults to 20 mins) Used when update the Key Pair.

## Import

Expand Down
Loading