Skip to content

Commit 2497c86

Browse files
authored
fix(tke): [122697299] tencentcloud_kubernetes_cluster Optimize resource import (#3258)
* add * add
1 parent d7136a4 commit 2497c86

File tree

5 files changed

+68
-37
lines changed

5 files changed

+68
-37
lines changed

.changelog/3258.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_kubernetes_cluster: Optimize resource import
3+
```

tencentcloud/services/tke/resource_tc_kubernetes_cluster.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ It's more flexible than managing worker config directly with `tencentcloud_kuber
77

88
~> **NOTE:** Executing `terraform destroy` to destroy the resource will default to deleting the node resource, If it is necessary to preserve node instance resources, Please set `instance_delete_mode` to `retain`.
99

10+
~> **NOTE:** If you want to set up addon for the tke cluster, it is recommended to use resource `tencentcloud_kubernetes_addon`.
11+
1012
Example Usage
1113

1214
Create a basic cluster with two worker nodes

tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -773,43 +773,6 @@ func resourceTencentCloudKubernetesClusterReadPostHandleResponse0(ctx context.Co
773773
_ = d.Set("cluster_audit", audits)
774774
}
775775

776-
applist, err := service.DescribeExtensionAddonList(ctx, d.Id())
777-
if err != nil {
778-
return err
779-
}
780-
addons := make([]map[string]interface{}, 0)
781-
for _, item := range applist.Items {
782-
if item.Status.Phase == "Succeeded" && item.Labels["application.tkestack.io/type"] == "internal-addon" {
783-
addonParam := AddonRequestBody{
784-
Kind: helper.String("App"),
785-
Spec: &AddonSpec{
786-
Chart: &AddonSpecChart{
787-
ChartName: item.Spec.Chart.ChartName,
788-
ChartVersion: item.Spec.Chart.ChartVersion,
789-
},
790-
Values: &AddonSpecValues{
791-
Values: item.Spec.Values.Values,
792-
RawValues: item.Spec.Values.RawValues,
793-
RawValuesType: item.Spec.Values.RawValuesType,
794-
},
795-
},
796-
}
797-
result, err := json.Marshal(addonParam)
798-
if err != nil {
799-
return err
800-
}
801-
802-
addon := map[string]interface{}{
803-
"name": item.Name,
804-
"param": string(result),
805-
}
806-
addons = append(addons, addon)
807-
}
808-
}
809-
if len(addons) > 0 {
810-
_ = d.Set("extension_addon", addons)
811-
}
812-
813776
resp, err := service.DescribeClusterExtraArgs(ctx, d.Id())
814777
if err != nil {
815778
return err

tencentcloud/services/tke/service_tencentcloud_tke_addons.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,67 @@ func (me *TkeService) DescribeExtensionAddonList(ctx context.Context, clusterId
134134
return appList, err
135135
}
136136

137+
func (me *TkeService) DescribeAddonList(ctx context.Context, clusterId string) (ret []*tke.Addon, errRet error) {
138+
request := tke.NewDescribeAddonRequest()
139+
response := tke.NewDescribeAddonResponse()
140+
request.ClusterId = &clusterId
141+
142+
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
143+
result, e := me.client.UseTkeClient().DescribeAddon(request)
144+
if e != nil {
145+
return tccommon.RetryError(e)
146+
}
147+
148+
if result == nil || result.Response == nil {
149+
return resource.NonRetryableError(fmt.Errorf("Response is nil."))
150+
}
151+
152+
response = result
153+
return nil
154+
})
155+
156+
if err != nil {
157+
errRet = err
158+
return
159+
}
160+
161+
if len(response.Response.Addons) == 0 {
162+
return
163+
}
164+
165+
ret = response.Response.Addons
166+
return
167+
}
168+
169+
func (me *TkeService) DescribeAddonValuesList(ctx context.Context, clusterId, addonName string) (ret *tke.DescribeAddonValuesResponseParams, errRet error) {
170+
request := tke.NewDescribeAddonValuesRequest()
171+
response := tke.NewDescribeAddonValuesResponse()
172+
request.ClusterId = &clusterId
173+
request.AddonName = &addonName
174+
175+
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
176+
result, e := me.client.UseTkeClient().DescribeAddonValues(request)
177+
if e != nil {
178+
return tccommon.RetryError(e)
179+
}
180+
181+
if result == nil || result.Response == nil {
182+
return resource.NonRetryableError(fmt.Errorf("Response is nil."))
183+
}
184+
185+
response = result
186+
return nil
187+
})
188+
189+
if err != nil {
190+
errRet = err
191+
return
192+
}
193+
194+
ret = response.Response
195+
return
196+
}
197+
137198
func (me *TkeService) PollingAddonsPhase(ctx context.Context, clusterId, addonName string, addonResponseData *AddonResponseData) (string, bool, error) {
138199
var (
139200
err error

website/docs/r/kubernetes_cluster.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ It's more flexible than managing worker config directly with `tencentcloud_kuber
1818

1919
~> **NOTE:** Executing `terraform destroy` to destroy the resource will default to deleting the node resource, If it is necessary to preserve node instance resources, Please set `instance_delete_mode` to `retain`.
2020

21+
~> **NOTE:** If you want to set up addon for the tke cluster, it is recommended to use resource `tencentcloud_kubernetes_addon`.
22+
2123
## Example Usage
2224

2325
### Create a basic cluster with two worker nodes

0 commit comments

Comments
 (0)