fix(ci): use k=v format for node selector overrides

GitLab Runner 18.9 expects KUBERNETES_NODE_SELECTOR_* values in
"key=value" format. Changed from bare values to "pool=services"
and "pool=ci-training".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-27 20:13:29 +01:00
parent 6462e29ed3
commit 312d113c47

View File

@@ -5,7 +5,7 @@
# Note: .gitlab-ci.yml itself is NOT in changes: filters — CI-only edits skip build
#
# Node pool routing: Runner default nodeSelector pool=ci-compile.
# Override via KUBERNETES_NODE_SELECTOR_pool: <pool-name>
# Override via KUBERNETES_NODE_SELECTOR_pool: "pool=<pool-name>" (k=v format required)
# Pools: ci-compile (L4 GPU), ci-training (L40S GPU), services (DEV1-M), gitlab (GP1-XS)
# Ensure pipeline is always created — individual job rules handle filtering.
@@ -462,8 +462,8 @@ build-training:
variables:
KUBERNETES_RUNTIME_CLASS_NAME: nvidia
# Route to L40S pool (48GB VRAM for large supervised models)
# Label: pool=ci-training (simple label, overrides runner default pool=ci-compile)
KUBERNETES_NODE_SELECTOR_pool: ci-training
# Overrides runner default pool=ci-compile
KUBERNETES_NODE_SELECTOR_pool: "pool=ci-training"
# Supervised is GPU-bound — minimal CPU. Low request allows 3-4 concurrent jobs.
KUBERNETES_CPU_REQUEST: "1000m"
KUBERNETES_CPU_LIMIT: "2000m"
@@ -1252,8 +1252,8 @@ deploy:
- kapsule
variables:
# Deploy only needs kubectl — route to services pool, not GPU nodes
# Label: pool=services (overrides runner default pool=ci-compile)
KUBERNETES_NODE_SELECTOR_pool: services
# Overrides runner default pool=ci-compile
KUBERNETES_NODE_SELECTOR_pool: "pool=services"
KUBERNETES_CPU_REQUEST: "200m"
KUBERNETES_CPU_LIMIT: "500m"
KUBERNETES_MEMORY_REQUEST: "256Mi"