From 2344564ed4610c2ea38dc32ea408f8155a177e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Thu, 3 Sep 2026 23:45:01 +0100 Subject: [PATCH] act-runners/kubectl: image revision --- ...ubectl-mini.yml => act-runner-kubectl.yml} | 6 +- README.md | 87 ++++++++++++++++++- act-runners/kubectl/.gitignore | 1 + .../{kubectl-mini => kubectl}/Dockerfile | 34 ++++++-- act-runners/kubectl/docker-compose.dev.yaml | 30 +++++++ act-runners/kubectl/entrypoint.sh | 22 +++++ 6 files changed, 167 insertions(+), 13 deletions(-) rename .gitea/workflows/{act-runner-kubectl-mini.yml => act-runner-kubectl.yml} (82%) create mode 100644 act-runners/kubectl/.gitignore rename act-runners/{kubectl-mini => kubectl}/Dockerfile (62%) create mode 100644 act-runners/kubectl/docker-compose.dev.yaml create mode 100644 act-runners/kubectl/entrypoint.sh diff --git a/.gitea/workflows/act-runner-kubectl-mini.yml b/.gitea/workflows/act-runner-kubectl.yml similarity index 82% rename from .gitea/workflows/act-runner-kubectl-mini.yml rename to .gitea/workflows/act-runner-kubectl.yml index e569839..78a4870 100644 --- a/.gitea/workflows/act-runner-kubectl-mini.yml +++ b/.gitea/workflows/act-runner-kubectl.yml @@ -21,6 +21,6 @@ jobs: registry_username: ${{ secrets.OCI_LIMBO_REGISTRY_USERNAME }} registry_password: ${{ secrets.OCI_LIMBO_REGISTRY_PASSWORD }} buildkit_addr: ${{ vars.BUILDKIT_ADDRESS }} - context: ${{gitea.workspace}}/act-runners/kubectl-mini - dockerfile: ${{gitea.workspace}}/act-runners/kubectl-mini - tags: oci.limbosolutions.com/public/act-runners/kubectl-mini:3.0.2 + context: ${{gitea.workspace}}/act-runners/kubectl + dockerfile: ${{gitea.workspace}}/act-runners/kubectl + tags: oci.limbosolutions.com/public/act-runners/kubectl:3.0.2 diff --git a/README.md b/README.md index c5b0ae4..512dd0e 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,10 @@ - [Backup And Restore](#backup-and-restore) - [Gitea dump from docker host](#gitea-dump-from-docker-host) - [nginx](#nginx) -- [act runner](#act-runner) +- [Gitea Runner Environment Variables](#gitea-runner-environment-variables) - [act runner (Official)](#act-runner-official) - [Docker Compose](#docker-compose) + - [custom act runner - kubectl-mini](#custom-act-runner---kubectl-mini) - [custom act runner - network-stack](#custom-act-runner---network-stack) - [workflows - actions](#workflows---actions) - [Other References](#other-references) @@ -54,7 +55,50 @@ sudo docker exec -u git -it -w /tmp gitea bash -c '/app/gitea/gitea dump -d post } ``` -## act runner +## Gitea Runner Environment Variables + +**Registration Variables:** +Used when running `gitea-runner register`. + +- GITEA_INSTANCE_URL +- GITEA_RUNNER_REGISTRATION_TOKEN +- GITEA_RUNNER_NAME +- GITEA_RUNNER_LABELS +- GITEA_RUNNER_CONFIG_FILE + +**Daemon / Runtime Variables:** + +Used when running `gitea-runner daemon`. + +- GITEA_RUNNER_CONFIG_FILE + +**3. Cache Server Variables:** + +Used when running the internal cache server. + +- GITEA_RUNNER_CACHE_SERVER_PORT +- GITEA_RUNNER_CACHE_SERVER_ADDRESS +- GITEA_RUNNER_CACHE_SERVER_DIR + +**Local Execution (`exec`) Variables:** + +Used when running workflows locally with `gitea-runner exec`. + +- GITEA_RUNNER_EXEC_WORKDIR +- GITEA_RUNNER_EXEC_ENV_FILE +- GITEA_RUNNER_EXEC_SECRET_FILE + +**Advanced / Debugging Variables:** + +Low-level runtime toggles. + +- GITEA_RUNNER_DEBUG +- GITEA_RUNNER_TRACE +- GITEA_RUNNER_LOG_FORMAT # text or json +- GITEA_RUNNER_LOG_FILE +- GITEA_RUNNER_DISABLE_NETWORK +- GITEA_RUNNER_DISABLE_DOCKER +- GITEA_RUNNER_DISABLE_SHELL ### act runner (Official) @@ -83,6 +127,45 @@ sudo docker exec -u git -it -w /tmp gitea bash -c '/app/gitea/gitea dump -d post - GITEA_RUNNER_REGISTRATION_TOKEN= ``` +### custom act runner - kubectl-mini + +``` bash +docker pull oci.limbosolutions.com/public/act-runners/kubectl:3.0.2 +``` + +**Docker Compose example:** + +``` yaml +services: + act-runner: + image: oci.limbosolutions.com/public/act-runners/kubectl:3.0.2 + container_name: act-runner-kubectl + restart: unless-stopped + configs: + - source: runner_config + target: "etc/act_runner/config.yaml" + environment: + GITEA_INSTANCE_URL: "${GITEA_INSTANCE_URL}" + GITEA_RUNNER_REGISTRATION_TOKEN: "${GITEA_RUNNER_REGISTRATION_TOKEN}" +volumes: + act-runner-config: +configs: + runner_config: + content: | + log: + level: info + + runner: + capacity: 1 + labels: + - linux + - kubectl + + cache: + enabled: false + +``` + ### custom act runner - network-stack **🚀 Purpose** diff --git a/act-runners/kubectl/.gitignore b/act-runners/kubectl/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/act-runners/kubectl/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/act-runners/kubectl-mini/Dockerfile b/act-runners/kubectl/Dockerfile similarity index 62% rename from act-runners/kubectl-mini/Dockerfile rename to act-runners/kubectl/Dockerfile index e41d1ed..699f10d 100644 --- a/act-runners/kubectl-mini/Dockerfile +++ b/act-runners/kubectl/Dockerfile @@ -4,7 +4,7 @@ ARG ACT_RUNNER_VERSION=3.0.2 # STAGE 1 — BUILDER FROM alpine:3.20 AS builder ARG ACT_RUNNER_VERSION -RUN apk add --no-cache curl unzip +RUN apk add --no-cache curl unzip bash # Kubectl RUN curl -Lo /tmp/kubectl \ @@ -29,13 +29,31 @@ FROM alpine:3.20 COPY --from=builder /tmp/kubectl /usr/local/bin/kubectl COPY --from=builder /tmp/gitea-runner /usr/local/bin/act_runner +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh -RUN addgroup -g 1000 kube \ - && adduser -D -u 1000 -G kube -s /bin/ash kube \ - && mkdir -p /home/kube \ - && chown -R kube:kube /home/kube -USER kube -WORKDIR /home/kube +RUN addgroup -g 1000 runner \ + && adduser -D -u 1000 -G runner -s /bin/bash runner \ + && mkdir -p /home/runner \ + && chown -R runner:runner /home/runner + + RUN mkdir /etc/act_runner \ + && chown -R runner:runner /etc/act_runner + + + +VOLUME /home/runner/data + +ENV GITEA_RUNNER_NAME="kubectl-mini" \ + GITEA_RUNNER_CONFIG_FILE="/etc/act_runner/config.yaml" \ + GITEA_RUNNER_EXEC_WORKDIR="/home/runner/workspace" \ + GITEA_RUNNER_EPHEMERAL="1"\ + GITEA_RUNNER_LABELS="linux,alpine,kubectl" + +USER runner +RUN mkdir /home/runner/workspace && mkdir /home/runner/data +WORKDIR /home/runner + +ENTRYPOINT ["/entrypoint.sh"] -ENTRYPOINT ["/usr/local/bin/act_runner"] \ No newline at end of file diff --git a/act-runners/kubectl/docker-compose.dev.yaml b/act-runners/kubectl/docker-compose.dev.yaml new file mode 100644 index 0000000..6126847 --- /dev/null +++ b/act-runners/kubectl/docker-compose.dev.yaml @@ -0,0 +1,30 @@ +services: + act-runner: + build: + context: . + dockerfile: Dockerfile + image: act-runners/kubectl:dev + container_name: act-runner-kubectl + restart: unless-stopped + configs: + - source: runner_config + target: "etc/act_runner/config.yaml" + environment: + GITEA_INSTANCE_URL: "${GITEA_INSTANCE_URL}" + GITEA_RUNNER_REGISTRATION_TOKEN: "${GITEA_RUNNER_REGISTRATION_TOKEN}" +volumes: + act-runner-config: +configs: + runner_config: + content: | + log: + level: info + + runner: + capacity: 1 + labels: + - linux + - kubectl + + cache: + enabled: false diff --git a/act-runners/kubectl/entrypoint.sh b/act-runners/kubectl/entrypoint.sh new file mode 100644 index 0000000..3a73694 --- /dev/null +++ b/act-runners/kubectl/entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +if [ ! -f "$GITEA_RUNNER_CONFIG_FILE" ]; then + echo "ERROR: Config file not found at $GITEA_RUNNER_CONFIG_FILE" + exit 1 +fi + +cd /home/runner/data +if [ ! -f ".runner" ]; then + + echo "Registering runner..." + act_runner register \ + -c "$GITEA_RUNNER_CONFIG_FILE" \ + --instance "$GITEA_INSTANCE_URL" \ + --token "$GITEA_RUNNER_REGISTRATION_TOKEN" \ + --name "$GITEA_RUNNER_NAME" \ + --labels "$GITEA_RUNNER_LABELS" +fi + +echo "Starting runner..." +exec act_runner daemon \ + -c "$GITEA_RUNNER_CONFIG_FILE"