Skip to content

Run the job in a container (required by the hardened cirrus runner) - #1

Merged
cboettig merged 1 commit into
mainfrom
arc-kubernetes-mode-job-container
Aug 12, 2026
Merged

Run the job in a container (required by the hardened cirrus runner)#1
cboettig merged 1 commit into
mainfrom
arc-kubernetes-mode-job-container

Conversation

@cboettig

Copy link
Copy Markdown
Member

The arc-runner-espm157 self-hosted runner no longer runs Docker-in-Docker.

It previously ran a docker:dind sidecar with privileged: true, so any
workflow landing on it could reach a privileged Docker socket and become root on
cirrus — the cluster's only node and its control plane. For a runner executing
student-authored coursework that is the worst place to have that property, so it
now uses ARC's containerMode: kubernetes, where each job runs as its own
Kubernetes pod.

Consequence for workflows: a job container is now mandatory
(ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER=true), and a job without container:
fails at startup. This adds container: rocker/ml, the same image
espm-157/climate-python-template declares in its devcontainer. That exact image
was verified end to end on this runner against an identical workflow
(checkout -> setup-python 3.11.9 -> pip install -r requirements.txt -> pytest),
all steps passing.

This also repairs the runs-on label, which was broken independently of the
above.

It pointed at arc-runner-espm157-f24, a Fall-2024 one-off scale set that has been decommissioned, so no runner would ever pick the job up.

@cboettig
cboettig merged commit 6807955 into main Aug 12, 2026
1 check passed
@cboettig
cboettig deleted the arc-kubernetes-mode-job-container branch August 12, 2026 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant