What is Anka?

All about Veertu’s Anka Software

Veertu’s Anka is a suite of software for creating and managing macOS VMs in a container-like way, running on top of Apple hardware and macOS. It enables creation of macOS VMs and integrates well 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 and/or REST APIs.

Anka High Level

  • Easy to install.
  • 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 teams implementing Anka can expect flexibility, allowing them to plug into existing infrastructure and automation – whether it’s cloud providers like AWS or on-premises! We have many examples of use cases and also provide packages like our Build Cloud Controller & Registry Helm Chart for Kubernetes users.

You can find several CI/CD plugins or integrations we maintain for our users that abstract the lower level work of pulling and starting VMs for jobs. Whether it’s on-demand/ephemeral, long-running, and single-use macOS VMs for your developers, iOS, or native app building/testing/CI/CD, Anka will be a good fit for you.

Anka also enables a docker-like experience for teams to create and store project specific VM templates (a.k.a “images”) and tags, including commands to interact with the VM like start, stop, clone, suspend, modify the VM configuration (like cpu or ram), and execution of VM level shell commands.

  • Easily create Anka VM Templates for different versions of macOS, Xcode, etc.
  • Store your VM Templates with a specific Tag in the Anka Build Cloud Registry so you can distribute or pull them to different machines and ensure the same VM state for every single CI/CD job that runs a VM. 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.

Anka Registry pull and show VM


Using Anka

Anka Virtualization CLI

There are many ways in which our customers utilize the Anka Virtualization CLI to automate the VM creation and preparation process:

  • Through the anka create command on the host machine:
    ❯ anka create -a 13.1 13.1-arm
    
  • By executing your project installation commands and scripts inside of VMs from the host terminal with anka run and also directly inside the VM with anka cp & anka run.
  • Any manual steps you need to perform in the GUI can be done through VNC or automated with Anka Click Scripts.
  • Create Packer Templates and run them to perform the steps for VM creation and preparation with our packer builders and post-provisioner..

Anka list start and run


Anka Build Cloud

Accompanying the Anka Virtualization package which runs on macOS hardware, we provide the Build Cloud Controller & Registry. Below are two of the most popular examples of how our customers set up Anka Virtualization with the Build Cloud.

Controller-less (Registry Only)

This setup requires:

  1. At least one Anka Node (macOS host running the Anka Virtualization software).
  2. A linux container running the Anka Build Cloud Registry.
  3. 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.

Controller-less

Controller + Registry

This setup requires:

  1. At least one Anka Node (macOS host running the Anka Virtualization software).
  2. A linux container running the Anka Build Cloud Controller & Registry.
  3. 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.

Controller+Registry