cirruslabs / tart

macOS and Linux VMs on Apple Silicon to use in CI and other automations
https://tart.run
Other
3.84k stars 114 forks source link

Can there be support for tart vm on x86 #630

Closed rahiakil closed 1 year ago

rahiakil commented 1 year ago

We have an organization where all new engineers will get Apple silicon MBPs, but there are 4000 employees, who will keep using their MBP x86 till 2026 beginning. We like the tart solution, but would like something uniform , and tarts for x86 will be the best solution for us. Can someone atleast guide me on how to go about it, if cirruslabs cannot support it, is there a working group that is interested in developing it.

fkorotkov commented 1 year ago

Hey @rahiakil, just a clarifying question. Are looking to run macOS VMs or Linux VMs only? Could you tell us more about your workflow either here or via a email?

rahiakil commented 1 year ago

hi, So we are planning to run CI jobs on a nightly basis using cirrus CLI, on AWS provisioned Mac metal instances. Using AMIs, we will have the problem of single machine being held up for the entirety of the job. WE have 2 mac metal instances ( one is Apple Silicon and the other is x86 ). We want to set up Cirrus with tart automation on both instances to run nightly jobs/tests/package-artifact building. If there is a x86 tart, then we will have minimal maintenance on our end. Currently, we are using AMIs for both the instances

fkorotkov commented 1 year ago

Unfortunately Tart exclusively supports and optimized for M1/M2 devices.

On a side note, there are users who use Tart to test on M1/M2 devices but build either universal binaries or even separate x86 binaries to cover Intel devices. The compatibility is pretty good and I hope it might be an option for you.

rahiakil commented 1 year ago

I would appreciate, if you could share some pointers on getting started with a side project on tart support for x86. This will help our team in the process, as we wanted to get the isolation benefits and also utilize the x86 mac that we provisioned on AWS

fkorotkov commented 1 year ago

@rahiakil unfortunately it's a limitation of the underlying Virtualization.Framework which support only Apple Silicon and does heavy lifting for us.

Running macOS on Intel requires a lot of engineering and reverse engineering which big companies like Parallels and VMWare did before. But even in case of a solution like Parallels (which support both Intel and Apple Silicon) you'll end up with two different virtual machines: one created for Intel and other created for Apple Silicon.

The best scenario for your use case will be to choose something that can automate image creation via Packer. It can be one solution like Parallels for both Intel and Apple Silicon. Or thanks to ease of VM creation via Packer you can choose to use different solution for different architectures.