@@ -3473,7 +3473,7 @@ func checkCommonResAvailableForK8sNodeGroupDynamicReq(connName string, dReq *mod
34733473}
34743474
34753475// getK8sClusterReqFromDynamicReq is func to get K8sClusterReq from K8sClusterDynamicReq
3476- func getK8sClusterReqFromDynamicReq (reqID string , nsId string , dReq * model.K8sClusterDynamicReq ) (* model.K8sClusterReq , error ) {
3476+ func getK8sClusterReqFromDynamicReq (reqID string , nsId string , dReq * model.K8sClusterDynamicReq , skipVersionCheck bool ) (* model.K8sClusterReq , error ) {
34773477 onDemand := true
34783478
34793479 emptyK8sReq := & model.K8sClusterReq {}
@@ -3487,10 +3487,24 @@ func getK8sClusterReqFromDynamicReq(reqID string, nsId string, dReq *model.K8sCl
34873487 }
34883488 k8sngReq .SpecId = specInfo .Id
34893489
3490- k8sRecVersion , err := getK8sRecommendVersion (specInfo .ProviderName , specInfo .RegionName , dReq .Version )
3491- if err != nil {
3492- log .Err (err ).Msg ("" )
3493- return emptyK8sReq , err
3490+ var k8sRecVersion string
3491+ if skipVersionCheck {
3492+ // Use the requested version directly without validation
3493+ k8sRecVersion = dReq .Version
3494+ if k8sRecVersion == "" {
3495+ // If skipVersionCheck is true, an explicit version must be provided
3496+ err := fmt .Errorf ("skipVersionCheck is true but no version is specified; an explicit version must be provided" )
3497+ log .Err (err ).Msg ("" )
3498+ return emptyK8sReq , err
3499+ }
3500+ log .Warn ().Msgf ("K8sCluster version validation skipped for version: %s (dynamic)" , k8sRecVersion )
3501+ } else {
3502+ // Normal validation path
3503+ k8sRecVersion , err = getK8sRecommendVersion (specInfo .ProviderName , specInfo .RegionName , dReq .Version )
3504+ if err != nil {
3505+ log .Err (err ).Msg ("" )
3506+ return emptyK8sReq , err
3507+ }
34943508 }
34953509
34963510 // If ConnectionName is specified by the request, Use ConnectionName from the request
@@ -3648,7 +3662,7 @@ func getK8sClusterReqFromDynamicReq(reqID string, nsId string, dReq *model.K8sCl
36483662}
36493663
36503664// CreateK8sClusterDynamic is func to create K8sCluster obeject and deploy requested K8sCluster and NodeGroup in a dynamic way
3651- func CreateK8sClusterDynamic (reqID string , nsId string , dReq * model.K8sClusterDynamicReq , deployOption string ) (* model.K8sClusterInfo , error ) {
3665+ func CreateK8sClusterDynamic (reqID string , nsId string , dReq * model.K8sClusterDynamicReq , deployOption string , skipVersionCheck bool ) (* model.K8sClusterInfo , error ) {
36523666 emptyK8sCluster := & model.K8sClusterInfo {}
36533667 err := common .CheckString (nsId )
36543668 if err != nil {
@@ -3673,7 +3687,7 @@ func CreateK8sClusterDynamic(reqID string, nsId string, dReq *model.K8sClusterDy
36733687 }
36743688
36753689 //If not, generate default resources dynamically.
3676- k8sReq , err := getK8sClusterReqFromDynamicReq (reqID , nsId , dReq )
3690+ k8sReq , err := getK8sClusterReqFromDynamicReq (reqID , nsId , dReq , skipVersionCheck )
36773691 if err != nil {
36783692 log .Err (err ).Msg ("Failed to get shared resources for dynamic K8sCluster creation" )
36793693 return emptyK8sCluster , err
@@ -3706,8 +3720,7 @@ func CreateK8sClusterDynamic(reqID string, nsId string, dReq *model.K8sClusterDy
37063720 option = "hold"
37073721 }
37083722
3709- // Default: version check is enabled (skipVersionCheck = false)
3710- skipVersionCheck := false
3723+ // skipVersionCheck parameter is passed from function argument
37113724 return resource .CreateK8sCluster (nsId , k8sReq , option , skipVersionCheck )
37123725}
37133726
0 commit comments