From 4b7ad9a6b4cadad0c55371ce601498cb0bdb3419 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 5 Jul 2023 16:30:37 +0800 Subject: [PATCH 1/3] example readjust: tencentcloud_kubernetes_serverless_node_pool --- ...urce_tc_kubernetes_serverless_node_pool.go | 99 +++++++++++++++++-- ...ernetes_serverless_node_pool.html.markdown | 96 ++++++++++++++++-- 2 files changed, 176 insertions(+), 19 deletions(-) diff --git a/tencentcloud/resource_tc_kubernetes_serverless_node_pool.go b/tencentcloud/resource_tc_kubernetes_serverless_node_pool.go index ec4c145933..87da7059fb 100644 --- a/tencentcloud/resource_tc_kubernetes_serverless_node_pool.go +++ b/tencentcloud/resource_tc_kubernetes_serverless_node_pool.go @@ -2,22 +2,101 @@ Provide a resource to create serverless node pool of cluster. Example Usage + +Add serverless node pool to a cluster + +```hcl +variable "availability_zone" { + default = "ap-guangzhou-3" +} + +variable "example_cluster_cidr" { + default = "10.31.0.0/16" +} + +locals { + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id + sg_id = data.tencentcloud_security_groups.sg.security_groups.0.security_group_id +} + +data "tencentcloud_vpc_subnets" "vpc" { + is_default = true + availability_zone = var.availability_zone +} + +data "tencentcloud_security_groups" "sg" { + name = "default" +} + +resource "tencentcloud_kubernetes_cluster" "example" { + vpc_id = local.vpc_id + cluster_cidr = var.example_cluster_cidr + cluster_max_pod_num = 32 + cluster_name = "tf_example_cluster" + cluster_desc = "tf example cluster" + cluster_max_service_num = 32 + cluster_version = "1.18.4" + cluster_deploy_type = "MANAGED_CLUSTER" +} + +resource "tencentcloud_kubernetes_serverless_node_pool" "example" { + cluster_id = tencentcloud_kubernetes_cluster.example.id + name = "tf_example_serverless_node_pool" + + serverless_nodes { + display_name = "tf_example_serverless_node1" + subnet_id = local.subnet_id + } + + serverless_nodes { + display_name = "tf_example_serverless_node2" + subnet_id = local.subnet_id + } + + security_group_ids = [local.sg_id] + labels = { + "label1" : "value1", + "label2" : "value2", + } +} ``` -resource "tencentcloud_kubernetes_serverless_node_pool" "example_serverless_node_pool" { + +Adding taints to the virtual nodes under this node pool + +The pods without appropriate tolerations will not be scheduled on this node. Refer [taint-and-toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. + +```hcl +resource "tencentcloud_kubernetes_serverless_node_pool" "example" { cluster_id = tencentcloud_kubernetes_cluster.example.id - name = "example_node_pool" + name = "tf_example_serverless_node_pool" + serverless_nodes { - display_name = "serverless_node1" - subnet_id = "subnet-xxx" + display_name = "tf_example_serverless_node1" + subnet_id = local.subnet_id } + serverless_nodes { - display_name = "serverless_node2" - subnet_id = "subnet-xxx" + display_name = "tf_example_serverless_node2" + subnet_id = local.subnet_id + } + + security_group_ids = [local.sg_id] + labels = { + "label1" : "value1", + "label2" : "value2", + } + + taints{ + key = "key1" + value = "value1" + effect = "NoSchedule" } - security_group_ids = ["sg-xxx"] - labels = { - "example1" : "test1", - "example2" : "test2", + + taints{ + key = "key1" + value = "value1" + effect = "NoExecute" } } ``` diff --git a/website/docs/r/kubernetes_serverless_node_pool.html.markdown b/website/docs/r/kubernetes_serverless_node_pool.html.markdown index 100c16c96a..a45cfa0ef8 100644 --- a/website/docs/r/kubernetes_serverless_node_pool.html.markdown +++ b/website/docs/r/kubernetes_serverless_node_pool.html.markdown @@ -13,22 +13,100 @@ Provide a resource to create serverless node pool of cluster. ## Example Usage +### Add serverless node pool to a cluster + +```hcl +variable "availability_zone" { + default = "ap-guangzhou-3" +} + +variable "example_cluster_cidr" { + default = "10.31.0.0/16" +} + +locals { + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id + sg_id = data.tencentcloud_security_groups.sg.security_groups.0.security_group_id +} + +data "tencentcloud_vpc_subnets" "vpc" { + is_default = true + availability_zone = var.availability_zone +} + +data "tencentcloud_security_groups" "sg" { + name = "default" +} + +resource "tencentcloud_kubernetes_cluster" "example" { + vpc_id = local.vpc_id + cluster_cidr = var.example_cluster_cidr + cluster_max_pod_num = 32 + cluster_name = "tf_example_cluster" + cluster_desc = "tf example cluster" + cluster_max_service_num = 32 + cluster_version = "1.18.4" + cluster_deploy_type = "MANAGED_CLUSTER" +} + +resource "tencentcloud_kubernetes_serverless_node_pool" "example" { + cluster_id = tencentcloud_kubernetes_cluster.example.id + name = "tf_example_serverless_node_pool" + + serverless_nodes { + display_name = "tf_example_serverless_node1" + subnet_id = local.subnet_id + } + + serverless_nodes { + display_name = "tf_example_serverless_node2" + subnet_id = local.subnet_id + } + + security_group_ids = [local.sg_id] + labels = { + "label1" : "value1", + "label2" : "value2", + } +} +``` + +### Adding taints to the virtual nodes under this node pool + +The pods without appropriate tolerations will not be scheduled on this node. Refer [taint-and-toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for more details. + ```hcl -resource "tencentcloud_kubernetes_serverless_node_pool" "example_serverless_node_pool" { +resource "tencentcloud_kubernetes_serverless_node_pool" "example" { cluster_id = tencentcloud_kubernetes_cluster.example.id - name = "example_node_pool" + name = "tf_example_serverless_node_pool" + serverless_nodes { - display_name = "serverless_node1" - subnet_id = "subnet-xxx" + display_name = "tf_example_serverless_node1" + subnet_id = local.subnet_id } + serverless_nodes { - display_name = "serverless_node2" - subnet_id = "subnet-xxx" + display_name = "tf_example_serverless_node2" + subnet_id = local.subnet_id } - security_group_ids = ["sg-xxx"] + + security_group_ids = [local.sg_id] labels = { - "example1" : "test1", - "example2" : "test2", + "label1" : "value1", + "label2" : "value2", + } + + taints { + key = "key1" + value = "value1" + effect = "NoSchedule" + } + + taints { + key = "key1" + value = "value1" + effect = "NoExecute" } } ``` From 9fd5fddf9e5f2793d8f3e971a628ba1c6ac5ccf2 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Tue, 11 Jul 2023 15:43:34 +0800 Subject: [PATCH 2/3] add pre-commit-local --- .githooks/pre-commit-local | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 .githooks/pre-commit-local diff --git a/.githooks/pre-commit-local b/.githooks/pre-commit-local new file mode 100755 index 0000000000..dca120dc69 --- /dev/null +++ b/.githooks/pre-commit-local @@ -0,0 +1,28 @@ +#!/bin/sh +REQUIRED_GO_VERSION="1.18" # use the .go-version later + +printf "==> Step 1: Gofmt Check...\n" +make fmt-faster +if [ $? -ne 0 ]; then + printf "COMMIT FAILED\n" + exit 1 +fi + +printf "==> Step 2: Generating docs...\n" +doc=$(make doc 2>&1) +if [ $? -ne 0 ]; then + echo "$doc" | tail -n 4 | head -n 2 + printf "COMMIT FAILED\n" + exit 1 +fi + +printf "==> Step 2: Generating docs...\n" +go_version=$(go version | awk '{print $3}') +if [ $go_version -ne $REQUIRED_GO_VERSION* ]; then + echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x" + printf "COMMIT FAILED\n" + exit 1 +fi + +printf "COMMIT READY\n" +exit 0 From f043ca751551eba5b2688978ba893d083e363cb6 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 12 Jul 2023 15:30:07 +0800 Subject: [PATCH 3/3] adjust e2e case --- .githooks/pre-commit-local | 28 ------------------- ...tcr_tag_retention_execution_config_test.go | 2 +- ...resource_tc_tcr_tag_retention_rule_test.go | 8 +++--- 3 files changed, 5 insertions(+), 33 deletions(-) delete mode 100755 .githooks/pre-commit-local diff --git a/.githooks/pre-commit-local b/.githooks/pre-commit-local deleted file mode 100755 index dca120dc69..0000000000 --- a/.githooks/pre-commit-local +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -REQUIRED_GO_VERSION="1.18" # use the .go-version later - -printf "==> Step 1: Gofmt Check...\n" -make fmt-faster -if [ $? -ne 0 ]; then - printf "COMMIT FAILED\n" - exit 1 -fi - -printf "==> Step 2: Generating docs...\n" -doc=$(make doc 2>&1) -if [ $? -ne 0 ]; then - echo "$doc" | tail -n 4 | head -n 2 - printf "COMMIT FAILED\n" - exit 1 -fi - -printf "==> Step 2: Generating docs...\n" -go_version=$(go version | awk '{print $3}') -if [ $go_version -ne $REQUIRED_GO_VERSION* ]; then - echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x" - printf "COMMIT FAILED\n" - exit 1 -fi - -printf "COMMIT READY\n" -exit 0 diff --git a/tencentcloud/resource_tc_tcr_tag_retention_execution_config_test.go b/tencentcloud/resource_tc_tcr_tag_retention_execution_config_test.go index b6b4935d0f..be4f40527a 100644 --- a/tencentcloud/resource_tc_tcr_tag_retention_execution_config_test.go +++ b/tencentcloud/resource_tc_tcr_tag_retention_execution_config_test.go @@ -36,7 +36,7 @@ const testAccTcrTagRetentionRule_manual = testAccTCRInstance_retention + ` resource "tencentcloud_tcr_namespace" "my_ns" { instance_id = tencentcloud_tcr_instance.mytcr_retention.id - name = "tf_test_ns_retention" + name = "tf_test_ns_retention_config" is_public = true is_auto_scan = true is_prevent_vul = true diff --git a/tencentcloud/resource_tc_tcr_tag_retention_rule_test.go b/tencentcloud/resource_tc_tcr_tag_retention_rule_test.go index c5b3669b2a..3ea78fcae3 100644 --- a/tencentcloud/resource_tc_tcr_tag_retention_rule_test.go +++ b/tencentcloud/resource_tc_tcr_tag_retention_rule_test.go @@ -28,7 +28,7 @@ func TestAccTencentCloudTcrTagRetentionRuleResource_basic(t *testing.T) { testAccCheckTCRTagRetentionRuleExists("tencentcloud_tcr_tag_retention_rule.my_rule"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "id"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "registry_id"), - resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "namespace_name", "tf_test_ns_retention"), + resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "namespace_name", "tf_test_ns_retention_rule"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.#"), resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.0.key", "nDaysSinceLastPush"), resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.0.value", "1"), @@ -46,7 +46,7 @@ func TestAccTencentCloudTcrTagRetentionRuleResource_basic(t *testing.T) { testAccCheckTCRTagRetentionRuleExists("tencentcloud_tcr_tag_retention_rule.my_rule"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "id"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "registry_id"), - resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "namespace_name", "tf_test_ns_retention"), + resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "namespace_name", "tf_test_ns_retention_rule"), resource.TestCheckResourceAttrSet("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.#"), resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.0.key", "nDaysSinceLastPush"), resource.TestCheckResourceAttr("tencentcloud_tcr_tag_retention_rule.my_rule", "retention_rule.0.value", "2"), @@ -152,7 +152,7 @@ const testAccTcrTagRetentionRule = testAccTCRInstance_retention + ` resource "tencentcloud_tcr_namespace" "my_ns" { instance_id = tencentcloud_tcr_instance.mytcr_retention.id - name = "tf_test_ns_retention" + name = "tf_test_ns_retention_rule" is_public = true is_auto_scan = true is_prevent_vul = true @@ -179,7 +179,7 @@ const testAccTcrTagRetentionRule_update = testAccTCRInstance_retention + ` resource "tencentcloud_tcr_namespace" "my_ns" { instance_id = tencentcloud_tcr_instance.mytcr_retention.id - name = "tf_test_ns_retention" + name = "tf_test_ns_retention_rule" is_public = true is_auto_scan = true is_prevent_vul = true