New Forgejo Runner #106

Open
june wants to merge 5 commits from new_forgejo_runner into main
Owner

Moving the Forgejo Runner to Ansible.
Includes some preliminary work for gVisor as well, but the runner is running standard Docker for now as gVisor still needs some upstream fixes.

Moving the Forgejo Runner to Ansible. Includes some preliminary work for gVisor as well, but the runner is running standard Docker for now as gVisor still needs [some upstream fixes](https://code.forgejo.org/forgejo/forgejo-actions-feature-requests/issues/115).
docker(role): document gVisor issue with user-def. br. and provide help
Some checks failed
/ Ansible Lint (push) Successful in 3m53s
/ build (pull_request) Failing after 2m40s
/ Ansible Lint (pull_request) Successful in 2m41s
fdd9eadad1
Document issue with containers on user-defined bridges and using the
gVisor runsc runtime. Also provide a helper resolv.conf as a workaround.
june changed title from New Forgejo Runner to WIP: New Forgejo Runner 2026-06-23 21:05:43 +02:00
june force-pushed new_forgejo_runner from fdd9eadad1
Some checks failed
/ Ansible Lint (push) Successful in 3m53s
/ build (pull_request) Failing after 2m40s
/ Ansible Lint (pull_request) Successful in 2m41s
to a4f1f9b9fe
Some checks failed
/ Ansible Lint (push) Has been cancelled
/ build (pull_request) Has been cancelled
/ Ansible Lint (pull_request) Has been cancelled
2026-06-23 21:32:59 +02:00
Compare
june force-pushed new_forgejo_runner from a4f1f9b9fe
Some checks failed
/ Ansible Lint (push) Has been cancelled
/ build (pull_request) Has been cancelled
/ Ansible Lint (pull_request) Has been cancelled
to edd1984517
All checks were successful
/ Ansible Lint (push) Successful in 2m36s
/ Ansible Lint (pull_request) Successful in 2m51s
/ build (pull_request) Successful in 33s
2026-06-23 21:33:24 +02:00
Compare
june changed title from WIP: New Forgejo Runner to New Forgejo Runner 2026-06-23 21:46:00 +02:00
stb approved these changes 2026-06-24 09:04:40 +02:00
@ -0,0 +14,4 @@
labels:
# https://forgejo.org/docs/latest/admin/actions/configuration/#choosing-labels
- docker:docker://docker.io/library/node:lts
Owner

If we can add these, this replaces the old VM-based runner (almost) completely. Note: this requires a bit of disk space, the ubuntu image is ~15GB.

  - alpine-latest:docker://docker.io/alpine:latest
  - ubuntu-latest:docker://catthehacker/ubuntu:full-latest
  - ubuntu-24.04:docker://catthehacker/ubuntu:full-24.04
If we can add these, this replaces the old VM-based runner (almost) completely. Note: this requires a bit of disk space, the ubuntu image is ~15GB. ``` - alpine-latest:docker://docker.io/alpine:latest - ubuntu-latest:docker://catthehacker/ubuntu:full-latest - ubuntu-24.04:docker://catthehacker/ubuntu:full-24.04 ```
Author
Owner

Sure, can add those!
It's still running on Docker tho, so advanced capabilities like qemu aren't available, but now that @lilly moved the image builds to Container-based Actions that should be fine.

Sure, can add those! It's still running on Docker tho, so advanced capabilities like `qemu` aren't available, but now that @lilly moved the image builds to Container-based Actions that should be fine.
Author
Owner

Guess question would be, if we really need the full-sized images (extracted 60GB disk space usage) or if the act versions are fine for us (which are the same that Codeberg use).
https://github.com/catthehacker/docker_images

Guess question would be, if we really need the full-sized images (extracted 60GB disk space usage) or if the act versions are fine for us (which are the same that Codeberg use). https://github.com/catthehacker/docker_images
@ -0,0 +1,9 @@
# resolv.conf pointing to Quad9 for bind-mounting into containers on user-defined bridges and using the gVisor runsc runtime.
# Example: docker run --runtime runsc --mount type=bind,src=/etc/gvisor-helper-resolv.conf,dst=/etc/resolv.conf,ro=true --network your-user-defined-network -it --rm docker.io/library/debian /bin/bash
nameserver 9.9.9.9
Owner

Why quad 9 and not one of our resolvers?

Why quad 9 and not one of our resolvers?
Author
Owner

Would do that once we have proper resolvers we run ourself. This isn't the case right now afaik.

Would do that once we have proper resolvers we run ourself. This isn't the case right now afaik.
june force-pushed new_forgejo_runner from edd1984517
All checks were successful
/ Ansible Lint (push) Successful in 2m36s
/ Ansible Lint (pull_request) Successful in 2m51s
/ build (pull_request) Successful in 33s
to ab4e32f461
All checks were successful
/ build (pull_request) Successful in 30s
/ Ansible Lint (pull_request) Successful in 3m19s
/ Ansible Lint (push) Successful in 3m32s
2026-06-24 21:58:50 +02:00
Compare
All checks were successful
/ build (pull_request) Successful in 30s
/ Ansible Lint (pull_request) Successful in 3m19s
/ Ansible Lint (push) Successful in 3m32s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin new_forgejo_runner:new_forgejo_runner
git switch new_forgejo_runner

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff new_forgejo_runner
git switch new_forgejo_runner
git rebase main
git switch main
git merge --ff-only new_forgejo_runner
git switch new_forgejo_runner
git rebase main
git switch main
git merge --no-ff new_forgejo_runner
git switch main
git merge --squash new_forgejo_runner
git switch main
git merge --ff-only new_forgejo_runner
git switch main
git merge new_forgejo_runner
git push origin main
Sign in to join this conversation.
No reviewers
stb
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
CCCHH/ansible-infra!106
No description provided.