@@ -3,6 +3,7 @@ package tke
3
3
import (
4
4
tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525"
5
5
6
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
6
7
svccvm "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cvm"
7
8
)
8
9
@@ -157,3 +158,146 @@ var tkeNativeNodePoolAnnotationsMap = map[string]string{
157
158
"node.tke.cloud.tencent.com/security-agent" : "node.tke.cloud.tencent.com/security-agent" ,
158
159
"node.tke.cloud.tencent.com/security-groups-spread" : "node.tke.cloud.tencent.com/security-groups-spread" ,
159
160
}
161
+
162
+ func tkeGetInstanceAdvancedPara (dMap map [string ]interface {}, meta interface {}) (setting tke.InstanceAdvancedSettings ) {
163
+ setting = tke.InstanceAdvancedSettings {}
164
+ if v , ok := dMap ["mount_target" ]; ok {
165
+ setting .MountTarget = helper .String (v .(string ))
166
+ }
167
+
168
+ if v , ok := dMap ["data_disk" ]; ok {
169
+ dataDisks := v .([]interface {})
170
+ setting .DataDisks = make ([]* tke.DataDisk , len (dataDisks ))
171
+ for i , d := range dataDisks {
172
+ value := d .(map [string ]interface {})
173
+ var diskType , fileSystem , mountTarget , diskPartition string
174
+ if v , ok := value ["disk_type" ].(string ); ok {
175
+ diskType = v
176
+ }
177
+ if v , ok := value ["file_system" ].(string ); ok {
178
+ fileSystem = v
179
+ }
180
+ if v , ok := value ["mount_target" ].(string ); ok {
181
+ mountTarget = v
182
+ }
183
+ if v , ok := value ["disk_partition" ].(string ); ok {
184
+ diskPartition = v
185
+ }
186
+
187
+ diskSize := int64 (value ["disk_size" ].(int ))
188
+ autoFormatAndMount := value ["auto_format_and_mount" ].(bool )
189
+ dataDisk := & tke.DataDisk {
190
+ DiskType : & diskType ,
191
+ FileSystem : & fileSystem ,
192
+ AutoFormatAndMount : & autoFormatAndMount ,
193
+ MountTarget : & mountTarget ,
194
+ DiskPartition : & diskPartition ,
195
+ }
196
+ if diskSize > 0 {
197
+ dataDisk .DiskSize = & diskSize
198
+ }
199
+ setting .DataDisks [i ] = dataDisk
200
+ }
201
+ }
202
+ if v , ok := dMap ["is_schedule" ]; ok {
203
+ setting .Unschedulable = helper .BoolToInt64Ptr (! v .(bool ))
204
+ }
205
+
206
+ if v , ok := dMap ["user_data" ]; ok {
207
+ setting .UserScript = helper .String (v .(string ))
208
+ }
209
+
210
+ if v , ok := dMap ["pre_start_user_script" ]; ok {
211
+ setting .PreStartUserScript = helper .String (v .(string ))
212
+ }
213
+
214
+ if v , ok := dMap ["taints" ]; ok {
215
+ taints := v .([]interface {})
216
+ setting .Taints = make ([]* tke.Taint , len (taints ))
217
+ for i , d := range taints {
218
+ taint := d .(map [string ]interface {})
219
+ var value , key , effect string
220
+ if v , ok := taint ["key" ].(string ); ok {
221
+ key = v
222
+ }
223
+ if v , ok := taint ["value" ].(string ); ok {
224
+ value = v
225
+ }
226
+ if v , ok := taint ["effect" ].(string ); ok {
227
+ effect = v
228
+ }
229
+ taintItem := & tke.Taint {
230
+ Key : & key ,
231
+ Value : & value ,
232
+ Effect : & effect ,
233
+ }
234
+ setting .Taints [i ] = taintItem
235
+ }
236
+ }
237
+
238
+ if v , ok := dMap ["docker_graph_path" ]; ok {
239
+ setting .DockerGraphPath = helper .String (v .(string ))
240
+ }
241
+
242
+ if v , ok := dMap ["desired_pod_num" ]; ok {
243
+ setting .DesiredPodNumber = helper .Int64 (int64 (v .(int )))
244
+ }
245
+
246
+ if temp , ok := dMap ["extra_args" ]; ok {
247
+ extraArgs := helper .InterfacesStrings (temp .([]interface {}))
248
+ clusterExtraArgs := tke.InstanceExtraArgs {}
249
+ clusterExtraArgs .Kubelet = make ([]* string , 0 )
250
+ for i := range extraArgs {
251
+ clusterExtraArgs .Kubelet = append (clusterExtraArgs .Kubelet , & extraArgs [i ])
252
+ }
253
+ setting .ExtraArgs = & clusterExtraArgs
254
+ }
255
+
256
+ // get gpu_args
257
+ if v , ok := dMap ["gpu_args" ]; ok && len (v .([]interface {})) > 0 {
258
+ gpuArgs := v .([]interface {})[0 ].(map [string ]interface {})
259
+
260
+ var (
261
+ migEnable = gpuArgs ["mig_enable" ].(bool )
262
+ driver = gpuArgs ["driver" ].(map [string ]interface {})
263
+ cuda = gpuArgs ["cuda" ].(map [string ]interface {})
264
+ cudnn = gpuArgs ["cudnn" ].(map [string ]interface {})
265
+ customDriver = gpuArgs ["custom_driver" ].(map [string ]interface {})
266
+ )
267
+ tkeGpuArgs := tke.GPUArgs {}
268
+ tkeGpuArgs .MIGEnable = & migEnable
269
+ if len (driver ) > 0 {
270
+ tkeGpuArgs .Driver = & tke.DriverVersion {
271
+ Version : helper .String (driver ["version" ].(string )),
272
+ Name : helper .String (driver ["name" ].(string )),
273
+ }
274
+ }
275
+ if len (cuda ) > 0 {
276
+ tkeGpuArgs .CUDA = & tke.DriverVersion {
277
+ Version : helper .String (cuda ["version" ].(string )),
278
+ Name : helper .String (cuda ["name" ].(string )),
279
+ }
280
+ }
281
+ if len (cudnn ) > 0 {
282
+ tkeGpuArgs .CUDNN = & tke.CUDNN {
283
+ Version : helper .String (cudnn ["version" ].(string )),
284
+ Name : helper .String (cudnn ["name" ].(string )),
285
+ }
286
+ if cudnn ["doc_name" ] != nil {
287
+ tkeGpuArgs .CUDNN .DocName = helper .String (cudnn ["doc_name" ].(string ))
288
+ }
289
+ if cudnn ["dev_name" ] != nil {
290
+ tkeGpuArgs .CUDNN .DevName = helper .String (cudnn ["dev_name" ].(string ))
291
+ }
292
+ }
293
+ if len (customDriver ) > 0 {
294
+ tkeGpuArgs .CustomDriver = & tke.CustomDriver {
295
+ Address : helper .String (customDriver ["address" ].(string )),
296
+ }
297
+ }
298
+ setting .GPUArgs = & tkeGpuArgs
299
+ }
300
+
301
+ return setting
302
+ }
303
+
0 commit comments