@@ -66,7 +66,7 @@ func init() {
6666}
6767
6868// CreateMachine creates a VM by cloning from a template
69- func (spi * PluginSPIImpl ) CreateMachine (ctx context.Context , machineName string , providerSpec * api.VsphereProviderSpec2 , secrets * corev1.Secret ) (string , error ) {
69+ func (spi * PluginSPIImpl ) CreateMachine (ctx context.Context , machineName string , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (string , error ) {
7070 client , err := createVsphereKubernetesClient (ctx , secrets )
7171 if err != nil {
7272 return "" , fmt .Errorf ("creating vsphere k8s client failed: %w" , err )
@@ -77,10 +77,14 @@ func (spi *PluginSPIImpl) CreateMachine(ctx context.Context, machineName string,
7777 return "" , fmt .Errorf ("adding ssh keys to userdata failed: %w" , err )
7878 }
7979
80+ v2 := providerSpec .V2
81+ if v2 == nil {
82+ return "" , fmt .Errorf ("missing v2" )
83+ }
8084 configMap := & corev1.ConfigMap {
8185 ObjectMeta : metav1.ObjectMeta {
8286 Name : configMapName (machineName ),
83- Namespace : providerSpec .Namespace ,
87+ Namespace : v2 .Namespace ,
8488 },
8589 }
8690 _ , err = controllerutil .CreateOrUpdate (ctx , client , configMap , func () error {
@@ -101,18 +105,18 @@ func (spi *PluginSPIImpl) CreateMachine(ctx context.Context, machineName string,
101105 return "" , fmt .Errorf ("missing relevant tags" )
102106 }
103107
104- vm := createEmptyVirtualMachine (machineName , providerSpec .Namespace )
105- vm .Spec .ClassName = providerSpec .ClassName
108+ vm := createEmptyVirtualMachine (machineName , v2 .Namespace )
109+ vm .Spec .ClassName = v2 .ClassName
106110 vm .Spec .NetworkInterfaces = []vmopapi.VirtualMachineNetworkInterface {
107- {NetworkType : providerSpec .NetworkType , NetworkName : providerSpec .NetworkName },
111+ {NetworkType : v2 .NetworkType , NetworkName : v2 .NetworkName },
108112 }
109- if providerSpec .StorageClass != nil {
110- vm .Spec .StorageClass = * providerSpec .StorageClass
113+ if v2 .StorageClass != nil {
114+ vm .Spec .StorageClass = * v2 .StorageClass
111115 }
112- if providerSpec .ResourcePolicyName != nil {
113- vm .Spec .ResourcePolicyName = * providerSpec .ResourcePolicyName
116+ if v2 .ResourcePolicyName != nil {
117+ vm .Spec .ResourcePolicyName = * v2 .ResourcePolicyName
114118 }
115- vm .Spec .ImageName = providerSpec .ImageName
119+ vm .Spec .ImageName = v2 .ImageName
116120 vm .Spec .VmMetadata = & vmopapi.VirtualMachineMetadata {
117121 ConfigMapName : configMap .Name ,
118122 Transport : "ExtraConfig" ,
@@ -141,7 +145,7 @@ func (spi *PluginSPIImpl) CreateMachine(ctx context.Context, machineName string,
141145 return "" , fmt .Errorf ("timeout on vm create of virtual machine %s. phase=%s" , machineName , vm .Status .Phase )
142146 }
143147
144- providerID := spi .encodeProviderID (providerSpec .Namespace , vm .Status .InstanceUUID )
148+ providerID := spi .encodeProviderID (v2 .Namespace , vm .Status .InstanceUUID )
145149 return providerID , nil
146150}
147151
@@ -229,12 +233,17 @@ func (spi *PluginSPIImpl) GetMachineStatus(ctx context.Context, machineName stri
229233}
230234
231235// ListMachines lists all VMs in the DC or folder
232- func (spi * PluginSPIImpl ) ListMachines (ctx context.Context , providerSpec * api.VsphereProviderSpec2 , secrets * corev1.Secret ) (map [string ]string , error ) {
236+ func (spi * PluginSPIImpl ) ListMachines (ctx context.Context , providerSpec * api.VsphereProviderSpec , secrets * corev1.Secret ) (map [string ]string , error ) {
233237 client , err := createVsphereKubernetesClient (ctx , secrets )
234238 if err != nil {
235239 return nil , fmt .Errorf ("creating vsphere k8s client failed: %w" , err )
236240 }
237241
242+ v2 := providerSpec .V2
243+ if v2 == nil {
244+ return nil , fmt .Errorf ("missing v2" )
245+ }
246+
238247 machineList := map [string ]string {}
239248 relevantTags , _ := tags .NewRelevantTags (providerSpec .Tags )
240249 if relevantTags == nil {
@@ -244,20 +253,20 @@ func (spi *PluginSPIImpl) ListMachines(ctx context.Context, providerSpec *api.Vs
244253 vms := & vmopapi.VirtualMachineList {}
245254 labels := relevantTags .GetLabels ()
246255 labels [api .LabelMCMVSphere ] = "true"
247- err = client .List (ctx , vms , ctrlClient .InNamespace (providerSpec .Namespace ), ctrlClient .MatchingLabels (labels ))
256+ err = client .List (ctx , vms , ctrlClient .InNamespace (v2 .Namespace ), ctrlClient .MatchingLabels (labels ))
248257 if err != nil {
249- return nil , fmt .Errorf ("listing virtual machines in namespace %s failed: %w" , providerSpec .Namespace , err )
258+ return nil , fmt .Errorf ("listing virtual machines in namespace %s failed: %w" , v2 .Namespace , err )
250259 }
251260
252261 for _ , vm := range vms .Items {
253262 machineName := vm .Name
254263 if vm .Status .InstanceUUID != "" {
255- providerID := spi .encodeProviderID (providerSpec .Namespace , vm .Status .InstanceUUID )
264+ providerID := spi .encodeProviderID (v2 .Namespace , vm .Status .InstanceUUID )
256265 machineList [providerID ] = machineName
257266 }
258267 }
259268
260- klog .V (2 ).Infof ("List machines request for namespace %s found %d machines" , providerSpec .Namespace , len (machineList ))
269+ klog .V (2 ).Infof ("List machines request for namespace %s found %d machines" , v2 .Namespace , len (machineList ))
261270
262271 return machineList , nil
263272}
0 commit comments