garm v0.2.0-beta1 #716
gabriel-samfira
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
GARM v0.2.0-beta1
This is the first beta release from the v0.2 branch, representing a major evolution of GARM. The headline features are GitHub Actions Runner Scale Sets, Gitea forge support, Agent Mode with remote shell access, and a brand new SPA Web UI.
New Features
Scale Sets
GARM now supports GitHub Actions Runner Scale Sets as a first-class alternative to webhook-driven pools. Scale sets use GitHub's native HTTP long-polling message queue API instead of webhooks, providing:
runs-ontargeting.garm-cli scaleset list|show|add|update|deleteandgarm-cli scaleset runner list.GET/POST/PUT/DELETE /scalesets,GET /scalesets/{id}/instances.Gitea Forge Support (Multi-Forge Architecture)
GARM is no longer GitHub-only. A major refactor introduces a multi-forge architecture with Gitea as the first additional forge:
api_base_url,base_url, CA cert bundles, and custom tools metadata URLs.act_runnerreleases from Gitea's public repository, with support for custom tools metadata URLs and internal tools hosting.--forge-typeflag -- optional onrepo createandorg create(auto-detected from credentials when omitted).Agent Mode
A new deployment model where GARM installs and manages a persistent
garm-agenton runner instances:--agent-modeflag.metadata_urlcontroller setting.AgentURLis auto-derived fromMetadataURLorCallbackURLif not explicitly set.GET/POST/DELETE /tools/garm-agent,GET /tools/garm-agent/{id}/download,POST /tools/garm-agent/sync.garm-cli tools list|upload|delete|force-sync.Web UI (SPA)
A brand new Single Page Application built with SvelteKit, TypeScript, and Tailwind CSS, embedded directly into the GARM binary:
go:embed. No external file serving needed.Enable the Web UI in your config:
Then navigate to
http://<your-garm-host>:<port>/ui/.Metrics & Observability
Runner Install Templates
garm-cli template list|show|add|update|delete|restore), and Web UI.jqrequirement -- runner install scripts no longer requirejqto be installed at runtime.Generation Tracking and Runner Rotation
garm-cli pool runner rotateandgarm-cli scaleset runner rotatecommands allow rotating runners, with--outdatedfiltering to target only instances from a previous generation, and--dry-runmode to preview changes.CA Certificate Bundle for Controller
Improvements
CLI
garm-cli top-- new interactive terminal dashboard for monitoring live GARM metrics. Displays a multi-panel TUI with summaries of entities, pools, scale sets, instances, and jobs. Refreshes in real-time via WebSocket. Navigate panels withTaband scroll with arrow keys.--endpointflag -- added to all relevant commands for filtering by endpoint.--filteroption -- rudimentary filter support when listing entities.garm-cli debug-log-- streams GARM server logs in real-time via WebSocket with rich formatting:--enable-color,NO_COLOR=1, orFORCE_COLOR=1.--log-level) -- filter by minimum level (DEBUG, INFO, WARN, ERROR).--filter key=value) -- filter log entries by attribute values or message content (msg=text). Can be specified multiple times.--filter-mode any|all) -- choose between OR (any filter matches) or AND (all filters must match) logic.--highlight key) -- highlight specific attributes or message content in the output.garm-cli top
garm-cli debug-log
Performance & Caching
Stability & Resilience
sync.Mapandsync/atomicfor lock-free state tracking in hot paths.Networking
maxMessageSizefor both agent and event WebSocket connections.Bug Fixes
AddInstanceEventnot exposing instance events correctly.dpkglock file conflicts during concurrent runner installations on Debian/Ubuntu.ExecutionPolicyin PowerShell wrapper scripts.JoinPath()with double slashes.Breaking Changes & Deprecations
--allflag deprecated -- the--allflag on scale set listing commands is deprecated; use filtering instead.github.comendpoint can now be updated and deleted.forge_typefield. Existing entities default togithub.New External Provider Listings
What's Changed
New Contributors
Full Changelog: v0.1.8...v0.2.0-beta1
This discussion was created from the release garm v0.2.0-beta1.
Beta Was this translation helpful? Give feedback.
All reactions