actions-runner-controller/controllers
Guilherme Teixeira ac64be27d5
feat: add default linux nodeSelector to listener pod
The listener is a Linux-only binary. In mixed-OS clusters (e.g. with
Windows node pools), the listener pod can be scheduled on a Windows
node where it fails with a platform mismatch.

Issue #2652 was closed by #2758 which gave users a workaround via
listenerTemplate, but the default behavior still allows the listener
to be scheduled on Windows nodes. This PR adds a safe default
(kubernetes.io/os: linux) so users don't need to explicitly configure
listenerTemplate just to prevent the listener from landing on a
non-Linux node.

Changes:
- Add default nodeSelector kubernetes.io/os: linux to listener pod spec
- Define LabelKeyKubernetesOS constant alongside existing k8s labels
- Make mergeListenerPodWithTemplate preserve the default when the
  listenerTemplate does not explicitly set a nodeSelector (nil check)
- Add unit tests for all nodeSelector merge scenarios

Refs: #2652
2026-02-11 11:59:01 +01:00
..
actions.github.com feat: add default linux nodeSelector to listener pod 2026-02-11 11:59:01 +01:00
actions.summerwind.net Potential fix for code scanning alert no. 7: Use of a broken or weak cryptographic hashing algorithm on sensitive data (#4353) 2026-01-14 21:04:02 -08:00