From 47dea1fb09c929a82acadc62f775ee5cc245c62b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 10:28:35 +0100 Subject: [PATCH 01/27] Add: tags, ssh and cluster network type Signed-off-by: Nicolas Lamirault --- main.tf | 10 ++++++++++ variables.tf | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/main.tf b/main.tf index 4ebe60e..7f7a970 100644 --- a/main.tf +++ b/main.tf @@ -21,6 +21,8 @@ resource "alicloud_cs_managed_kubernetes" "this" { version = var.kubernetes_version worker_instance_types = var.worker_instance_types worker_number = var.worker_number + cluster_network_type = var.cluster_network_type + dynamic "addons" { for_each = var.cluster_addons content { @@ -28,10 +30,18 @@ resource "alicloud_cs_managed_kubernetes" "this" { config = lookup(addons.value, "config", var.cluster_addons) } } + kube_config = var.kube_config_path client_cert = var.client_cert_path client_key = var.client_key_path cluster_ca_cert = var.cluster_ca_cert_path + enable_ssh = var.enable_ssh + + kubernetes_version = var.kubernetes_version + runtime = var.runtime + + tags = var.tags + depends_on = [alicloud_snat_entry.new] } \ No newline at end of file diff --git a/variables.tf b/variables.tf index 39df147..f087286 100644 --- a/variables.tf +++ b/variables.tf @@ -176,4 +176,17 @@ variable "cluster_ca_cert_path" { description = "The path of cluster ca certificate, like ~/.kube/cluster-ca-cert.pem" type = string default = "" +} + +variable "enable_ssh" { + type = bool + description = "Enable login to the node through SSH" +} + +variable "tags" { + type = map(string) + description = "Tags associated to the resources" + default = { + "Made-By" = "Managed by Terraform" + } } \ No newline at end of file From 736570bd422cdaf220217c8c6c5a9b340ec71889 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 10:33:00 +0100 Subject: [PATCH 02/27] Add: Container runtime Signed-off-by: Nicolas Lamirault --- main.tf | 2 ++ variables.tf | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/main.tf b/main.tf index 7f7a970..421fbef 100644 --- a/main.tf +++ b/main.tf @@ -31,6 +31,8 @@ resource "alicloud_cs_managed_kubernetes" "this" { } } + runtime = var.runtime + kube_config = var.kube_config_path client_cert = var.client_cert_path client_key = var.client_key_path diff --git a/variables.tf b/variables.tf index f087286..6ef3eef 100644 --- a/variables.tf +++ b/variables.tf @@ -83,6 +83,15 @@ variable "kubernetes_version" { default = "" } +variable "runtime" { + descridescription = "The runtime of containers." + type = map(string) + default = { + name = "docker" + version = "19.03.15" + } +} + variable "worker_instance_types" { description = "The ecs instance type used to launch worker nodes. If not set, data source `alicloud_instance_types` will return one based on `cpu_core_count` and `memory_size`." type = list(string) From 44aa6a6381beb35e541f9eaffd8f021947aec72f Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 10:50:29 +0100 Subject: [PATCH 03/27] Add: maintenance window Signed-off-by: Nicolas Lamirault --- main.tf | 15 ++++++++++++--- variables.tf | 13 ++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/main.tf b/main.tf index 421fbef..ee7bd18 100644 --- a/main.tf +++ b/main.tf @@ -31,8 +31,6 @@ resource "alicloud_cs_managed_kubernetes" "this" { } } - runtime = var.runtime - kube_config = var.kube_config_path client_cert = var.client_cert_path client_key = var.client_key_path @@ -42,7 +40,18 @@ resource "alicloud_cs_managed_kubernetes" "this" { kubernetes_version = var.kubernetes_version runtime = var.runtime - + + dynamic "maintenance_window" { + for_each = var.maintenance_window + + content { + enable = maintenance_window.value.enabled + maintenance_time = maintenance_window.value.maintenance_time + duration = maintenance_window.value.duration + weekly_period = maintenance_window.value.weekly_period + } + } + tags = var.tags depends_on = [alicloud_snat_entry.new] diff --git a/variables.tf b/variables.tf index 6ef3eef..d26b062 100644 --- a/variables.tf +++ b/variables.tf @@ -84,7 +84,7 @@ variable "kubernetes_version" { } variable "runtime" { - descridescription = "The runtime of containers." + description = "The runtime of containers." type = map(string) default = { name = "docker" @@ -92,6 +92,17 @@ variable "runtime" { } } +variable "maintenance_window" { + type = map(string) + description = "The cluster maintenance window." + default = { + enable = true + maintenance_time = "01:00:00Z" + duration = "3h" + weekly_period = "Monday,Friday" + } +} + variable "worker_instance_types" { description = "The ecs instance type used to launch worker nodes. If not set, data source `alicloud_instance_types` will return one based on `cpu_core_count` and `memory_size`." type = list(string) From 5dd666582fdd4280b76a4162c2e3345b44e7f119 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 11:19:12 +0100 Subject: [PATCH 04/27] Add: another node pools Signed-off-by: Nicolas Lamirault --- main.tf | 42 ++++++++++++++++++++++++++++++++++++++++++ variables.tf | 6 ++++++ 2 files changed, 48 insertions(+) diff --git a/main.tf b/main.tf index ee7bd18..bd44139 100644 --- a/main.tf +++ b/main.tf @@ -55,4 +55,46 @@ resource "alicloud_cs_managed_kubernetes" "this" { tags = var.tags depends_on = [alicloud_snat_entry.new] +} + +resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { + for_each = var.node_pools + + name = each.value.name + cluster_id = alicloud_cs_managed_kubernetes.this.id + vswitch_ids = local.vswitch_ids + instance_types = local.node_instance_types + system_disk_category = "cloud_efficiency" + system_disk_size = each.value.system_disk_size + node_count = each.value.node_count + + scaling_config { + min_size = each.value.node_min_number + max_size = each.value.node_max_number + is_bond_eip = each.value.node_bind_eip + eip_internet_charge_type = "PayByTraffic" + eip_bandwidth = 5 + } + + management { + auto_repair = each.value.auto_repair + auto_upgrade = each.value.auto_upgrade + surge = each.value.surge + max_unavailable = each.value.max_unavailable + } + + # spot config + # spot_strategy = "SpotWithPriceLimit" + # spot_price_limit { + # instance_type = data.alicloud_instance_types.default.instance_types.0.id + # # Different instance types have different price caps + # price_limit = "0.70" + # } + + tags = merge( + { + Type = "autoscaling" + }, + var.tags, + ) } \ No newline at end of file diff --git a/variables.tf b/variables.tf index d26b062..8b26b4c 100644 --- a/variables.tf +++ b/variables.tf @@ -209,4 +209,10 @@ variable "tags" { default = { "Made-By" = "Managed by Terraform" } +} + +variable "node_pools" { + type = map(string) + description = "" + default = {} } \ No newline at end of file From 769f0039a6ab76c0e21c6c2a8daf0ae3b1ac1a79 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 11:24:38 +0100 Subject: [PATCH 05/27] Fix: kubernetes version Signed-off-by: Nicolas Lamirault --- main.tf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.tf b/main.tf index bd44139..618c035 100644 --- a/main.tf +++ b/main.tf @@ -19,6 +19,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { slb_internet_enabled = true install_cloud_monitor = true version = var.kubernetes_version + runtime = var.runtime worker_instance_types = var.worker_instance_types worker_number = var.worker_number cluster_network_type = var.cluster_network_type @@ -38,8 +39,6 @@ resource "alicloud_cs_managed_kubernetes" "this" { enable_ssh = var.enable_ssh - kubernetes_version = var.kubernetes_version - runtime = var.runtime dynamic "maintenance_window" { for_each = var.maintenance_window From 7e1aac75289e60ff6c9cdeeb90bbb5ac7aec4378 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 11:27:25 +0100 Subject: [PATCH 06/27] Fix: count kubernetes cluster Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 618c035..1394bbd 100644 --- a/main.tf +++ b/main.tf @@ -60,7 +60,7 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { for_each = var.node_pools name = each.value.name - cluster_id = alicloud_cs_managed_kubernetes.this.id + cluster_id = alicloud_cs_managed_kubernetes.this[0].id vswitch_ids = local.vswitch_ids instance_types = local.node_instance_types system_disk_category = "cloud_efficiency" From 4b6d07f4c98c20b5646c98f1f1ebbe62558d0108 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 11:28:58 +0100 Subject: [PATCH 07/27] Fix: node instance types Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 1394bbd..5880a78 100644 --- a/main.tf +++ b/main.tf @@ -62,7 +62,7 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { name = each.value.name cluster_id = alicloud_cs_managed_kubernetes.this[0].id vswitch_ids = local.vswitch_ids - instance_types = local.node_instance_types + instance_types = each.value.node_instance_types system_disk_category = "cloud_efficiency" system_disk_size = each.value.system_disk_size node_count = each.value.node_count From 2342c00da94749611b4c034ffb125d60bd4a99a2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 11:40:04 +0100 Subject: [PATCH 08/27] Fix: clean Signed-off-by: Nicolas Lamirault --- main.tf | 3 +-- variables.tf | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/main.tf b/main.tf index 5880a78..9de5da0 100644 --- a/main.tf +++ b/main.tf @@ -22,8 +22,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { runtime = var.runtime worker_instance_types = var.worker_instance_types worker_number = var.worker_number - cluster_network_type = var.cluster_network_type - + dynamic "addons" { for_each = var.cluster_addons content { diff --git a/variables.tf b/variables.tf index 8b26b4c..61a1fe5 100644 --- a/variables.tf +++ b/variables.tf @@ -213,6 +213,6 @@ variable "tags" { variable "node_pools" { type = map(string) - description = "" + description = "Kubernetes node pools" default = {} } \ No newline at end of file From ce0bbf7b4e85c2f1f39992f81a1b753cd3742575 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 12:23:20 +0100 Subject: [PATCH 09/27] Fix: maintenance window dynamic block Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 9de5da0..2dc5d06 100644 --- a/main.tf +++ b/main.tf @@ -40,7 +40,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { dynamic "maintenance_window" { - for_each = var.maintenance_window + for_each = maintenance_window.value.enabled ? [1]: [] content { enable = maintenance_window.value.enabled From 71fa018f88ef12bf38681d82ad3d259a8cbc3af5 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 12:31:25 +0100 Subject: [PATCH 10/27] Fix: variable name Signed-off-by: Nicolas Lamirault --- main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 2dc5d06..18c1ce6 100644 --- a/main.tf +++ b/main.tf @@ -36,11 +36,11 @@ resource "alicloud_cs_managed_kubernetes" "this" { client_key = var.client_key_path cluster_ca_cert = var.cluster_ca_cert_path - enable_ssh = var.enable_ssh + enable_ssh = var.enable_ssh dynamic "maintenance_window" { - for_each = maintenance_window.value.enabled ? [1]: [] + for_each = var.maintenance_window.value.enabled ? [1]: [] content { enable = maintenance_window.value.enabled From b0253b1068d6dfc66e5b1a1bae2c8198e0bf2d8a Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 13:57:11 +0100 Subject: [PATCH 11/27] Fix: variable name Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 18c1ce6..c0bfcbd 100644 --- a/main.tf +++ b/main.tf @@ -40,7 +40,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { dynamic "maintenance_window" { - for_each = var.maintenance_window.value.enabled ? [1]: [] + for_each = var.maintenance_window.enabled ? [1]: [] content { enable = maintenance_window.value.enabled From 4d1ce395020242f8d5d97115232ebfef6be9e24f Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 14:05:00 +0100 Subject: [PATCH 12/27] Fix: typo Signed-off-by: Nicolas Lamirault --- main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index c0bfcbd..496816a 100644 --- a/main.tf +++ b/main.tf @@ -40,10 +40,10 @@ resource "alicloud_cs_managed_kubernetes" "this" { dynamic "maintenance_window" { - for_each = var.maintenance_window.enabled ? [1]: [] + for_each = var.maintenance_window.enable ? [1]: [] content { - enable = maintenance_window.value.enabled + enable = maintenance_window.value.enable maintenance_time = maintenance_window.value.maintenance_time duration = maintenance_window.value.duration weekly_period = maintenance_window.value.weekly_period From 2fba7e06a26385dc5e105df94f2021629a90a7e4 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 11 Jan 2022 18:12:16 +0100 Subject: [PATCH 13/27] Fix: for_each dynamic values Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 496816a..a8500d4 100644 --- a/main.tf +++ b/main.tf @@ -40,7 +40,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { dynamic "maintenance_window" { - for_each = var.maintenance_window.enable ? [1]: [] + for_each = toset(var.maintenance_window.enable) content { enable = maintenance_window.value.enable From 9568d1575d52ae64ee02c4061967f2ed73372c10 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 07:23:47 +0100 Subject: [PATCH 14/27] Fix: for_each dynamic values Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index a8500d4..fba7160 100644 --- a/main.tf +++ b/main.tf @@ -40,7 +40,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { dynamic "maintenance_window" { - for_each = toset(var.maintenance_window.enable) + for_each = var.maintenance_window.enable ? [var.maintenance_window] : [] content { enable = maintenance_window.value.enable From 389c7383c33cd337b96dcac96b4f33c8faa7a24b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 07:53:16 +0100 Subject: [PATCH 15/27] Fix: terway vswitch ids Signed-off-by: Nicolas Lamirault --- locals.tf | 1 + main.tf | 1 + variables.tf | 12 ++++++++++++ vpc.tf | 7 +++++++ 4 files changed, 21 insertions(+) diff --git a/locals.tf b/locals.tf index 18ae216..fb0814f 100644 --- a/locals.tf +++ b/locals.tf @@ -7,6 +7,7 @@ locals { K8s = local.k8s_name } vswitch_ids = length(var.vswitch_ids) > 0 ? var.vswitch_ids : alicloud_vswitch.new.*.id + pod_vswitch_ids = length(var.pod_vswitch_ids) > 0 ? var.pod_vswitch_ids : alicloud_vswitch.terway.*.id } resource "random_uuid" "this" {} \ No newline at end of file diff --git a/main.tf b/main.tf index fba7160..bb39f29 100644 --- a/main.tf +++ b/main.tf @@ -11,6 +11,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { count = length(local.vswitch_ids) > 0 ? 1 : 0 name = local.k8s_name worker_vswitch_ids = local.vswitch_ids + pod_vswitch_ids = local.pod_vswitch_ids new_nat_gateway = var.new_vpc == true ? false : var.new_nat_gateway worker_disk_category = var.worker_disk_category password = var.ecs_password diff --git a/variables.tf b/variables.tf index 61a1fe5..55590fd 100644 --- a/variables.tf +++ b/variables.tf @@ -48,6 +48,18 @@ variable "vswitch_cidrs" { default = ["192.168.1.0/24"] } +variable "terway_vswitch_ids" { + description = "List Ids of existing vswitch." + type = list(string) + default = [] +} + +variable "terway_vswitch_cidrs" { + description = "List cidr blocks used to create several new vswitches when 'new_vpc' is true." + type = list(string) + default = ["192.168.1.0/24"] +} + variable "availability_zones" { description = "List available zone ids used to create several new vswitches when 'vswitch_ids' is not specified. If not set, data source `alicloud_zones` will return one automatically." type = list(string) diff --git a/vpc.tf b/vpc.tf index fab8ea8..d6d54e1 100644 --- a/vpc.tf +++ b/vpc.tf @@ -28,6 +28,13 @@ resource "alicloud_vswitch" "new" { tags = local.new_vpc_tags } +resource "alicloud_vswitch" "terway" { + count = var.new_vpc == true ? length(var.terway_vswitch_cirds) : 0 + vpc_id = concat(alicloud_vpc.new.*.id, [""])[0] + cidr_block = element(var.terway_vswitch_cirds, count.index) + availability_zone = element(var.availability_zone, count.index) +} + resource "alicloud_nat_gateway" "new" { count = var.new_vpc == true ? 1 : 0 vpc_id = concat(alicloud_vpc.new.*.id, [""])[0] From 15f0a6da7b22ef8103ae7544d1738b4edde8a052 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 08:16:51 +0100 Subject: [PATCH 16/27] Fix: typo Signed-off-by: Nicolas Lamirault --- vpc.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vpc.tf b/vpc.tf index d6d54e1..58265ec 100644 --- a/vpc.tf +++ b/vpc.tf @@ -29,9 +29,9 @@ resource "alicloud_vswitch" "new" { } resource "alicloud_vswitch" "terway" { - count = var.new_vpc == true ? length(var.terway_vswitch_cirds) : 0 + count = var.new_vpc == true ? length(var.terway_vswitch_cidrs) : 0 vpc_id = concat(alicloud_vpc.new.*.id, [""])[0] - cidr_block = element(var.terway_vswitch_cirds, count.index) + cidr_block = element(var.terway_vswitch_cidrs, count.index) availability_zone = element(var.availability_zone, count.index) } From dfba3f92550926663d16c23ee22b9aa2ec5a57a8 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 08:21:42 +0100 Subject: [PATCH 17/27] Fix: typo Signed-off-by: Nicolas Lamirault --- vpc.tf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vpc.tf b/vpc.tf index 58265ec..05d30de 100644 --- a/vpc.tf +++ b/vpc.tf @@ -32,7 +32,9 @@ resource "alicloud_vswitch" "terway" { count = var.new_vpc == true ? length(var.terway_vswitch_cidrs) : 0 vpc_id = concat(alicloud_vpc.new.*.id, [""])[0] cidr_block = element(var.terway_vswitch_cidrs, count.index) - availability_zone = element(var.availability_zone, count.index) + availability_zone = length(var.availability_zones) > 0 ? element(var.availability_zones, count.index) : element(data.alicloud_zones.default.ids.*, count.index) + name = format("%s-terway", local.new_vpc_name) + tags = local.new_vpc_tags } resource "alicloud_nat_gateway" "new" { From c52536ff312ec34101dd3cc1a57b128ef22a1d77 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 08:23:15 +0100 Subject: [PATCH 18/27] Fix: typo Signed-off-by: Nicolas Lamirault --- locals.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locals.tf b/locals.tf index fb0814f..975fd5d 100644 --- a/locals.tf +++ b/locals.tf @@ -7,7 +7,7 @@ locals { K8s = local.k8s_name } vswitch_ids = length(var.vswitch_ids) > 0 ? var.vswitch_ids : alicloud_vswitch.new.*.id - pod_vswitch_ids = length(var.pod_vswitch_ids) > 0 ? var.pod_vswitch_ids : alicloud_vswitch.terway.*.id + pod_vswitch_ids = length(var.terway_vswitch_ids) > 0 ? var.terway_vswitch_ids : alicloud_vswitch.terway.*.id } resource "random_uuid" "this" {} \ No newline at end of file From 93c801efc687db47ea890550de035e5ce21726e9 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 09:11:26 +0100 Subject: [PATCH 19/27] Add: node pool configuration Signed-off-by: Nicolas Lamirault --- main.tf | 8 +++----- variables.tf | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/main.tf b/main.tf index bb39f29..238565b 100644 --- a/main.tf +++ b/main.tf @@ -57,9 +57,9 @@ resource "alicloud_cs_managed_kubernetes" "this" { } resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { - for_each = var.node_pools + for_each = toset(var.node_pools) - name = each.value.name + name = each.key cluster_id = alicloud_cs_managed_kubernetes.this[0].id vswitch_ids = local.vswitch_ids instance_types = each.value.node_instance_types @@ -91,9 +91,7 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { # } tags = merge( - { - Type = "autoscaling" - }, + each.value.tags, var.tags, ) } \ No newline at end of file diff --git a/variables.tf b/variables.tf index 55590fd..9114cda 100644 --- a/variables.tf +++ b/variables.tf @@ -224,7 +224,21 @@ variable "tags" { } variable "node_pools" { - type = map(string) description = "Kubernetes node pools" + type = map(object({ + node_count = number + node_min_number = number + node_max_number = number + node_bind_eip = bool + node_instance_types = string + system_disk_category = string + system_disk_size = number + auto_repair = bool + auto_upgrade = bool + max_unavailable = number + surge = bool + tags = map(string) + labels = list(map(string)) + })) default = {} } \ No newline at end of file From 7586e9da42ba34a0e1e7afbdabf43a605376d39f Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 09:15:05 +0100 Subject: [PATCH 20/27] Fix: remove labels Signed-off-by: Nicolas Lamirault --- variables.tf | 1 - 1 file changed, 1 deletion(-) diff --git a/variables.tf b/variables.tf index 9114cda..8c3730f 100644 --- a/variables.tf +++ b/variables.tf @@ -238,7 +238,6 @@ variable "node_pools" { max_unavailable = number surge = bool tags = map(string) - labels = list(map(string)) })) default = {} } \ No newline at end of file From c1990ac80b4a2df15e7b2d6f27590a544ad41228 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 09:18:19 +0100 Subject: [PATCH 21/27] Fix: map for_each Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 238565b..d791838 100644 --- a/main.tf +++ b/main.tf @@ -57,7 +57,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { } resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { - for_each = toset(var.node_pools) + for_each = var.node_pools name = each.key cluster_id = alicloud_cs_managed_kubernetes.this[0].id From 80fa694f89d86e5615793857cdc8f89b363c44ae Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 10:49:41 +0100 Subject: [PATCH 22/27] Fix: surge type Signed-off-by: Nicolas Lamirault --- variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables.tf b/variables.tf index 8c3730f..da8694b 100644 --- a/variables.tf +++ b/variables.tf @@ -236,7 +236,7 @@ variable "node_pools" { auto_repair = bool auto_upgrade = bool max_unavailable = number - surge = bool + surge = number tags = map(string) })) default = {} From 8559a8c411e7f54cd16d5c5a1954106f8999dba7 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 10:58:57 +0100 Subject: [PATCH 23/27] Fix: list of string for instance types Signed-off-by: Nicolas Lamirault --- variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variables.tf b/variables.tf index da8694b..a6dac24 100644 --- a/variables.tf +++ b/variables.tf @@ -230,7 +230,7 @@ variable "node_pools" { node_min_number = number node_max_number = number node_bind_eip = bool - node_instance_types = string + node_instance_types = list(string) system_disk_category = string system_disk_size = number auto_repair = bool From 085ef30362bfbf48a44fcdf8ef375155db0b682a Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 14:16:10 +0100 Subject: [PATCH 24/27] Add: ssh key pair Signed-off-by: Nicolas Lamirault --- main.tf | 4 +++- variables.tf | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/main.tf b/main.tf index d791838..14ee2ec 100644 --- a/main.tf +++ b/main.tf @@ -38,7 +38,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { cluster_ca_cert = var.cluster_ca_cert_path enable_ssh = var.enable_ssh - + key_name = var.key_name dynamic "maintenance_window" { for_each = var.maintenance_window.enable ? [var.maintenance_window] : [] @@ -67,6 +67,8 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { system_disk_size = each.value.system_disk_size node_count = each.value.node_count + key_name = var.key_name + scaling_config { min_size = each.value.node_min_number max_size = each.value.node_max_number diff --git a/variables.tf b/variables.tf index a6dac24..5c057df 100644 --- a/variables.tf +++ b/variables.tf @@ -215,6 +215,11 @@ variable "enable_ssh" { description = "Enable login to the node through SSH" } +variable "key_name" { + description = "The keypair of ssh login cluster node" + type = string +} + variable "tags" { type = map(string) description = "Tags associated to the resources" From fd7b3f22f9749ac4be5a1ce2aec44bbb022e66d2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 16:16:38 +0100 Subject: [PATCH 25/27] Fix: ssh key name and password Signed-off-by: Nicolas Lamirault --- main.tf | 5 +++-- variables.tf | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main.tf b/main.tf index 14ee2ec..610ad27 100644 --- a/main.tf +++ b/main.tf @@ -14,7 +14,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { pod_vswitch_ids = local.pod_vswitch_ids new_nat_gateway = var.new_vpc == true ? false : var.new_nat_gateway worker_disk_category = var.worker_disk_category - password = var.ecs_password + pod_cidr = var.k8s_pod_cidr service_cidr = var.k8s_service_cidr slb_internet_enabled = true @@ -37,8 +37,9 @@ resource "alicloud_cs_managed_kubernetes" "this" { client_key = var.client_key_path cluster_ca_cert = var.cluster_ca_cert_path + password = length(var.ecs_password) > 0 ? var.ecs_password: null enable_ssh = var.enable_ssh - key_name = var.key_name + key_name = ength(var.key_name) > 0 ? var.key_name : null dynamic "maintenance_window" { for_each = var.maintenance_window.enable ? [var.maintenance_window] : [] diff --git a/variables.tf b/variables.tf index 5c057df..ed6071a 100644 --- a/variables.tf +++ b/variables.tf @@ -145,7 +145,7 @@ variable "worker_disk_size" { variable "ecs_password" { description = "The password of worker nodes." type = string - default = "Abc12345" + default = "" } variable "worker_number" { From 7a2bb0bc7758a8a16e4fd744d11f4d4908ae47ce Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 12 Jan 2022 16:29:39 +0100 Subject: [PATCH 26/27] Fix: typo Signed-off-by: Nicolas Lamirault --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 610ad27..855fc55 100644 --- a/main.tf +++ b/main.tf @@ -39,7 +39,7 @@ resource "alicloud_cs_managed_kubernetes" "this" { password = length(var.ecs_password) > 0 ? var.ecs_password: null enable_ssh = var.enable_ssh - key_name = ength(var.key_name) > 0 ? var.key_name : null + key_name = length(var.key_name) > 0 ? var.key_name : null dynamic "maintenance_window" { for_each = var.maintenance_window.enable ? [var.maintenance_window] : [] From e3fe1977233c3a0925b259ab019fe934d60c41ea Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 18 Mar 2024 17:07:25 +0100 Subject: [PATCH 27/27] fix(node): install_cloud_monitor field Signed-off-by: Nicolas Lamirault --- main.tf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 855fc55..132c7f9 100644 --- a/main.tf +++ b/main.tf @@ -18,7 +18,6 @@ resource "alicloud_cs_managed_kubernetes" "this" { pod_cidr = var.k8s_pod_cidr service_cidr = var.k8s_service_cidr slb_internet_enabled = true - install_cloud_monitor = true version = var.kubernetes_version runtime = var.runtime worker_instance_types = var.worker_instance_types @@ -68,6 +67,8 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { system_disk_size = each.value.system_disk_size node_count = each.value.node_count + install_cloud_monitor = true + key_name = var.key_name scaling_config { @@ -97,4 +98,4 @@ resource "alicloud_cs_kubernetes_node_pool" "autoscaling" { each.value.tags, var.tags, ) -} \ No newline at end of file +}