What is Anka?
Anka is a suite of software for creating and managing macOS VMs to run on top of Apple hardware and macOS. It enables creation of macOS VMs and integrates with existing container based DevOps workflows for iOS and Native App build & test CI/CD/Automation. Built on the native Apple hypervisor, it utilizes macOS resource scheduling, performance management, and flexibility. Management of VMs is performed with the Anka Virtualization CLI, UI app, and Build Cloud Controller UI or REST APIs.
- Easy to install packages.
- Built on the native Apple hypervisor, utilizing macOS resource scheduling, power management, and flexibility.
- Optimized VM network and disk performance using para-virtual drivers.
- VM management through the Anka Virtualization CLI, UI app, or web based Build Cloud Controller UI.
- Ability to suspended and then instantly start VMs from a specific state.
- Nested Virtualization for running Docker, Android Emulators, and others inside of the VM (intel only).
- Attach physical USB devices (like an iPhone) to VMs for on-device testing.
- Compatibility with T2 enabled Apple hardware.
- Can be installed on any Apple supported macOS versions.
- Anka VMs can install and run any modern and Apple supported macOS version.
DevOps workflows typically include lots of automation. Because of this, Anka has multiple options for you to either integrate with existing workflows/tools or create them from scratch:
- Easily create VM Templates (a.k.a “images”) for different versions of macOS with the Anka CLI.
- Execute your project’s dependency installation commands and scripts inside of VMs from the host terminal with
anka run
and also directly in the VM withanka cp
+anka run
. Any manual steps you need to perform in the GUI can be done through VNC or automated with anka click scripts. - Write scripts for automated Template creation in your preferred language, or use our packer builder.
- Store your VM Templates with a specific Tag in the Anka Cloud Registry so you can distribute or pull them to different machines and ensure the same VM state for every single CI/CD job. You can clone all VMs from a single base VM and they will re-use layers, optimizing disk space on both the Registry and Anka Nodes/hosts.
- Manage your VM Instances from the Anka Build Cloud Controller’s UI and/or REST API.
- Get up and running starting jobs quickly with one of our maintained CI plugins or integrations.
Using Anka
There are many ways in which our customers utilize the Anka Virtualization software and the Anka Build Cloud to achieve on-demand/ephemeral or long-running single-use macOS VMs for iOS and native app building and testing. Anka enables a docker-like experience for teams to create and store project specific VM templates and tags; including start, stop, clone, suspend, modify cpu and ram for, and execution of commands inside of the VMs.
Below are two of the most popular examples of how our customers set up Anka.
Controller-less Build Cloud (Registry Only)
This setup requires:
- At least one Anka Node (macOS host running the Anka Virtualization software).
- A linux container running the Anka Build Cloud Registry.
- Your CI/CD’s runner/agent installed and able to execute
anka
CLI commands to prepare and use the Anka VM. For example, install the github actions runner and then use our action.
Build Cloud Controller + Registry
This setup requires:
- At least one Anka Node (macOS host running the Anka Virtualization software).
- A linux container running the Anka Build Cloud Controller & Registry.
- Our plugin installed in your CI/CD tool (like the Anka Jenkins Plugin). See a full list of plugins available on our CI Plugins and Integrations page.