@@ -175,9 +175,12 @@ func (s *VMScaleSet) Find(c *fi.CloudupContext) (*VMScaleSet, error) {
175175 return nil , fmt .Errorf ("expecting exactly 1 SSH key for %q, found %d: %+v" , * s .Name , len (sshKeys ), sshKeys )
176176 }
177177
178- userData , err := base64 .StdEncoding .DecodeString (* profile .UserData )
179- if err != nil {
180- return nil , fmt .Errorf ("failed to decode user data: %w" , err )
178+ var userData []byte
179+ if profile .UserData != nil {
180+ userData , err = base64 .StdEncoding .DecodeString (* profile .UserData )
181+ if err != nil {
182+ return nil , fmt .Errorf ("failed to decode user data: %w" , err )
183+ }
181184 }
182185
183186 vmss := & VMScaleSet {
@@ -196,14 +199,18 @@ func (s *VMScaleSet) Find(c *fi.CloudupContext) (*VMScaleSet, error) {
196199 VirtualMachineScaleSetStorageProfile : profile .StorageProfile ,
197200 },
198201 RequirePublicIP : to .Ptr (ipConfig .Properties .PublicIPAddressConfiguration != nil ),
199- SKUName : found .SKU .Name ,
200- Capacity : found .SKU .Capacity ,
201202 ComputerNamePrefix : osProfile .ComputerNamePrefix ,
202203 AdminUser : osProfile .AdminUsername ,
203204 SSHPublicKey : sshKeys [0 ].KeyData ,
204205 UserData : fi .NewBytesResource (userData ),
205206 Tags : found .Tags ,
206- PrincipalID : found .Identity .PrincipalID ,
207+ }
208+ if found .SKU != nil {
209+ vmss .SKUName = found .SKU .Name
210+ vmss .Capacity = found .SKU .Capacity
211+ }
212+ if found .Identity != nil {
213+ vmss .PrincipalID = found .Identity .PrincipalID
207214 }
208215 if ipConfig .Properties != nil && ipConfig .Properties .ApplicationSecurityGroups != nil {
209216 for _ , asg := range ipConfig .Properties .ApplicationSecurityGroups {
@@ -220,7 +227,9 @@ func (s *VMScaleSet) Find(c *fi.CloudupContext) (*VMScaleSet, error) {
220227 if found .Zones != nil {
221228 vmss .Zones = found .Zones
222229 }
223- s .PrincipalID = found .Identity .PrincipalID
230+ if found .Identity != nil {
231+ s .PrincipalID = found .Identity .PrincipalID
232+ }
224233 return vmss , nil
225234}
226235
@@ -380,6 +389,8 @@ func (s *VMScaleSet) RenderAzure(t *azure.AzureAPITarget, a, e, changes *VMScale
380389 if err != nil {
381390 return err
382391 }
383- e .PrincipalID = result .Identity .PrincipalID
392+ if result .Identity != nil {
393+ e .PrincipalID = result .Identity .PrincipalID
394+ }
384395 return nil
385396}
0 commit comments