func()

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)),
											},
										},
									},
								},
							},
						},
					},
				},
			},
		},
	}
}