Skip to content

Commit 7a5caba

Browse files
authored
Merge pull request #1546 from xawei/feat/tke-endpoint-support-serverless-node
fix: tke cluster endpoint can be created even if cluster only have serverless node
2 parents 75900e2 + bb6c1ee commit 7a5caba

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

.changelog/1546.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_kubernetes_cluster_endpoint: support creating tke cluster endpoint even if cluster only have serverless node
3+
```
4+
```release-note:enhancement
5+
resource/tencentcloud_kubernetes_cluster: support creating tke cluster endpoint even if cluster only have serverless node
6+
```

tencentcloud/service_tencentcloud_tke.go

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,14 @@ func (me *TkeService) CheckOneOfClusterNodeReady(ctx context.Context, clusterId
680680
if err != nil {
681681
return retryError(err)
682682
}
683-
if len(workers) == 0 {
683+
684+
// check serverless node
685+
virtualNodes, err := me.DescribeClusterVirtualNode(ctx, clusterId)
686+
if err != nil {
687+
return retryError(err)
688+
}
689+
690+
if len(workers) == 0 && len(virtualNodes) == 0 {
684691
if mustHaveWorkers {
685692
return resource.RetryableError(fmt.Errorf("waiting for workers created"))
686693
}
@@ -693,6 +700,13 @@ func (me *TkeService) CheckOneOfClusterNodeReady(ctx context.Context, clusterId
693700
return nil
694701
}
695702
}
703+
for i := range virtualNodes {
704+
virtualNode := virtualNodes[i]
705+
if virtualNode.Phase != nil && *virtualNode.Phase == "Running" {
706+
return nil
707+
}
708+
}
709+
696710
return resource.RetryableError(fmt.Errorf("cluster %s waiting for one of the workers ready", clusterId))
697711
})
698712
}
@@ -2374,3 +2388,37 @@ func (me *TkeService) ModifyClusterVirtualNodePool(ctx context.Context, request
23742388

23752389
return
23762390
}
2391+
2392+
func (me *TkeService) DescribeClusterVirtualNode(ctx context.Context, clusterId string) (virtualNodes []tke.VirtualNode, errRet error) {
2393+
logId := getLogId(ctx)
2394+
2395+
request := tke.NewDescribeClusterVirtualNodeRequest()
2396+
request.ClusterId = common.StringPtr(clusterId)
2397+
2398+
defer func() {
2399+
if errRet != nil {
2400+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
2401+
logId, request.GetAction(), request.ToJsonString(), errRet.Error())
2402+
}
2403+
}()
2404+
2405+
ratelimit.Check(request.GetAction())
2406+
response, err := me.client.UseTkeClient().DescribeClusterVirtualNode(request)
2407+
2408+
if err != nil {
2409+
errRet = err
2410+
return
2411+
}
2412+
2413+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
2414+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
2415+
2416+
if response.Response != nil && len(response.Response.Nodes) > 0 {
2417+
for _, node := range response.Response.Nodes {
2418+
if node != nil {
2419+
virtualNodes = append(virtualNodes, *node)
2420+
}
2421+
}
2422+
}
2423+
return
2424+
}

0 commit comments

Comments
 (0)