feat: replace arm with x86 worker

This commit is contained in:
Peter 2025-02-12 20:27:06 +01:00
parent 7c41de2318
commit cceb054188
Signed by: prskr
GPG key ID: F56BED6903BC5E37
5 changed files with 36 additions and 14 deletions

View file

@ -0,0 +1,5 @@
{
"features": {
"containerd-snapshotter": true
}
}

View file

@ -11,4 +11,4 @@ ExecStart=forgejo-runner daemon --config /etc/act/config.yaml
WorkingDirectory=/var/lib/runner
[Install]
WantedBy=multi-user.target
WantedBy=default.target

View file

@ -9,14 +9,15 @@ runner:
capacity: 1
envs:
DOCKER_HOST: unix:///var/run/docker.sock
timeout: 30m
timeout: 3h
fetch_timeout: 5s
fetch_interval: 2s
labels:
- "docker:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64"
- "ubuntu-latest:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64"
- "ubuntu-22.04:docker://code.icb4dc0.de/infrastructure/images/act_runtime:22.04-arm64"
- "ubuntu-24.04:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64"
- "docker:docker://code.icb4dc0.de/infrastructure/images/act_runtime:24.04"
- "ubuntu-latest:docker://code.icb4dc0.de/infrastructure/images/act_runtime:24.04"
- "ubuntu-22.04:docker://code.icb4dc0.de/infrastructure/images/act_runtime:22.04"
- "ubuntu-latest-${arch}:docker://code.icb4dc0.de/infrastructure/images/act_runtime:24.04"
- "ubuntu-22.04-${arch}:docker://code.icb4dc0.de/infrastructure/images/act_runtime:22.04"
cache:
enabled: true

View file

@ -92,8 +92,6 @@ data "cloudinit_config" "runner_config" {
- ca-certificates
- curl
- gnupg
- qemu-user
- qemu-user-binfmt
- lsb-release
- docker-ce
- docker-ce-cli
@ -103,7 +101,7 @@ data "cloudinit_config" "runner_config" {
apt:
sources:
docker.list:
source: "deb [arch=arm64 signed-by=$KEY_FILE] https://download.docker.com/linux/ubuntu $RELEASE stable"
source: "deb [arch=${startswith(each.value.server_type, "cax") ? "arm64" : "amd64"} signed-by=$KEY_FILE] https://download.docker.com/linux/ubuntu $RELEASE stable"
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
EOF
}
@ -126,11 +124,27 @@ data "cloudinit_config" "runner_config" {
defer: true
- encoding: gzip+base64
content: ${base64gzip(file("configs/ci-runner/runner-config.yaml"))}
content: ${base64gzip(templatefile("configs/ci-runner/runner-config.yaml", {
arch = startswith(each.value.server_type, "cax") ? "arm64" : "amd64"
}))}
path: /etc/act/config.yaml
owner: runner:runner
permissions: "0640"
defer: true
- encoding: gzip+base64
content: ${base64gzip(file("configs/ci-runner/daemon.json"))}
path: /etc/docker/daemon.json
owner: root:root
permissions: "0640"
defer: true
- encoding: gzip+base64
content: ${base64gzip(file("configs/ci-runner/daemon.json"))}
path: /var/lib/runner/.config/docker/daemon.json
owner: runner:runner
permissions: "0640"
defer: true
EOF
}
@ -142,17 +156,19 @@ data "cloudinit_config" "runner_config" {
set -e
loginctl enable-linger runner
docker run --privileged --rm tonistiigi/binfmt --install all
sleep 10
sudo -u runner DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/dockerd-rootless-setuptool.sh install --force
curl -L -o /usr/local/bin/forgejo-runner https://data.forgejo.org/forgejo/runner/releases/download/v${var.forgejo_runner_version}/forgejo-runner-${var.forgejo_runner_version}-linux-arm64
curl -L -o /tmp/forgejo-runner.asc https://data.forgejo.org/forgejo/runner/releases/download/v${var.forgejo_runner_version}/forgejo-runner-${var.forgejo_runner_version}-linux-arm64.asc
curl -L -o /usr/local/bin/forgejo-runner https://data.forgejo.org/forgejo/runner/releases/download/v${var.forgejo_runner_version}/forgejo-runner-${var.forgejo_runner_version}-linux-${startswith(each.value.server_type, "cax") ? "arm64" : "amd64"}
curl -L -o /tmp/forgejo-runner.asc https://data.forgejo.org/forgejo/runner/releases/download/v${var.forgejo_runner_version}/forgejo-runner-${var.forgejo_runner_version}-linux-${startswith(each.value.server_type, "cax") ? "arm64" : "amd64"}.asc
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
gpg --verify /tmp/forgejo-runner.asc /usr/local/bin/forgejo-runner
chmod +x /usr/local/bin/forgejo-runner
sudo -u runner forgejo-runner register --config /etc/act/config.yaml --no-interactive --token ${var.forgejo_runner_secret} --name ${each.key} --instance ${var.forgejo_instance_url} --labels docker:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64,ubuntu-latest:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64,ubuntu-22.04:docker://code.icb4dc0.de/infrastructure/images/act_runtime:22.04-arm64,ubuntu-24.04:docker://code.icb4dc0.de/infrastructure/images/act_runtime:arm64
sudo -u runner forgejo-runner register --config /etc/act/config.yaml --no-interactive --token ${var.forgejo_runner_secret} --name ${each.key} --instance ${var.forgejo_instance_url}
sudo -u runner DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus XDG_RUNTIME_DIR=/run/user/1000 systemctl --user enable --now forgejo-runner.service
EOF

View file

@ -46,7 +46,7 @@ forgejo_runners = {
}
"ci-minion-stuart" = {
server_type = "cax21"
server_type = "cpx21"
generation = 2
private_ip = "172.23.2.31"
location = "hel1"