Skip to content

Commit 18ab7af

Browse files
author
rostachen
committed
1.Remove ResourceInsufficient from retryableErrorCode
2. Resource: `tencentcloud_kubernetes_cluster` upgrade `cluster_version` will send old `cluster_extra_args` to tke.
1 parent 1b7f5a6 commit 18ab7af

File tree

9 files changed

+189
-6
lines changed

9 files changed

+189
-6
lines changed

.terraform.lock.hcl

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
## 1.56.2 (Unreleased)
1+
## 1.56.3 (Unreleased)
2+
## 1.56.2 (April 19, 2021)
3+
BUG FIXES:
4+
5+
* Remove `ResourceInsufficient` from `retryableErrorCode`.
6+
7+
ENHANCEMENTS:
8+
9+
* Resource: `tencentcloud_kubernetes_cluster` upgrade `cluster_version` will send old `cluster_extra_args` to tke.
10+
211
## 1.56.1 (April 6,2021)
312

413
BUG FIXES:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ require (
1515
github.com/mattn/go-colorable v0.1.6 // indirect
1616
github.com/mitchellh/go-homedir v1.1.0
1717
github.com/pkg/errors v0.9.1
18-
github.com/tencentcloud/tencentcloud-sdk-go v1.0.123
18+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.137
1919
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
2020
github.com/zclconf/go-cty v1.4.2 // indirect
2121
golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,8 @@ github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0K
443443
github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
444444
github.com/tencentcloud/tencentcloud-sdk-go v1.0.123 h1:6yOMrmTuKtW1Y8VtWgN5Jt3jUcWnWtRX0gZfD1LxRcc=
445445
github.com/tencentcloud/tencentcloud-sdk-go v1.0.123/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI=
446+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.137 h1:NEV2Dp7NofwDsyT0OpY5W0fEqsgsbKETD5gWI7/Nn/s=
447+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.137/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI=
446448
github.com/tetafro/godot v0.3.7 h1:+mecr7RKrUKB5UQ1gwqEMn13sDKTyDR8KNIquB9mm+8=
447449
github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
448450
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e h1:RumXZ56IrCj4CL+g1b9OL/oH0QnsF976bC8xQFYUD5Q=

k8s.tf

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
variable "availability_zone_first" {
2+
default = "ap-guangzhou-4"
3+
}
4+
5+
variable "availability_zone_second" {
6+
default = "ap-guangzhou-4"
7+
}
8+
9+
variable "cluster_cidr" {
10+
default = "10.31.0.0/20"
11+
}
12+
13+
variable "default_instance_type" {
14+
default = "S2.MEDIUM2"
15+
#default = "SA2.2XLARGE16"
16+
}
17+
18+
data "tencentcloud_vpc_subnets" "vpc_first" {
19+
is_default = true
20+
availability_zone = var.availability_zone_first
21+
}
22+
23+
data "tencentcloud_vpc_subnets" "vpc_second" {
24+
is_default = true
25+
availability_zone = var.availability_zone_second
26+
}
27+
28+
resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
29+
vpc_id = data.tencentcloud_vpc_subnets.vpc_first.instance_list.0.vpc_id
30+
cluster_cidr = var.cluster_cidr
31+
cluster_max_pod_num = 32
32+
cluster_name = "rosta-test"
33+
cluster_desc = "test cluster desc"
34+
cluster_max_service_num = 32
35+
cluster_internet = true
36+
managed_cluster_internet_security_policies = ["3.3.3.3", "1.1.1.1"]
37+
cluster_deploy_type = "MANAGED_CLUSTER"
38+
cluster_version = "1.16.3"
39+
#cluster_version = "1.18.4"
40+
41+
cluster_extra_args {
42+
kube_apiserver = [
43+
"service-account-issuer=kubernetes.default.svc",
44+
"service-account-signing-key-file=/etc/kubernetes/files/apiserver/service-account.key",
45+
"api-audiences=kubernetes.default.svc"
46+
]
47+
}
48+
49+
worker_config {
50+
count = 1
51+
availability_zone = var.availability_zone_first
52+
instance_type = var.default_instance_type
53+
system_disk_type = "CLOUD_SSD"
54+
system_disk_size = 60
55+
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
56+
internet_max_bandwidth_out = 100
57+
public_ip_assigned = true
58+
subnet_id = data.tencentcloud_vpc_subnets.vpc_first.instance_list.0.subnet_id
59+
60+
data_disk {
61+
disk_type = "CLOUD_PREMIUM"
62+
disk_size = 50
63+
}
64+
65+
enhanced_security_service = false
66+
enhanced_monitor_service = false
67+
user_data = "dGVzdA=="
68+
password = "ZZXXccvv1212"
69+
}
70+
71+
worker_config {
72+
count = 1
73+
availability_zone = var.availability_zone_second
74+
instance_type = var.default_instance_type
75+
system_disk_type = "CLOUD_SSD"
76+
system_disk_size = 60
77+
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
78+
internet_max_bandwidth_out = 100
79+
public_ip_assigned = true
80+
subnet_id = data.tencentcloud_vpc_subnets.vpc_second.instance_list.0.subnet_id
81+
82+
data_disk {
83+
disk_type = "CLOUD_PREMIUM"
84+
disk_size = 50
85+
}
86+
87+
enhanced_security_service = false
88+
enhanced_monitor_service = false
89+
user_data = "dGVzdA=="
90+
password = "ZZXXccvv1212"
91+
cam_role_name = "CVM_QcsRole"
92+
}
93+
94+
labels = {
95+
"test1" = "test1",
96+
"test2" = "test2",
97+
}
98+
}

