Skip to main content
The Orka by MacStadium plugin lets Jenkins provision macOS build agents as Orka VMs, either permanent agents you manage yourself or ephemeral agents Jenkins creates and destroys per build. Ephemeral agents are the reason most teams install this. Every job gets a clean macOS VM from a known image, so build failures trace back to code instead of environment drift on a shared Mac, and capacity scales with queue depth instead of with the number of Macs you bought. Permanent agents are the right choice when you need a long-lived, hand-tuned machine and want to control its lifecycle yourself. You do not need Kubernetes knowledge to use this integration. The plugin talks to the Orka API with a service account token. New to Orka? See how teams use it for CI/CD.
Requires plugin v2.00 or later. Current release: v2.10.

Prerequisites

Have all of these in place before step 1.

Setup steps

1. Create a service account and token

Personal SSO tokens expire after one hour and will break your pipeline overnight. Service account tokens last one year.
Both commands act on the orka-default namespace. To deploy into a different namespace, create the service account there or configure role bindings. Copy the token. You will store it in Jenkins in step 3.

2. Install the plugin

In Jenkins, go to Manage Jenkins → Plugins → Available plugins, search for Orka by MacStadium, install, and restart. See Managing Plugins. To build and package it yourself, use the plugin repository.

3. Store your credentials in Jenkins

Add two credentials under Manage Jenkins → Credentials:

4a. Configure an ephemeral agent pool

This is the path most CI teams want. Jenkins deploys a VM when the queue needs one and deletes it after an idle period.
  1. Go to Manage Jenkins → Nodes and Clouds → Configure Clouds → Add a new cloud.
  2. Select Orka Cloud.
  3. Set Name of this Cloud, Orka Token (the secret text from step 3), and Orka Endpoint (your Orka API URL).
  4. Click Add Orka Template. This is the spec Jenkins uses for each new agent.
  5. Set Image, # of CPUs, Memory, Namespace, and VM Credentials. Add a Label so jobs can target this pool.
  6. Save.

4b. Or configure a permanent agent

  1. Go to Manage Jenkins → Nodes and Clouds → New Node.
  2. Enter a Node name and select Agent running under Orka by MacStadium, then click OK.
  3. Set Orka Token, Orka Endpoint, Namespace, Node, Image, # of CPUs, Memory, and VM Credentials.
  4. Save.
The VM deploys immediately and stays up until you delete it.

5. Run a test job

Point a job at the label you assigned:
A successful run confirms the whole chain: token, network path, VM deployment, and SSH.
Initial boot on an Apple silicon node takes longer than on subsequent runs. Increase the Jenkins agent connection timeout before your first ARM deployment.

Configuration reference

Orka Cloud (ephemeral agents)

Orka Template and permanent agent

Migrating from Orka 2.x templates

Existing agent templates show a radio group:
  • Orka 3.x Deployment: no VM config required. Settings from Create a new VM config migrate here automatically.
  • Orka 2.x Deployment: legacy path, read-only. To change anything, move the template to Orka 3.x Deployment.

Beyond a single agent pool

Once a basic pool is working, a few Orka features are worth knowing about as your Jenkins usage grows:
  • Tags and scheduling. Use Tag / Tag Required to route specific job types (for example, GPU-dependent builds) to specific nodes, and Scheduler to control how templates place VMs across a pool with mixed hardware.
  • GPU passthrough. If your builds need the node’s GPU, Use GPU Passthrough exposes it to the VM, but it has to be enabled cluster-wide first. Ask MacStadium Support to turn it on.
  • Image caching. If cold starts on a new image are slow, see Image Caching to pre-cache images on specific nodes ahead of time.
  • Burst capacity. If your fixed node pool isn’t enough during peak build periods, Orka Burst adds on-demand elastic capacity without a long-term hardware commitment.

Troubleshooting

Enable plugin logging

  1. Go to Manage Jenkins → System Log → Add new log recorder.
  2. Name it, for example Orka Plugin Logs.
  3. Under Loggers, click Add and enter io.jenkins.plugins.orka.
  4. Set Log Level to All and save.
Logs appear under Manage Jenkins → System Log under your recorder name. Keep the scope at io.jenkins.plugins.orka. Narrowing to a single class can drop the lines you need. All is verbose and adds overhead on busy controllers.

Common failure modes

This list covers the most common failure modes. If you hit something not listed here, the plugin log (above) is the fastest way to narrow it down before contacting support.

Support

Open a ticket in the MacStadium Portal and include your plugin log output.