Sourced from github.com/cloudbase/garm's releases.
garm v0.1.4
Welcome to GARM version v0.1.4!
Before we dive into the highlights, there are a couple of things we need to mention.
Breaking change warning :warning:
This version removes the LXD internal provider in favor of two new external providers:
This was done mainly due to the licensing change of LXD. If you're using LXD and are upgrading from previous versions, you must download the LXD external provider and configure it.
Another breaking (sort of) change is in the
garm-cli
. The--force
flag in therunner remove
command, is no longer mandatory when removing a runner. Moreover, the--force
flag now ignores provider errors. In previous versions, if a provider erred when removing a runner, GARM would keep trying until it succeeded. The problem was that if a provider was misconfigured, we would be stuck with a runner in error state until re manually removed it from the database. The--force
flag allows us to remove a runner from GARM even if the provider returns an error.Database upgrade :warning:
This version will execute a database migration. While we try not to break anything when making database migrations, it's always a good idea to create a backup of your DB as well as any configuration files. If anything goes wrong, you can revert the changes.
To safely create a backup of you DB, you can use the
sqlite3
CLI:# Change the path to your DB to the one configured in your config.toml sqlite3 /etc/garm/garm.db .backup /path/to/backup/location/garm-backup.db
Highlights
This release is packed with optimizations, changes and a couple of nice features.
JIT runners
The main highlight of this release is the ability to use just-in-time self-hosted runners. To accommodate this change, GARM now has more robust metadata endpoints that can serve the needed JIT files. This will most likely be expanded in the future to include setup scripts for clouds where we have userdata size constraints.
JIT runners allows us to avoid sending a runner registration token over the wire. Registration tokens can be used to register multiple runners and have a validity of one hour. A bad actor may intercept this token and use it to register their own runners. With JIT runners, only one runner may use the credentials at any given point in time. The credentials are fetched from GARM by the runner when it spins up.
This feature can be disabled in the provider config by specifying:
[[provider]] disable_jit_config = true
easily access controller info
We now have the ability to gain more insight into how GARM is configured. We've added a new command which can show us some info about the controller:
</tr></table>
... (truncated)
747604e
Merge branch 'up-main' into release/v0.1e575053
Merge pull request #210
from gabriel-samfira/add-new-providers342ed8e
Add new providersc44f02c
Merge branch 'up-main' into release/v0.196208bb
Merge pull request #209
from gabriel-samfira/fix-typoseb72932
Fix typos in garm-cli6ca50dc
Merge pull request #208
from gabriel-samfira/update-readme803f7af
Add GCP to the list of providers3b9e822
Merge pull request #207
from gabriel-samfira/update-readme8efdcba
Update README