provider.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
terraform {
2+
required_providers {
3+
tencentcloud = {
4+
source = "tencentcloudstack/tencentcloud"
5+
# version = "1.53.0"
6+
}
7+
}
8+
}
9+
10+
provider "tencentcloud" {
11+
region = "ap-guangzhou"
12+
}
13+

tencentcloud/common.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ var retryableErrorCode = []string{
5050
"TradeUnknownError",
5151
"RequestLimitExceeded",
5252
"ResourceInUse",
53-
"ResourceInsufficient",
53+
//"ResourceInsufficient",
5454
"ResourceUnavailable",
5555
// cbs
5656
"ResourceBusy",

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2124,9 +2124,12 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
21242124
if !isOk {
21252125
return fmt.Errorf("version %s is unsupported", newVersion)
21262126
}
2127-
2127+
extraArgs, ok := d.GetOk("cluster_extra_args")
2128+
if !ok {
2129+
extraArgs = nil
2130+
}
21282131
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2129-
inErr := tkeService.ModifyClusterVersion(ctx, id, newVersion)
2132+
inErr := tkeService.ModifyClusterVersion(ctx, id, newVersion, extraArgs)
21302133
if inErr != nil {
21312134
return retryError(inErr)
21322135
}

tencentcloud/service_tencentcloud_tke.go

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -825,14 +825,52 @@ func (me *TkeService) ModifyClusterAttribute(ctx context.Context, id string, pro
825825
return
826826
}
827827

828-
func (me *TkeService) ModifyClusterVersion(ctx context.Context, id string, clusterVersion string) (errRet error) {
828+
func (me *TkeService) ModifyClusterVersion(ctx context.Context, id string, clusterVersion string, extraArgs interface{}) (errRet error) {
829829
logId := getLogId(ctx)
830830
request := tke.NewUpdateClusterVersionRequest()
831831
defer func() {
832832
if errRet != nil {
833833
log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error())
834834
}
835835
}()
836+
837+
if extraArgs != nil && len(extraArgs.([]interface{})) > 0 {
838+
// the first elem is in use
839+
extraInterface := extraArgs.([]interface{})
840+
extraMap := extraInterface[0].(map[string]interface{})
841+
842+
kas := make([]*string, 0)
843+
if kaArgs, exist := extraMap["kube_apiserver"]; exist {
844+
args := kaArgs.([]interface{})
845+
for index := range args {
846+
str := args[index].(string)
847+
kas = append(kas, &str)
848+
}
849+
}
850+
kcms := make([]*string, 0)
851+
if kcmArgs, exist := extraMap["kube_controller_manager"]; exist {
852+
args := kcmArgs.([]interface{})
853+
for index := range args {
854+
str := args[index].(string)
855+
kcms = append(kcms, &str)
856+
}
857+
}
858+
kss := make([]*string, 0)
859+
if ksArgs, exist := extraMap["kube_scheduler"]; exist {
860+
args := ksArgs.([]interface{})
861+
for index := range args {
862+
str := args[index].(string)
863+
kss = append(kss, &str)
864+
}
865+
}
866+
867+
request.ExtraArgs = &tke.ClusterExtraArgs{
868+
KubeAPIServer: kas,
869+
KubeControllerManager: kcms,
870+
KubeScheduler: kss,
871+
}
872+
}
873+
836874
request.ClusterId = &id
837875
request.DstVersion = &clusterVersion
838876

0 commit comments

Comments
 (0)