Skip to content

Jeballto Jenkins Plugin

Provision disposable macOS Jenkins agents on demand through the Jeballto VM Agent.

The plugin plugs into Jenkins Cloud, matches job labels to Jeballto-backed images, launches a one-shot build agent inside a fresh VM, and cleans that VM up after the build.

Why this exists

Jenkins handles dynamic agents well, but macOS capacity is difficult to scale safely. This plugin gives Jenkins operators:

  • ephemeral VM agents instead of long-lived shared Macs
  • label-based routing to OCI images
  • multi-host failover through Cloud configuration
  • guardrails for capacity, cooldowns, and orphan cleanup

Documentation map

Get started

Read Getting Started, then follow Installation and Quickstart.

Understand the model

Use Configuration and Concepts to understand global label mappings, per-host templates, and template ordering.

Operate and debug

Keep How It Works, Troubleshooting, and Gotchas close during the first production rollout.

Requirements at a glance

  • Jenkins controller compatible with Java 21
  • Apple Silicon host running the Jeballto Agent
  • macOS 26.0+ on the host
  • OCI images suitable for your Jenkins labels

Mental model

Jenkins job with label
  -> plugin chooses the matching global label mapping
  -> plugin finds agent templates assigned to that label
  -> templates are tried in configured order, skipping cooldown or full templates
  -> plugin provisions VM through Jeballto
  -> Jenkins agent connects over SSH
  -> build runs once
  -> plugin deletes the VM

The most important concept is the split between:

  • cloud-level label-to-image mappings
  • per-host agent configurations

That separation is what makes one image reusable across multiple Macs while still preserving host-specific settings such as API URL, SSH credentials, and capacity.