actions / actions-runner-controller

Kubernetes controller for GitHub Actions self-hosted runners
Apache License 2.0
4.63k stars 1.1k forks source link

DIND gha-runner-scale-set: cp: cannot stat '/home/runner/externals/.': No such file or directory #3634

Open rdvansloten opened 3 months ago

rdvansloten commented 3 months ago

Checks

Controller Version

0.9.3

Deployment Method

Helm

Checks

To Reproduce

- Install latest oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
- Watch as "init-dind-externals" errors out with cp: cannot stat '/home/runner/externals/.': No such file or directory

Describe the bug

Expected my init-dind-externals to work.

Describe the expected behavior

init-dind-externals should start, so that my runner can.

Additional Context

Using this Dockerfile build from the main branch of the repo:
actions-runner-dind.ubuntu-22.04.dockerfile

Passing this values file, straight from the docs, with edits where needed. The images are from my private registry, since our firewall doesn't allow remote pull. I imported/built official Dockerfiles from the repo, or pulled straight from ghcr. I built/imported everything for 0.9.3 today.

githubConfigUrl: "https://github.com/my-company"
githubConfigSecret:
  github_token: "redacted"

runnerGroup: "redacted"

template:
  spec:
    initContainers:
      - name: init-dind-externals
        image: redacted.azurecr.io/actions/actions-runner:latest
        command:
          ["cp", "-r", "-v", "/home/runner/externals/.", "/home/runner/tmpDir/"]
        volumeMounts:
          - name: dind-externals
            mountPath: /home/runner/tmpDir
    containers:
      - name: runner
        image: redacted.azurecr.io/actions/actions-runner:latest
        command: ["/home/runner/run.sh"]
        env:
          - name: DOCKER_HOST
            value: unix:///var/run/docker.sock
        volumeMounts:
          - name: work
            mountPath: /home/runner/_work
          - name: dind-sock
            mountPath: /var/run
      - name: dind
        image: redacted.azurecr.io/library/docker:26.1.4-dind
        args:
          - dockerd
          - --host=unix:///var/run/docker.sock
          - --group=$(DOCKER_GROUP_GID)
        env:
          - name: DOCKER_GROUP_GID
            value: "123"
        securityContext:
          privileged: true
        volumeMounts:
          - name: work
            mountPath: /home/runner/_work
          - name: dind-sock
            mountPath: /var/run
          - name: dind-externals
            mountPath: /home/runner/externals
    volumes:
      - name: work
        emptyDir: {}
      - name: dind-sock
        emptyDir: {}
      - name: dind-externals
        emptyDir: {}

### Controller Logs

```shell
Controller has no opinion about a crashing init container.

Runner Pod Logs

`cp: cannot stat '/home/runner/externals/.': No such file or directory`
github-actions[bot] commented 3 months ago

Hello! Thank you for filing an issue.

The maintainers will triage your issue shortly.

In the meantime, please take a look at the troubleshooting guide for bug reports.

If this is a feature request, please review our contribution guidelines.

umaasik commented 2 months ago

I'm running into the same issue using rootless images.

aaronmassicotte commented 2 months ago

Same boat here, on 0.9.2. It's odd because this is only occurring on one of 3 runnersets, all using the same helm chart and cluster

claytonchew commented 2 weeks ago

Submitted a fix (#3740) for this.