github-actions-runner-operator icon indicating copy to clipboard operation
github-actions-runner-operator copied to clipboard

#321: Update sample: externals mount point

Open developerdino opened this issue 4 years ago • 5 comments

Add new mount point to the example GithubActionRunner runner-pool kustomization to allow docker container (dind) access to the action runners externals directory in the runner container. This is required to stop the docker container from failing at actions/checkout with the error

OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"/__e/node12/bin/node\": stat /__e/node12/bin/node: no such file or directory": unknown

Refs: #321

developerdino avatar Oct 06 '21 00:10 developerdino

but won't this shadow/mount over the existing contents which is needed?

docker run -ti --entrypoint /bin/bash --rm quay.io/evryfs/github-actions-runner:latest
Unable to find image 'quay.io/evryfs/github-actions-runner:latest' locally
latest: Pulling from evryfs/github-actions-runner
f3ef4ff62e0d: Already exists 
cf3b9f168331: Already exists 
1c06cc119757: Pull complete 
57c1d741cc99: Pull complete 
45015c714ab1: Pull complete 
580a1b3afedd: Pull complete 
be6058bda048: Pull complete 
16d600f7bbaa: Pull complete 
c91b3db68014: Pull complete 
973e0c628549: Pull complete 
Digest: sha256:d4a5985612c1b658c789a1d1def49a8319d4f8b4cb3dcca2d249fbb2dffdd874
Status: Downloaded newer image for quay.io/evryfs/github-actions-runner:latest
runner@301ef2a3c44f:~$ ls /home/runner/externals
node12  node12_alpine

davidkarlsen avatar Oct 09 '21 16:10 davidkarlsen

I think you may be correct, however, I'm currently not seeing this due to the GitHub action-runner self updating functionality updating the version straight away once initialised. So yes it is currently working for me in my environment but in the scenario where the action-runner is already up to date then this may fail.

@davidkarlsen any other ideas how we can get the DinD container to have a copy of the files mounted in the runner container without wiping out the original files in the runner and being able to keep these synchronised?

P.S. I also seem to be having the same issue with an action that is using /tmp directory to store build artefacts. Very annoying as it is not configurable. Not sure why they have to use another non-standard runner work dir but I suspect they aren't the only action to do so.

developerdino avatar Oct 11 '21 23:10 developerdino

I've verified that your assumption is correct, so our fix currently is to run the initialisation script every time regardless of version to make sure even though the /home/runner/externals directory is clobbered by the mount point it is reinstated by install-runner each time.

ATM this is the best/easiest work around we could come up with. If you/anyone else has a better solution I'm all ears.

developerdino avatar Nov 05 '21 00:11 developerdino

I've verified that your assumption is correct, so our fix currently is to run the initialisation script every time regardless of version to make sure even though the /home/runner/externals directory is clobbered by the mount point it is reinstated by install-runner each time.

ATM this is the best/easiest work around we could come up with. If you/anyone else has a better solution I'm all ears.

Init container is maybe the best yes, we're currently investigating using another base-image, so I haven't forgotten this case - we just need to look around a bit.

Moving this issue to https://github.com/evryfs/github-actions-runner where it really belongs.

GitHub
Contribute to evryfs/github-actions-runner development by creating an account on GitHub.

davidkarlsen avatar Nov 11 '21 13:11 davidkarlsen

Great, let me know if I can be of any assistance.

developerdino avatar Nov 11 '21 22:11 developerdino