func createVMFromVMOptions()

in integration_test/gce-testing-internal/gce/gce_testing.go [1199:1235]


func createVMFromVMOptions(options VMOptions) *VM {
	vm := &VM{
		Project:   options.Project,
		ImageSpec: options.ImageSpec,
		Name:      options.Name,
		Network:   os.Getenv("NETWORK_NAME"),
		Zone:      options.Zone,
	}
	if vm.Name == "" {
		// The VM name needs to adhere to these restrictions:
		// https://cloud.google.com/compute/docs/naming-resources#resource-name-format
		vm.Name = fmt.Sprintf("%s-%s", sandboxPrefix, uuid.New())
	}
	if vm.Project == "" {
		vm.Project = os.Getenv("PROJECT")
	}
	if vm.Network == "" {
		vm.Network = "default"
	}
	if vm.Zone == "" {
		// Chooses the next zone from ZONES.
		vm.Zone = zonePicker.Next()
	}

	// Note: INSTANCE_SIZE takes precedence over options.MachineType.
	vm.MachineType = os.Getenv("INSTANCE_SIZE")
	if vm.MachineType == "" {
		vm.MachineType = options.MachineType
	}
	if vm.MachineType == "" {
		vm.MachineType = "e2-standard-4"
		if IsARM(vm.ImageSpec) {
			vm.MachineType = "t2a-standard-4"
		}
	}
	return vm
}