From 4b7ad9a6b4cadad0c55371ce601498cb0bdb3419 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Wed, 5 Jul 2023 16:30:37 +0800 Subject: [PATCH 1/8] 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/8] 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 d34568ce8c1ad5976ddb6f051b345c2a32565f7c Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Tue, 11 Jul 2023 20:36:32 +0800 Subject: [PATCH 3/8] adjust example --- tencentcloud/resource_tc_kms_external_key.go | 50 ++++++++++++++++--- tencentcloud/resource_tc_kms_key.go | 46 +++++++++++++---- website/docs/r/kms_external_key.html.markdown | 46 ++++++++++++++--- website/docs/r/kms_key.html.markdown | 38 ++++++++++++-- 4 files changed, 152 insertions(+), 28 deletions(-) diff --git a/tencentcloud/resource_tc_kms_external_key.go b/tencentcloud/resource_tc_kms_external_key.go index abebc90ccc..4ddc29cab1 100644 --- a/tencentcloud/resource_tc_kms_external_key.go +++ b/tencentcloud/resource_tc_kms_external_key.go @@ -3,14 +3,48 @@ Provide a resource to create a KMS external key. Example Usage +Create a basic instance. + +```hcl +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" + + tags = { + "createdBy" = "terraform" + } +} +``` + +Specify the encryption algorithm and public key. + +```hcl +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" + wrapping_algorithm = "RSAES_PKCS1_V1_5" + key_material_base64 = "your_public_key_base64_encoded" + is_enabled = true + + tags = { + "createdBy" = "terraform" + } +} +``` + +Disable the external kms key. + ```hcl -resource "tencentcloud_kms_external_key" "foo" { - alias = "test" - description = "describe key test message." - wrapping_algorithm = "RSAES_PKCS1_V1_5" - key_material_base64 = "MTIzMTIzMTIzMTIzMTIzQQ==" - valid_to = 2147443200 - is_enabled = true +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" + wrapping_algorithm = "RSAES_PKCS1_V1_5" + key_material_base64 = "your_public_key_base64_encoded" + is_enabled = false + + tags = { + "test-tag" = "unit-test" + } } ``` @@ -19,7 +53,7 @@ Import KMS external keys can be imported using the id, e.g. ``` -$ terraform import tencentcloud_kms_external_key.foo 287e8f40-7cbb-11eb-9a3a-5254004f7f94 +$ terraform import tencentcloud_kms_external_key.example 287e8f40-7cbb-11eb-9a3a-xxxxx ``` */ package tencentcloud diff --git a/tencentcloud/resource_tc_kms_key.go b/tencentcloud/resource_tc_kms_key.go index cb3de91bcb..0608ecd532 100644 --- a/tencentcloud/resource_tc_kms_key.go +++ b/tencentcloud/resource_tc_kms_key.go @@ -3,16 +3,44 @@ Provide a resource to create a KMS key. Example Usage +Create and enable a instance. + ```hcl -resource "tencentcloud_kms_key" "foo" { - alias = "test" - description = "describe key test message." - key_rotation_enabled = true - is_enabled = true - - tags = { - "test-tag":"key-test" - } +resource "tencentcloud_kms_key" "example" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_rotation_enabled = false + is_enabled = true + + tags = { + "createdBy" = "terraform" + } +} +``` + +Specify the Key Usage as an asymmetry method. + +```hcl +resource "tencentcloud_kms_key" "example2" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_usage = "ASYMMETRIC_DECRYPT_RSA_2048" + is_enabled = false +} +``` + +Disable the kms key instance. + +```hcl +resource "tencentcloud_kms_key" "example3" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_rotation_enabled = false + is_enabled = false + + tags = { + "test-tag" = "unit-test" + } } ``` diff --git a/website/docs/r/kms_external_key.html.markdown b/website/docs/r/kms_external_key.html.markdown index 382bebdb12..1818c49d46 100644 --- a/website/docs/r/kms_external_key.html.markdown +++ b/website/docs/r/kms_external_key.html.markdown @@ -13,14 +13,48 @@ Provide a resource to create a KMS external key. ## Example Usage +### Create a basic instance. + +```hcl +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" + + tags = { + "createdBy" = "terraform" + } +} +``` + +### Specify the encryption algorithm and public key. + ```hcl -resource "tencentcloud_kms_external_key" "foo" { - alias = "test" - description = "describe key test message." +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" wrapping_algorithm = "RSAES_PKCS1_V1_5" - key_material_base64 = "MTIzMTIzMTIzMTIzMTIzQQ==" - valid_to = 2147443200 + key_material_base64 = "your_public_key_base64_encoded" is_enabled = true + + tags = { + "createdBy" = "terraform" + } +} +``` + +### Disable the external kms key. + +```hcl +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-example-kms-externalkey" + description = "example of kms external key" + wrapping_algorithm = "RSAES_PKCS1_V1_5" + key_material_base64 = "your_public_key_base64_encoded" + is_enabled = false + + tags = { + "test-tag" = "unit-test" + } } ``` @@ -51,6 +85,6 @@ In addition to all arguments above, the following attributes are exported: KMS external keys can be imported using the id, e.g. ``` -$ terraform import tencentcloud_kms_external_key.foo 287e8f40-7cbb-11eb-9a3a-5254004f7f94 +$ terraform import tencentcloud_kms_external_key.example 287e8f40-7cbb-11eb-9a3a-xxxxx ``` diff --git a/website/docs/r/kms_key.html.markdown b/website/docs/r/kms_key.html.markdown index 81fccec5e5..8ad3cf1eb6 100644 --- a/website/docs/r/kms_key.html.markdown +++ b/website/docs/r/kms_key.html.markdown @@ -13,15 +13,43 @@ Provide a resource to create a KMS key. ## Example Usage +### Create and enable a instance. + ```hcl -resource "tencentcloud_kms_key" "foo" { - alias = "test" - description = "describe key test message." - key_rotation_enabled = true +resource "tencentcloud_kms_key" "example" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_rotation_enabled = false is_enabled = true tags = { - "test-tag" : "key-test" + "createdBy" = "terraform" + } +} +``` + +### Specify the Key Usage as an asymmetry method. + +```hcl +resource "tencentcloud_kms_key" "example2" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_usage = "ASYMMETRIC_DECRYPT_RSA_2048" + is_enabled = false +} +``` + +### Disable the kms key instance. + +```hcl +resource "tencentcloud_kms_key" "example3" { + alias = "tf-example-kms-key" + description = "example of kms key" + key_rotation_enabled = false + is_enabled = false + + tags = { + "test-tag" = "unit-test" } } ``` From 40385a3c5fd5ee8dfa67c27fbe9a734f8744029b Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Tue, 11 Jul 2023 20:46:15 +0800 Subject: [PATCH 4/8] add example code --- examples/tencentcloud-kms/main.tf | 39 ++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/examples/tencentcloud-kms/main.tf b/examples/tencentcloud-kms/main.tf index ca9a708e92..bbd189fc6d 100644 --- a/examples/tencentcloud-kms/main.tf +++ b/examples/tencentcloud-kms/main.tf @@ -1,31 +1,44 @@ +terraform { + required_providers { + tencentcloud = { + source = "tencentcloudstack/tencentcloud" + } + } +} + provider "tencentcloud" { region = "ap-guangzhou" } -resource "tencentcloud_kms_external_key" "external_key" { - alias = "tf-kms-external-key" - description = "create a CMK and import key_material_base64." - wrapping_algorithm = "RSAES_PKCS1_V1_5" - key_material_base64 = "MTIzMTIzMTIzMTIzMTIzQQ==" - is_enabled = false +resource "tencentcloud_kms_external_key" "example" { + alias = "tf-kms-external-key" + description = "create a CMK and import key_material_base64." + wrapping_algorithm = "RSAES_PKCS1_V1_5" + key_material_base64 = "your_public_key_base64_encoded" + is_enabled = false tags = { - "test-tag":"test" + "test-tag" : "test" } } -resource "tencentcloud_kms_key" "key" { - alias = "tf-kms-key" - description = "create a CMK generated by KMS." +resource "tencentcloud_kms_key" "example" { + alias = "tf-kms-key" + description = "create a CMK generated by KMS." key_rotation_enabled = false - is_enabled = true + is_enabled = true tags = { - "test-tag":"test" + "test-tag" : "test" } } data "tencentcloud_kms_keys" "keys" { key_usage = "ALL" - origin = "EXTERNAL" + origin = "TENCENT_KMS" + key_state = 1 +} + +output "kms_keys" { + value = data.tencentcloud_kms_keys.keys } From 1b5613ef40d631d31302c4095951edfec4763644 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Thu, 13 Jul 2023 10:44:42 +0800 Subject: [PATCH 5/8] update golangci-lint v1.45.2 to v1.50.0 --- .github/workflows/golangci-lint.yml | 5 +---- .golangci.yml | 3 --- vendor/github.com/quasilyte/gogrep/Makefile | 2 +- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index b5fc96f089..9870fe5ca8 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -35,8 +35,5 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - version: v1.45.2 + version: v1.50.0 working-directory: ./tencentcloud - - - diff --git a/.golangci.yml b/.golangci.yml index cb03197994..fa6c42a621 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -10,17 +10,14 @@ issues: linters: disable-all: true enable: - - deadcode - errcheck - gofmt - gosimple - ineffassign - misspell - staticcheck - - structcheck - unconvert - unused - - varcheck - vet linters-settings: diff --git a/vendor/github.com/quasilyte/gogrep/Makefile b/vendor/github.com/quasilyte/gogrep/Makefile index 01dd2192e8..5cd07e6049 100644 --- a/vendor/github.com/quasilyte/gogrep/Makefile +++ b/vendor/github.com/quasilyte/gogrep/Makefile @@ -6,7 +6,7 @@ test: @echo "everything is OK" ci-lint: - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH_DIR)/bin v1.45.2 + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH_DIR)/bin v1.50.0 $(GOPATH_DIR)/bin/golangci-lint run ./... go install github.com/quasilyte/go-consistent@master $(GOPATH_DIR)/bin/go-consistent . ./internal/... ./nodetag/... ./filters/... From cac97ba68261d725054a081f9aceaa8a198f4506 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Thu, 13 Jul 2023 10:54:27 +0800 Subject: [PATCH 6/8] update make tools to v1.50.0 --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index fcf1c17994..88c7e914a2 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -108,7 +108,7 @@ lint: tools: 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 ../.. + GO111MODULE=on cd .ci/tools && go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.50.0 && cd ../.. test-compile: @if [ "$(TEST)" = "./..." ]; then \ From be7b9708323f7b6ec1400cbf06c2512aa9325239 Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Thu, 13 Jul 2023 11:03:04 +0800 Subject: [PATCH 7/8] test --- .golangci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.golangci.yml b/.golangci.yml index fa6c42a621..cb03197994 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -10,14 +10,17 @@ issues: linters: disable-all: true enable: + - deadcode - errcheck - gofmt - gosimple - ineffassign - misspell - staticcheck + - structcheck - unconvert - unused + - varcheck - vet linters-settings: From a77e5f433e4bcefc825b6b9109a01eb7ed9f6a9b Mon Sep 17 00:00:00 2001 From: nickyinluo Date: Thu, 20 Jul 2023 15:02:28 +0800 Subject: [PATCH 8/8] revert golangci-limnt version --- .githooks/pre-commit-local | 28 ---------------------------- .github/workflows/golangci-lint.yml | 2 +- .go-version | 2 +- GNUmakefile | 2 +- 4 files changed, 3 insertions(+), 31 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/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 9870fe5ca8..458f241aae 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -35,5 +35,5 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - version: v1.50.0 + version: v1.45.2 working-directory: ./tencentcloud diff --git a/.go-version b/.go-version index b9fb27ab4f..507266ba01 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.18.3 +1.17.1 \ No newline at end of file diff --git a/GNUmakefile b/GNUmakefile index 88c7e914a2..fcf1c17994 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -108,7 +108,7 @@ lint: tools: 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.50.0 && 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 \