fix(kubernetes): register non-DinD runners with host-type labels #36

Merged
rcsheets merged 1 commit from fix/non-dind-host-labels into main 2026-06-26 23:41:25 +00:00
Owner

A non-privileged pool has no DinD sidecar and therefore no Docker daemon, yet
the operator registered its labels bare (e.g. "trusted,gllm"). Forgejo treats a
bare label as Docker-executed, so the runner demanded a daemon at startup and
crashlooped with "daemon Docker Engine socket not found and docker_host config
was invalid".

The v0.4.0 change tried to address this via docker_host "-", but that value
does not disable Docker — it is forgejo-runner's default "find a host
automatically", which is exactly what failed. The real lever is the label type:
a ":host" label runs the job on the runner container and never requires Docker.

Register non-privileged pools' labels as ":host"; privileged (DinD) pools
keep bare labels and run jobs in Docker against the sidecar. Correct the
misleading docker_host comment and the test that repeated the wrong rationale,
and assert the label type for both pool kinds.

Existing non-DinD pools must re-register (delete and recreate) to pick up the
host labels, since registration is cached in the runner's .runner file.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

A non-privileged pool has no DinD sidecar and therefore no Docker daemon, yet the operator registered its labels bare (e.g. "trusted,gllm"). Forgejo treats a bare label as Docker-executed, so the runner demanded a daemon at startup and crashlooped with "daemon Docker Engine socket not found and docker_host config was invalid". The v0.4.0 change tried to address this via docker_host "-", but that value does not disable Docker — it is forgejo-runner's default "find a host automatically", which is exactly what failed. The real lever is the label type: a ":host" label runs the job on the runner container and never requires Docker. Register non-privileged pools' labels as "<name>:host"; privileged (DinD) pools keep bare labels and run jobs in Docker against the sidecar. Correct the misleading docker_host comment and the test that repeated the wrong rationale, and assert the label type for both pool kinds. Existing non-DinD pools must re-register (delete and recreate) to pick up the host labels, since registration is cached in the runner's .runner file. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix(kubernetes): register non-DinD runners with host-type labels
All checks were successful
CI (next Go) / next-go (tip) (pull_request) Successful in 4m26s
CI / ci (pull_request) Successful in 2m5s
E2E smoke test / e2e (pull_request) Successful in 3m27s
218140e979
A non-privileged pool has no DinD sidecar and therefore no Docker daemon, yet
the operator registered its labels bare (e.g. "trusted,gllm"). Forgejo treats a
bare label as Docker-executed, so the runner demanded a daemon at startup and
crashlooped with "daemon Docker Engine socket not found and docker_host config
was invalid".

The v0.4.0 change tried to address this via docker_host "-", but that value
does not disable Docker — it is forgejo-runner's default "find a host
automatically", which is exactly what failed. The real lever is the label type:
a ":host" label runs the job on the runner container and never requires Docker.

Register non-privileged pools' labels as "<name>:host"; privileged (DinD) pools
keep bare labels and run jobs in Docker against the sidecar. Correct the
misleading docker_host comment and the test that repeated the wrong rationale,
and assert the label type for both pool kinds.

Existing non-DinD pools must re-register (delete and recreate) to pick up the
host labels, since registration is cached in the runner's .runner file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collaborator

Automated review by pr-reviewer v0.29.1 | Safety Check | Mistral Small | tracking id r-3ddb43-8f1a68
This is an AI-generated review and may contain mistakes.

Status: Failed


Review failed. Tracking id r-3ddb43-8f1a68 — see logs for details.

Comment @pr-reviewer-bot retry to try again.

*Automated review by [pr-reviewer](https://git.brooktrails.org/brooktrails/pr-reviewer) v0.29.1 | Safety Check | Mistral Small | tracking id `r-3ddb43-8f1a68`* *This is an AI-generated review and may contain mistakes.* **Status:** ❌ Failed --- Review failed. Tracking id `r-3ddb43-8f1a68` — see logs for details. Comment `@pr-reviewer-bot retry` to try again.
rcsheets force-pushed fix/non-dind-host-labels from 218140e979
All checks were successful
CI (next Go) / next-go (tip) (pull_request) Successful in 4m26s
CI / ci (pull_request) Successful in 2m5s
E2E smoke test / e2e (pull_request) Successful in 3m27s
to ad2cd83a52
All checks were successful
CI (next Go) / next-go (tip) (pull_request) Successful in 4m26s
CI / ci (pull_request) Successful in 2m0s
E2E smoke test / e2e (pull_request) Successful in 3m17s
2026-06-26 06:12:41 +00:00
Compare
Collaborator

Automated review by pr-reviewer v0.29.1 | Safety Check | Mistral Small | tracking id r-3e185a-022c24
This is an AI-generated review and may contain mistakes.

Status: Failed


Review failed. Tracking id r-3e185a-022c24 — see logs for details.

Comment @pr-reviewer-bot retry to try again.

*Automated review by [pr-reviewer](https://git.brooktrails.org/brooktrails/pr-reviewer) v0.29.1 | Safety Check | Mistral Small | tracking id `r-3e185a-022c24`* *This is an AI-generated review and may contain mistakes.* **Status:** ❌ Failed --- Review failed. Tracking id `r-3e185a-022c24` — see logs for details. Comment `@pr-reviewer-bot retry` to try again.
Collaborator

Automated review by pr-reviewer v0.29.1 | Safety Check | Mistral Small | tracking id r-3e1876-c669c4
This is an AI-generated review and may contain mistakes.

Status: Failed


Review failed. Tracking id r-3e1876-c669c4 — see logs for details.

Comment @pr-reviewer-bot retry to try again.

*Automated review by [pr-reviewer](https://git.brooktrails.org/brooktrails/pr-reviewer) v0.29.1 | Safety Check | Mistral Small | tracking id `r-3e1876-c669c4`* *This is an AI-generated review and may contain mistakes.* **Status:** ❌ Failed --- Review failed. Tracking id `r-3e1876-c669c4` — see logs for details. Comment `@pr-reviewer-bot retry` to try again.
rcsheets deleted branch fix/non-dind-host-labels 2026-06-26 23:41:25 +00:00
Sign in to join this conversation.
No reviewers
No labels
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
brooktrails/forgejo-runner-operator!36
No description provided.