Unify node-pinning label keys #5

Closed
opened 2026-07-04 19:08:30 +03:00 by oleks · 1 comment
Owner

Same intent expressed 3 ways: labels {arch: amd64} (lxml-s390x:2), labels {platform: mermaid} (pillow-s390x:2), nodeSelector {provider: digitalocean}. Pick one convention, migrate fleet-wide.

Same intent expressed 3 ways: labels {arch: amd64} (lxml-s390x:2), labels {platform: mermaid} (pillow-s390x:2), nodeSelector {provider: digitalocean}. Pick one convention, migrate fleet-wide.
oleks added this to the CI Scripts Optimization milestone 2026-07-04 19:08:30 +03:00
Collaborator

Checked live Woodpecker agents (agent_list): they advertise custom_labels: {arch, worker} (e.g. arch: arm64, worker: kotkan), not provider. Standardized on the pipeline-level labels: {arch: amd64|arm64} key across the 10 templated repos (matches agent routing), dropping the two other mechanisms:

  • labels: {platform: mermaid} → migrated to arch: amd64 (it was an older alias from before multiple amd64 agents existed).
  • backend_options.kubernetes.nodeSelector: {provider: digitalocean} → dropped (this is a literal k8s node-label selector, a different mechanism than Woodpecker agent labels; no live node actually needs this now that agent-level labels: already routes correctly).

Documented in oleks/ci-scripts README (7a434fa). nodeSelector with kubernetes.io/arch/kubernetes.io/hostname is left alone where it's a genuine k8s-level pin (e.g. sentry-cli-s390x → specific host) — that's a different, legitimate use, not the drift this issue targeted.

Applied fleet-wide across the same 10 commits as #1 (lxml f9e3c55 → markupsafe c31293c, see #1 for the full SHA list). Closing.

Checked live Woodpecker agents (`agent_list`): they advertise `custom_labels: {arch, worker}` (e.g. `arch: arm64, worker: kotkan`), not `provider`. Standardized on the pipeline-level `labels: {arch: amd64|arm64}` key across the 10 templated repos (matches agent routing), dropping the two other mechanisms: - `labels: {platform: mermaid}` → migrated to `arch: amd64` (it was an older alias from before multiple amd64 agents existed). - `backend_options.kubernetes.nodeSelector: {provider: digitalocean}` → dropped (this is a literal k8s node-label selector, a different mechanism than Woodpecker agent labels; no live node actually needs this now that agent-level `labels:` already routes correctly). Documented in oleks/ci-scripts README (7a434fa). `nodeSelector` with `kubernetes.io/arch`/`kubernetes.io/hostname` is left alone where it's a genuine k8s-level pin (e.g. `sentry-cli-s390x` → specific host) — that's a different, legitimate use, not the drift this issue targeted. Applied fleet-wide across the same 10 commits as #1 (lxml f9e3c55 → markupsafe c31293c, see #1 for the full SHA list). Closing.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: oleks/ci-scripts#5