Skip to content

Conversation

@gabriel-samfira
Copy link
Member

@gabriel-samfira gabriel-samfira commented Sep 21, 2025

This change adds the ability to easily manage runner install templates. This feature only takes care of the script that ends up downloading, installing and configuring the runner on providers that use userdata to do so. This does not apply to the kubernetes provider where the image can hold an entrypoint that just parses the bootstrap params and does the right thing.

The rest of the providers require userdata to be injected by the provider, a VM or container needs to spin up, fetch its userdata and run it.

In this scenario, the providers are still responsible for crafting and setting the userdata, but GARM will now supply the runner install template that gets included in the userdata. To do that, we added a new metadata URL that generates and serves the install script.

The userdata installed by the provider is just a small wrapper that does a curl/wget on the API endpoint, gets the actual script and runs it.

This allows us a lot of flexibility in terms of creating new templates or customizing existing ones and setting them on the pool/scale set.

Here is a demo:

templates-demo.mp4

Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Pools and scale sets will automatically migrate to the new template
system for runner install scripts. If a pool or a scale set cannot be
migrate, it is left alone. It is expected that users set a runner install
template manually for scenarios we don't yet have a template for (windows
on gitea for example).

Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
Signed-off-by: Gabriel Adrian Samfira <[email protected]>
@gabriel-samfira gabriel-samfira merged commit 23f92bc into cloudbase:main Sep 23, 2025
4 checks passed
@gabriel-samfira gabriel-samfira deleted the add-install-script-metadata branch September 23, 2025 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant