diff --git a/.changelog/3554.txt b/.changelog/3554.txt new file mode 100644 index 0000000000..8b0bfb84f8 --- /dev/null +++ b/.changelog/3554.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_kubernetes_addon: support custom timeout +``` \ No newline at end of file diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_addon.go b/tencentcloud/services/tke/resource_tc_kubernetes_addon.go index 2b38d0b2b6..c4a52782d3 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_addon.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_addon.go @@ -7,6 +7,7 @@ import ( "fmt" "log" "strings" + "time" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -25,6 +26,11 @@ func ResourceTencentCloudKubernetesAddon() *schema.Resource { Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(3 * time.Minute), + Update: schema.DefaultTimeout(3 * time.Minute), + Delete: schema.DefaultTimeout(3 * time.Minute), + }, Schema: map[string]*schema.Schema{ "cluster_id": { Type: schema.TypeString, @@ -127,7 +133,7 @@ func resourceTencentCloudKubernetesAddonCreate(d *schema.ResourceData, meta inte waitRequest := tke.NewDescribeAddonRequest() waitRequest.ClusterId = &clusterId waitRequest.AddonName = &addonName - err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + err = resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError { result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeAddonWithContext(ctx, waitRequest) if e != nil { return tccommon.RetryError(e) @@ -275,7 +281,7 @@ func resourceTencentCloudKubernetesAddonUpdate(d *schema.ResourceData, meta inte waitRequest := tke.NewDescribeAddonRequest() waitRequest.ClusterId = &clusterId waitRequest.AddonName = &addonName - err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + err = resource.Retry(d.Timeout(schema.TimeoutUpdate), func() *resource.RetryError { result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeAddonWithContext(ctx, waitRequest) if e != nil { return tccommon.RetryError(e) @@ -357,7 +363,7 @@ func resourceTencentCloudKubernetesAddonDelete(d *schema.ResourceData, meta inte waitRequest := tke.NewDescribeAddonRequest() waitRequest.ClusterId = &clusterId waitRequest.AddonName = &addonName - err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + err = resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError { result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeAddonWithContext(ctx, waitRequest) if e != nil { if sdkerr, ok := e.(*sdkErrors.TencentCloudSDKError); ok {