Build License Tiers

All about the Anka Build Cloud license tiers

Anka License Feature Differences

FeatureDevelop LicenseFlow LicenseBuild License
Run Multiple VMsNoYesYes
State Snapshot / Suspend VM (Intel only)NoYesYes
USB Device Support (Intel only)NoYesYes
Ability to join your machine as a Node to the Anka Build Cloud ControllerNoNoYes
Ability to push/pull templates to the Anka Cloud RegistryNoYesYes
Runs on all macOS hardware modelsNo (Macbook models only)No (Macbook and iMac only)Yes
FeatureBasicEnterpriseEnterprise Plus
Central RegistryYesYesYes
USB Device control through the CLIYesYes
TLS/SSL SupportYesYesYes
Advanced Security FeaturesYesYes
Export and Import VMsYesYes

Anka Build License Tier Datasheet

FeatureBasicEnterpriseEnterprise Plus
Cloud Controller with REST APIsYes (Single instance of Anka controller included)Yes (Single instance of Anka controller included)Yes
GitHub ActionsYesYesYes
Jenkins PluginYesYesYes
TeamCity PluginYesYesYes
GitLab Runner with custom executorYesYesYes
BuildKite PluginYesYesYes
Azure DevOps PipelinesYesYesYes
HA for Controller configuration setupYes (Additional controller/registry instances needed)YesYes
USB Device control through Controller APIYesYes
Priority scheduling of VMs through controllerYesYes
Clustering (Grouping) of NodesYesYes
Controller authentication (Certificate, Root Token, and UAK/TAP)YesYes
Multi-user and group authorization with admin panel + OpenID/SSO supportYes
Permission Groups and Resource ManagementYes
Controller API event loggingYes

Enterprise License Features

Node Groups

node groups

This feature allows users to add Anka Virtualization Nodes to groups which can then be used to limit or isolate CI/CD tasks. You can even create fallback groups should the primary group you assign to a Node reach capacity. This is useful when you have multiple projects in your organization and wish to prevent certain projects from using all available VM slots.

Both the Controller UI and API allow creation and control of groups

You can assign a Node to a group in the Controller Nodes UI, API, or even when joining with ankacluster join --groups

Priority Scheduling

When requesting multiple VMs through the API, a priority can be assigned. The lower the priority integer, the higher the urgency:

# Request a VM with the highest priority (default priority is 1000)
curl -X POST "http://anka.controller/api/v1/vm" -H "Content-Type: application/json" \
  -d '{"vmid": "6b135004-0c89-43bb-b892-74796b8d266c", "count": 2, "priority": 1}'

{
  "status": "OK",
  "message": "",
  "body": [
    "c983c3bf-a0c0-43dc-54dc-2fd9f7d62fce",
    "e74dfc0e-dc94-4ca2-575e-3219ac08ffa2"
  ]
}

Nodes are constantly asking for tasks in the Controller. They will send a payload with information about itself to the Controller including the Templates/Tags it has, usb devices available, etc, and the Controller will then use that information to score and choose the best task for the node. The priority of the start VM request also contributes to this score. This is not a pure FIFO task queue though.

If nodes that do not have the Template are getting tasks and having to pull all the time, you should consider using groups and placing these nodes in a fallback group. Then, tell your jobs to target the non-fallback group and they will prioritize the nodes that have the templates.

Controller authentication (Certificate, Root Token, and UAK/TAP)

Authentication support includes:

With an Enterprise license, each authenticated credential has full access to the system. Fine-grained Permission Groups and Resource Management require Enterprise Plus.

Enterprise Plus License Features

Multi-user and group authorization with admin panel + OpenID/SSO support

Enterprise Plus adds multi-user authentication and authorization for the Controller Dashboard and REST API. OpenID/SSO integrates human access through your identity provider. Map provider groups to Controller Permission Groups to control what each user can do.

Permission Groups and Resource Management

Permission Groups limit which API actions a credential can perform. Resource Management further limits access to specific Nodes and Templates. Enable them with ANKA_ENABLE_CONTROLLER_AUTHORIZATION / ANKA_ENABLE_REGISTRY_AUTHORIZATION and ANKA_ENABLE_RESOURCE_MANAGEMENT. See Authorization for setup details.

UAK/TAP and certificate credentials behave differently under Enterprise Plus: user tokens and cert subjects must use Permission Groups. The root token keeps full access.

Event logging and automated pushing

You can enable Event Logging to create a log of actions performed in the controller. The logs are saved under:

  • Mac: /Library/Application\ Support/Veertu/Anka/registry/files/central-logs/event/event.log
  • Docker (registry container): /mnt/vol/files/central-logs/event/event.log

event logging

Logged EventsType
StartVMapiAction
VMStartedsystemAction
VMFailedToStartsystemAction
TerminateVMapiAction
VMTerminatedsystemAction
DistributeTemplateToNodesapiAction
TemplatePulledsystemAction
DeleteRegistryVmapiAction
ConfigNodeapiAction
DeleteNodeapiAction
NodeUnregisteredsystemAction

You can also specify an endpoint that consumes JSON and the controller will push the events.