Checks
Controller Version
0.4.0
Helm Chart Version
0.4.0
CertManager Version
N/a
Deployment Method
Helm
cert-manager installation
N/a
Checks
Resource Definitions
# install arc
helm install arc `
--namespace my-arc-namespace `
--create-namespace `
--set githubConfigSecret.github_token=$myPat `
--set nodeSelector."kubernetes\.io/os"=linux `
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller `
--version 0.4.0
# linux-values.yaml contents (for linux based jobs):
template:
spec:
nodeSelector:
kubernetes.io/os: linux
# windows-values.yaml contents (for windows based jobs):
template:
spec:
nodeSelector:
kubernetes.io/os: windows
containers:
- name: runner
image: location-of-my-windows-runner-container/my-windows-runner:latest
# scale sets are installed using the helm chart and one of the overrides above, e.g. for windows:
helm upgrade --install my-windows-runner-set `
--namespace my-runners-namespace `
--create-namespace `
--set githubConfigUrl=$myGitHubUrl `
--set githubConfigSecret.github_token=$myPat `
--values windows-values.yaml `
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set `
--version 0.4.0
To Reproduce
Using AKS:
# option 1:
1. Create an aks cluster which will have a linux based node pool for the control plane called "nodepool1"
2. Add a Windows node pool called "wpool" with a single Windows node
3. Install the ARC controller via the helm chart as shown above
4. Install a Windows runner scale set via helm chart as shown above
5. The scale set listener is scheduled on the Windows node created in step 2 and not on a linux node in "nodepool1" (despite its name - see below)
# option 2: As for #1 - but add a linux based user nodepool called "zzzpool" - same issue
# option 3: As for #1 - but add a linux based user nodepool called "aaapool" - this works, listeners are scheduled on this and Windows runners are correctly scheduled on the windows node pool
# option 4: As for #1 - but create the Windows node pool with zero nodes and auto scaling enabled - this also works but isn't a feasible workaround (and is obviously also slower when a Windows runner is required)
Note - if a listener pod needs to be recreated for any reason this same issue can occur.
Describe the bug
Described in the steps to reproduce above.
Describe the expected behavior
Listener pods are always scheduled on linux nodes regardless of the nodepool name.
Whole Controller Logs
Whole Runner Pod Logs
Additional Context
No response
Checks
Controller Version
0.4.0
Helm Chart Version
0.4.0
CertManager Version
N/a
Deployment Method
Helm
cert-manager installation
N/a
Checks
Resource Definitions
To Reproduce
Describe the bug
Described in the steps to reproduce above.
Describe the expected behavior
Listener pods are always scheduled on linux nodes regardless of the nodepool name.
Whole Controller Logs
Whole Runner Pod Logs
Additional Context
No response