From 4b7ad9a6b4cadad0c55371ce601498cb0bdb3419 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 5 Jul 2023 16:30:37 +0800 Subject: [PATCH 1/5] 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 e1b107ed9242adae581a92bd4c37f7a75a127e72 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Tue, 11 Jul 2023 15:43:34 +0800 Subject: [PATCH 2/5] add pre-commit-local add doc-faster --- .githooks/pre-commit-local | 30 ++++++++++++++++++++++++++++++ GNUmakefile | 25 ++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 3 deletions(-) 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..02315e64ac --- /dev/null +++ b/.githooks/pre-commit-local @@ -0,0 +1,30 @@ +#!/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 3: Checking go version...\n" +go_version=$(go version | awk '{print $3}' | cut -d '.' -f 1-2) +if [[ "$go_version" == *"$required_go_version"* ]]; then + echo "Go version is compatible. Now $go_version" +else + echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x Now $go_version" + printf "COMMIT FAILED\n" + exit 1 +fi + +printf "COMMIT READY\n" +exit 0 diff --git a/GNUmakefile b/GNUmakefile index 3db164976b..00f09fc476 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -27,9 +27,14 @@ fmt: gofmt -s -w ./$(PKG_NAME) fmt-faster: - @echo "==> [Faster]Fixing source code with gofmt...\n $(CHANGED_FILES) \n" - goimports -w $(CHANGED_FILES) - gofmt -s -w $(CHANGED_FILES) + @if [[ -z $(CHANGED_FILES) ]]; then \ + echo "skip the fmt cause the CHANGED_FILES is null."; \ + exit 0; \ + else \ + @echo "==> [Faster]Fixing source code with gofmt...\n $(CHANGED_FILES) \n"; \ + goimports -w $(CHANGED_FILES); \ + gofmt -s -w $(CHANGED_FILES); \ + fi # Currently required by tf-deploy compile fmtcheck: @@ -136,6 +141,20 @@ test-build-x86: doc: cd gendoc && go run ./... && cd .. +doc-faster: + @echo "==> [Faster]Generating doc..." + @if [ ! -f gendoc/gendoc ]; then \ + $(MAKE) doc-bin-build; \ + fi + @$(MAKE) doc-with-bin + +doc-with-bin: + cd gendoc && ./gendoc ./... && cd .. + +doc-bin-build: + @echo "==> Building gendoc binary..." + cd gendoc && go build ./... && cd .. + hooks: tools find .git/hooks -type l -exec rm {} \; find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \; From 3770d8e3fdf45fb51bb892341e93ec1433d1b3ae Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Tue, 11 Jul 2023 20:03:18 +0800 Subject: [PATCH 3/5] update makefile, pre-commit tmp. --- .githooks/pre-commit | 57 +++++++++++++++++++------------------- .githooks/pre-commit-local | 30 -------------------- GNUmakefile | 2 +- 3 files changed, 29 insertions(+), 60 deletions(-) delete mode 100755 .githooks/pre-commit-local diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 9b8e89e236..3eff44e723 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -1,47 +1,46 @@ #!/bin/sh -printf "==> Step 1: Gofmt Check...\n" -make fmtcheck +REQUIRED_GO_VERSION="1.18" # use the .go-version later + +printf "==> Step 1: [Faster]Gofmt Check...\n" +make fmt-faster if [ $? -ne 0 ]; then printf "COMMIT FAILED\n" exit 1 fi - -#make lint -#if [ $? -ne 0 ]; then -# printf "COMMIT FAILED\n" -# exit 1 -#fi - -printf "==> Step 2: Generating docs for tencentcloud provider...\n" -doc=`make doc 2>&1` +printf "==> Step 2: [Faster]Generating Docs...\n" +doc=$(make doc-faster 2>&1) if [ $? -ne 0 ]; then - echo "$doc"| tail -n 4|head -n 2 + echo "$doc" | tail -n 4 | head -n 2 printf "COMMIT FAILED\n" exit 1 fi -#make website-lint -#if [ $? -ne 0 ]; then -# printf "COMMIT FAILED\n" -# exit 1 -#fi - -printf "==> Step 3: Doc Check...\n" -diff=`git diff --name-only website/docs/` -if [ "$diff" != "" ]; then - printf "There are docs updated when checking, 'git add' it first.\n" +printf "==> Step 3: Checking go version...\n" +go_version=$(go version | awk '{print $3}' | cut -d '.' -f 1-2) +if [[ "$go_version" == *"$required_go_version"* ]]; then + echo "Go version is compatible. Now $go_version" +else + echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x Now $go_version" printf "COMMIT FAILED\n" exit 1 fi -printf "==> Step 4: Incremental unit tests...\n" -# go test check -make deltatest -if [ $? -ne 0 ]; then - printf "COMMIT FAILED\n" - exit 1 -fi +# printf "==> Step 4: Doc Check...\n" +# diff=$(git diff --name-only website/docs/) +# if [ "$diff" != "" ]; then +# printf "There are docs updated when checking, 'git add' it first.\n" +# printf "COMMIT FAILED\n" +# exit 1 +# fi + +# printf "==> Step 5: Incremental unit tests...\n" +# # go test check +# make deltatest +# if [ $? -ne 0 ]; then +# printf "COMMIT FAILED\n" +# exit 1 +# fi printf "COMMIT READY\n" exit 0 diff --git a/.githooks/pre-commit-local b/.githooks/pre-commit-local deleted file mode 100755 index 02315e64ac..0000000000 --- a/.githooks/pre-commit-local +++ /dev/null @@ -1,30 +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 3: Checking go version...\n" -go_version=$(go version | awk '{print $3}' | cut -d '.' -f 1-2) -if [[ "$go_version" == *"$required_go_version"* ]]; then - echo "Go version is compatible. Now $go_version" -else - echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x Now $go_version" - printf "COMMIT FAILED\n" - exit 1 -fi - -printf "COMMIT READY\n" -exit 0 diff --git a/GNUmakefile b/GNUmakefile index 00f09fc476..33eedbde49 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -155,7 +155,7 @@ doc-bin-build: @echo "==> Building gendoc binary..." cd gendoc && go build ./... && cd .. -hooks: tools +hooks: find .git/hooks -type l -exec rm {} \; find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \; From 0069becb20f86e5bc918b64f42be7f4f11bf7389 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 12 Jul 2023 11:08:59 +0800 Subject: [PATCH 4/5] adjust makefile --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index 33eedbde49..d960a0e80b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -31,7 +31,7 @@ fmt-faster: echo "skip the fmt cause the CHANGED_FILES is null."; \ exit 0; \ else \ - @echo "==> [Faster]Fixing source code with gofmt...\n $(CHANGED_FILES) \n"; \ + echo "==> [Faster]Fixing source code with gofmt...\n $(CHANGED_FILES) \n"; \ goimports -w $(CHANGED_FILES); \ gofmt -s -w $(CHANGED_FILES); \ fi From e097a54bba38356fbc2fe7bed92ce5bde8463ea7 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 12 Jul 2023 17:09:18 +0800 Subject: [PATCH 5/5] 1.update .go-version to 1.18.3, 2.use .go-version, 3.fix go version logic, 4.fix tools cmd in makefile. --- .githooks/pre-commit | 8 ++++---- .go-version | 2 +- GNUmakefile | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 3eff44e723..3aa3e23cc3 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -1,5 +1,5 @@ #!/bin/sh -REQUIRED_GO_VERSION="1.18" # use the .go-version later +REQUIRED_GO_VERSION=go$(cat .go-version) # use the .go-version printf "==> Step 1: [Faster]Gofmt Check...\n" make fmt-faster @@ -18,10 +18,10 @@ fi printf "==> Step 3: Checking go version...\n" go_version=$(go version | awk '{print $3}' | cut -d '.' -f 1-2) -if [[ "$go_version" == *"$required_go_version"* ]]; then - echo "Go version is compatible. Now $go_version" +if echo "$REQUIRED_GO_VERSION" | grep -q "$go_version\."; then + echo "Go version is compatible. Current:$go_version" else - echo "Go version is not compatible. Expected $REQUIRED_GO_VERSION.x Now $go_version" + echo "Go version is not compatible. Expected:$REQUIRED_GO_VERSION Current:$go_version" printf "COMMIT FAILED\n" exit 1 fi diff --git a/.go-version b/.go-version index 511a76e6fa..b9fb27ab4f 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.17.1 +1.18.3 diff --git a/GNUmakefile b/GNUmakefile index d960a0e80b..fcf1c17994 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -106,10 +106,9 @@ lint: ./$(PKG_NAME) tools: - GO111MODULE=on go install github.com/bflad/tfproviderlint/cmd/tfproviderlint - GO111MODULE=on go install github.com/client9/misspell/cmd/misspell - GO111MODULE=on go install github.com/golangci/golangci-lint/cmd/golangci-lint - GO111MODULE=on go install github.com/katbyte/terrafmt + GO111MODULE=on cd .ci/tools && go install github.com/bflad/tfproviderlint/cmd/tfproviderlint && cd ../.. + GO111MODULE=on cd .ci/tools && go install github.com/client9/misspell/cmd/misspell && cd ../.. + GO111MODULE=on cd .ci/tools && go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.45.2 && cd ../.. test-compile: @if [ "$(TEST)" = "./..." ]; then \ @@ -155,9 +154,10 @@ doc-bin-build: @echo "==> Building gendoc binary..." cd gendoc && go build ./... && cd .. -hooks: - find .git/hooks -type l -exec rm {} \; - find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \; +hooks: tools + @find .git/hooks -type l -exec rm {} \; + @find .githooks -type f -exec ln -sf ../../{} .git/hooks/ \; + @echo "==> Install hooks done." website: ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO)))