-
Notifications
You must be signed in to change notification settings - Fork 82
Description
Summary
After migrating our GitHub Actions Runner Scale Set from containerMode: kubernetes (with kubernetesModeWorkVolumeClaim) to the new containerMode: kubernetes-novolume implementation, composite actions can no longer resolve their local paths.
We receive the following error:
Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/_work/cloudburst/cloudburst/.github/workflows/playwright-test'. Did you forget to run actions/checkout before running your local action?
✔ Previous (Working) Configuration — kubernetes mode (with PVC)
RunnerScaleSet values:
runner-e2e:
containerMode:
type: "kubernetes"
kubernetesModeWorkVolumeClaim:
accessModes: ["ReadWriteOnce"]
storageClassName: "github-runners-sc"
resources:
requests:
storage: 10Gi
template:
spec:
containers:
- name: runner
env:
- name: ACTIONS_RUNNER_CONTAINER_HOOK_TEMPLATE
value: /home/runner/pod-templates/default.yaml
volumes:
- name: hook-extension
configMap:
name: runner-e2e-hook-extensionHook extension (ConfigMap):
data:
default.yaml: |
apiVersion: v1
kind: PodTemplate
spec:
serviceAccountName: runner-e2e
resources:
requests:
memory: "8Gi"
cpu: "3000m"
containers:
- name: "$job"
imagePullPolicy: Always➡ This configuration works.
Local composite actions are found under:
/home/runner/_work///.github/...
❌ New (Failing) Configuration — kubernetes-novolume mode
runner-e2e:
containerMode:
type: "kubernetes-novolume"
template:
metadata:
labels:
pod-type: runner
spec:
containers:
- name: runner
env:
- name: ACTIONS_RUNNER_CONTAINER_HOOKS
value: /home/runner/k8s-novolume/index.js
- name: ACTIONS_RUNNER_CONTAINER_HOOK_TEMPLATE
value: /home/runner/k8s-novolume/pod-templates/default.yaml
volumeMounts:
- name: hook-extension
mountPath: /home/runner/k8s-novolume/pod-templatesHook extension (ConfigMap):
data:
default.yaml: |
apiVersion: v1
kind: PodTemplate
spec:
serviceAccountName: runner-e2e
nodeSelector:
karpenter.sh/nodepool: github-arc
containers:
- name: "$job"
env:
- name: RUNNER_WORKSPACE
value: /__w
- name: GITHUB_WORKSPACE
value: /__w/cloudburst❗ Observed Behavior
The job container tries to locate composite action files under:
/home/runner/_work/cloudburst/cloudburst/.github/workflows/playwright-test
But with kubernetes-novolume, the actual workspace appears to be:
/__w/cloudburst/cloudburst
Additionally, /home/runner/_work does not exist at all inside the job container.
This mismatch causes composite actions to fail with:
Can't find 'action.yml', 'action.yaml' or 'Dockerfile'