|
|
||
|---|---|---|
| .forgejo/workflows | ||
| cmd | ||
| nomad | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
forgejo-nomad-runner
This has assorted utilities for running Forgejo Actions on a Nomad cluster, including:
autoscaler
This runs the standard Forgejo Actions Runner container image, and scales its Nomad task group according to whether Forgejo Actions has pending jobs. The runner(s) will be scheduled on the Nomad cluster as needed, which allows execution of multiple jobs simultaneously while being mindful of preserving resources for other jobs.
One notable problem with this approach is that the Podman API actually belongs to the host system, mounted into the runner image with a Nomad host volume, so the tasks aren't isolated from other containers running on the host. Running Podman within Podman mitigates this, but I haven't figured out how to do that yet.
It lives in cmd/autoscaler/autoscaler.go.