actions / actions/actions-runner-controller
Actions runner deployed in kubernetes mode on aks has /runner/_work/externals volume empty causing this error - env: ‘/__e/node20/bin/node’: No such file or directory
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 1.5k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 27
Description
Checks
- I've already read https://github.com/actions/actions-runner-controller/blob/master/TROUBLESHOOTING.md and I'm sure my issue is not covered in the troubleshooting guide.
- I'm not using a custom entrypoint in my runner image
Controller Version
0.20.2
Helm Chart Version
No response
CertManager Version
No response
Deployment Method
Helm
cert-manager installation
using 1.11.4 cert manager
Checks
- This isn't a question or user support case (For Q&A and community support, go to Discussions. It might also be a good idea to contract with any of contributors and maintainers if your business is so critical and therefore you need priority support
- I've read releasenotes before submitting this issue and I'm sure it's not due to any recently-introduced backward-incompatible changes
- My actions-runner-controller version (v0.x.y) does support the feature
- I've already upgraded ARC (including the CRDs, see charts/actions-runner-controller/docs/UPGRADING.md for details) to the latest and it didn't fix the issue
- I've migrated to the workflow job webhook event (if you using webhook driven scaling)
Resource Definitions
apiVersion: actions.summerwind.dev/v1alpha1
kind: RunnerDeployment
metadata:
name:
namespace:
spec:
replicas: 1
template:
metadata: {}
spec:
dockerEnabled: false
dockerdContainerResources: {}
enterprise:
env:
- name: GITHUB_ACTIONS_RUNNER_TRACE
value: "true"
- name: RUNNER_CONTAINER_IN_SAME_NODE
value: "true"
group:
image:
labels:
- azure
resources: {}
helm chart values.yaml
actions-runner-controller:
actionsRunner:
containerProvider: kubernetes
persistentVolumeEnabled: true
persistentVolumeStorageClass: azure-storage
persistentVolumeStorageSize: 100Mi
To Reproduce
1. Use azure storage
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azure-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
2.Deploy action runner controller on AKS with kubernetes values.yaml
3.Run workflow file
name: test
on:
workflow_dispatch:
jobs:
job2:
runs-on: azure
container:
image: alpine
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
path: dir1
Describe the bug
Getting env: ‘/__e/node20/bin/node’ : No such file or directory when running runners in kubernetes mode
Describe the expected behavior
/runner/_work/externals is empty whereas /runner/externals has the data somehow its not mapping properly in kubernetes mode
Whole Controller Logs
NA
Whole Runner Pod Logs
NA
Additional Context
NA
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Helm values.yaml and the Kubernetes-mode runner configuration, then reproduce the workflow on AKS using the provided StorageClass and runner manifest. Done means the /runner/_work/externals volume contains the runner externals and the node20-based checkout workflow completes without the missing /__e/node20/bin/node error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go, helm, kubernetes
- Domain
- ci-cd, devops, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100