Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions tencentcloud/resource_tc_kubernetes_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -2180,6 +2180,12 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
return err
}

err = service.CheckOneOfClusterNodeReady(ctx, d.Id(), clusterInternet || clusterIntranet)

if err != nil {
return err
}

//intranet
if clusterIntranet {
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
Expand Down
4 changes: 4 additions & 0 deletions tencentcloud/resource_tc_kubernetes_cluster_endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,10 @@ func resourceTencentCloudTkeClusterEndpointCreate(d *schema.ResourceData, meta i
return fmt.Errorf("`cluster_intranet_subnet_id` can only set when `cluster_intranet` is true")
}

if err := service.CheckOneOfClusterNodeReady(ctx, id, true); err != nil {
return err
}

// Create Intranet(Private) Network
if clusterIntranet {
err := tencentCloudClusterIntranetSwitch(ctx, &service, id, intranetSubnetId, true)
Expand Down
15 changes: 0 additions & 15 deletions tencentcloud/resource_tc_kubernetes_node_pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -1064,21 +1064,6 @@ func resourceKubernetesNodePoolRead(d *schema.ResourceData, meta interface{}) er
}
}

// asg node unschedulable
clusterAsg, err := service.DescribeClusterAsGroupsByGroupId(ctx, clusterId, *nodePool.AutoscalingGroupId)

if err != nil {
return err
}

unschedulable := 0
if clusterAsg != nil {
if clusterAsg.IsUnschedulable != nil && *clusterAsg.IsUnschedulable {
unschedulable = 1
}
}
_ = d.Set("unschedulable", unschedulable)

// Relative scaling group status
asg, hasAsg, err := asService.DescribeAutoScalingGroupById(ctx, *nodePool.AutoscalingGroupId)
if err != nil {
Expand Down
23 changes: 23 additions & 0 deletions tencentcloud/service_tencentcloud_tke.go
Original file line number Diff line number Diff line change
Expand Up @@ -660,6 +660,29 @@ func (me *TkeService) CreateClusterInstances(ctx context.Context,
return
}

func (me *TkeService) CheckOneOfClusterNodeReady(ctx context.Context, clusterId string, mustHaveWorkers bool) error {
return resource.Retry(readRetryTimeout*5, func() *resource.RetryError {
_, workers, err := me.DescribeClusterInstances(ctx, clusterId)
if err != nil {
return retryError(err)
}
if len(workers) == 0 {
if mustHaveWorkers {
return resource.RetryableError(fmt.Errorf("waiting for workers created"))
}
return nil
}

for i := range workers {
worker := workers[i]
if worker.InstanceState == "running" {
return nil
}
}
return resource.RetryableError(fmt.Errorf("cluster %s waiting for one of the workers ready", clusterId))
})
}

/*
if cluster is creating, return error:TencentCloudSDKError] Code=InternalError.ClusterState
*/
Expand Down