Anka Build controller is the management engine for your macOS private cloud. It presents a single entry point, through its REST APIs, for external systems to provision macOS VMs on a cluster of mac hardware (Anka Build nodes) from a specific version of a VM template pulled from Anka registry, for each run.
It eliminates the need to implement custom modules to address issues like reverting a VM to the snapshot, automated assignment of IPs, multiple request management through queuing, cleanup and other management tasks.
Pulling a VM template from the Anka registry for on-demand provisioning also eliminates the need to bootstrap the VM at runtime and enables instantaneous execution of tests. You might still need to do some incremental bootstrapping to pull latest build etc, but the initiation time is significantly reduced.
Watch Anka Build in action in this brief video – Demo Video
Let’s take a look at how you will set it up.
Step 1 – Deploy Anka Registry in a docker container.
Installing Registry section in https://ankadoc.bitbucket.io/getting-started/
Step 2 – Deploy Anka controller in a docker container and configure it.
Installing Controller section in https://ankadoc.bitbucket.io/getting-started/
Step 3 – Deploy Anka Build application package on all the mac machines where you want to run your VMs. Then, join them to the controller build cluster. These machines are now Anka build nodes.
https://ankadoc.bitbucket.io/using-controller/
Step 4 – Create the Anka VM templates that will serve as your iOS or macOS build or test environments. Load all your dependencies in this VMs. Then, push it to Anka registry. If your dependencies change, you can pull this VM from the registry, update it and then push it back with a different version/tag.
https://ankadoc.bitbucket.io/using-registry/
Your private macOS cloud infrastructure is now ready.
Use the Anka Controller REST APIs to provision environments or if you use Jenkins, deploy the Jenkins plugin.
REST APIs – https://ankadoc.bitbucket.io/using-controller/#controller-rest-apis
Jenkins Plugin – https://ankadoc.bitbucket.io/using-jenkins/