Skip to content

Commit f059a2b

Browse files
authored
Merge pull request #616 from rostachen/master
tke支持cluster_version升级时携带历史cluster_extra_args记录
2 parents 1b7f5a6 + 4292f24 commit f059a2b

File tree

6 files changed

+58
-6
lines changed

6 files changed

+58
-6
lines changed

CHANGELOG.md

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

414
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=

tencentcloud/common.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ var retryableErrorCode = []string{
5050
"TradeUnknownError",
5151
"RequestLimitExceeded",
5252
"ResourceInUse",
53-
"ResourceInsufficient",
5453
"ResourceUnavailable",
5554
// cbs
5655
"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)