macOS VM image management in Anka Build – macOS cloud solution

Anka Build Veertu is a complete software solution to configure a cloud using Apple hardware (on-prem or rented) that manages macOS VMs, similar to containers

If you use a container-based CI/CD setup for Linux, you can easily integrate Anka Build Cloud for your ephemeral and on-demand iOS app builds and tests. Additionally, you can also run persistent VMs.

Anka macOS VMs are created, tagged, and run using Anka Virtualization technology on top of any macOS capable hardware. In this blog, we will describe using Anka Virtualization to create these images and tags.

Creating your macOS VM

Use the anka create command to create a VM with almost any macOS version. While using anka create, you can specify the disk size for your VM using the -d or --disk-size option. This is not a reserved capacity, but the total maximum VM hard drive capacity. As you install additional software inside Anka macOS VM, the disk size gets allocated dynamically.

Now execute anka show {vmName} to look at actual hard drive size:

Cloning Anka VMs

anka clone {vmName} {newVmName} creates a snapshot file pointing to the parent {vmName}. Any more changes to {newVmName} are made only in the snapshot and all other layers are shared with {vmName}, cutting down on disk space requirements. The parent {vmName} can be changed and/or deleted, but the clone {newVmName} will stay unaffected. Again, when both parent and clone exists, since the clone is not completely duplicated, the overall disk space is optimized.

Stopping and Suspending Anka VMs

Anka optimizes VM disk space usage on every stop and suspend operation by going over the entire file system and freeing up unclaimed blocks.

Managing Anka VM versions of Anka Registry

You can incrementally install software components on base macOS VMs and maintain versions in Anka Registry. At any time, you can pull an older version of a VM from the Registry.

Anka VM image hierarchy management

Anka VM image and version management are built to optimize disk space usage on the Mac nodes running the VM and also data transfer times when pushing and pulling the VMs on the Mac nodes.

Share this post