in src/go/cmd/vmscaler/vmscaler/vmscaler.go [520:573]
func (v *VMScaler) createNewVmssModel(vmssName string) compute.VirtualMachineScaleSet {
// create the new VMSS
return compute.VirtualMachineScaleSet{
Name: to.StringPtr(vmssName),
Location: to.StringPtr(v.Location),
Sku: &compute.Sku{
Name: to.StringPtr(v.SKU),
Capacity: to.Int64Ptr(v.VMsPerVMSS),
},
VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{
Overprovision: to.BoolPtr(v.OverProvision),
UpgradePolicy: &compute.UpgradePolicy{
Mode: compute.UpgradeModeManual,
},
SinglePlacementGroup: to.BoolPtr(v.SinglePlacementGroup),
VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{
Priority: v.Priority,
EvictionPolicy: v.EvictionPolicy,
OsProfile: &compute.VirtualMachineScaleSetOSProfile{
ComputerNamePrefix: to.StringPtr(vmssName),
AdminUsername: to.StringPtr(v.Username),
AdminPassword: to.StringPtr(v.Password),
},
StorageProfile: &compute.VirtualMachineScaleSetStorageProfile{
ImageReference: &compute.ImageReference{
ID: to.StringPtr(v.ImageID),
},
},
NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfile{
NetworkInterfaceConfigurations: &[]compute.VirtualMachineScaleSetNetworkConfiguration{
{
Name: to.StringPtr(vmssName),
VirtualMachineScaleSetNetworkConfigurationProperties: &compute.VirtualMachineScaleSetNetworkConfigurationProperties{
Primary: to.BoolPtr(true),
EnableAcceleratedNetworking: to.BoolPtr(true),
EnableIPForwarding: to.BoolPtr(false),
IPConfigurations: &[]compute.VirtualMachineScaleSetIPConfiguration{
{
Name: to.StringPtr(vmssName),
VirtualMachineScaleSetIPConfigurationProperties: &compute.VirtualMachineScaleSetIPConfigurationProperties{
Subnet: &compute.APIEntityReference{
ID: to.StringPtr(azure.GetSubnetId(v.AzureSubscriptionId, v.VNETResourceGroup, v.VNETName, v.SubnetName)),
},
},
},
},
},
},
},
},
},
},
}
}