@@ -34,12 +34,14 @@ import (
3434)
3535
3636type instances struct {
37- c * cluster.Cluster
37+ c * cluster.Cluster
38+ provider cluster.Provider
3839}
3940
40- func newInstances (client * cluster.Cluster ) * instances {
41+ func newInstances (client * cluster.Cluster , provider cluster. Provider ) * instances {
4142 return & instances {
42- c : client ,
43+ c : client ,
44+ provider : provider ,
4345 }
4446}
4547
@@ -149,6 +151,12 @@ func (i *instances) InstanceMetadata(_ context.Context, node *v1.Node) (*cloudpr
149151 return nil , fmt .Errorf ("instances.InstanceMetadata() - failed to find instance by name/uuid %s: %v, skipped" , node .Name , err )
150152 }
151153 }
154+
155+ if i .provider == cluster .ProviderCapmox {
156+ providerID = provider .GetProviderIDFromUUID (uuid )
157+ } else {
158+ providerID = provider .GetProviderID (region , vmRef )
159+ }
152160 } else if ! strings .HasPrefix (node .Spec .ProviderID , provider .ProviderName ) {
153161 klog .V (4 ).InfoS ("instances.InstanceMetadata() omitting unmanaged node" , "node" , klog .KObj (node ), "providerID" , node .Spec .ProviderID )
154162
@@ -178,7 +186,7 @@ func (i *instances) InstanceMetadata(_ context.Context, node *v1.Node) (*cloudpr
178186 }
179187
180188 return & cloudprovider.InstanceMetadata {
181- ProviderID : provider . GetProviderID ( region , vmRef ) ,
189+ ProviderID : providerID ,
182190 NodeAddresses : addresses ,
183191 InstanceType : instanceType ,
184192 Zone : vmRef .Node (),
@@ -192,6 +200,17 @@ func (i *instances) InstanceMetadata(_ context.Context, node *v1.Node) (*cloudpr
192200}
193201
194202func (i * instances ) getInstance (node * v1.Node ) (* pxapi.VmRef , string , error ) {
203+ if i .provider == cluster .ProviderCapmox {
204+ uuid := node .Status .NodeInfo .SystemUUID
205+
206+ vmRef , region , err := i .c .FindVMByUUID (uuid )
207+ if err != nil {
208+ return nil , "" , fmt .Errorf ("instances.getInstance() error: %v" , err )
209+ }
210+
211+ return vmRef , region , nil
212+ }
213+
195214 vm , region , err := provider .ParseProviderID (node .Spec .ProviderID )
196215 if err != nil {
197216 return nil , "" , fmt .Errorf ("instances.getInstance() error: %v" , err )
0 commit comments