fix(ci): move nvidia RuntimeClass from runner default to per-job override
L4 ci-compile node was failing with 'no runtime for nvidia' because fresh nodes take time to install nvidia drivers. Kaniko builds don't need GPU at all. Now only Rust compile/test and training jobs request nvidia RuntimeClass via KUBERNETES_RUNTIME_CLASS_NAME CI variable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -160,6 +160,8 @@ build-infra-runner:
|
||||
KUBERNETES_CPU_LIMIT: "7800m"
|
||||
KUBERNETES_MEMORY_REQUEST: "16Gi"
|
||||
KUBERNETES_MEMORY_LIMIT: "80Gi"
|
||||
# GPU runtime for CUDA compilation — Kaniko jobs don't set this
|
||||
KUBERNETES_RUNTIME_CLASS_NAME: "nvidia"
|
||||
before_script:
|
||||
# Mold linker fallback — .cargo/config.toml uses -fuse-ld=mold via clang.
|
||||
# clang's -fuse-ld=mold searches for "ld.mold" (not "mold") in its linker paths.
|
||||
@@ -444,6 +446,7 @@ build-training:
|
||||
KUBERNETES_CPU_LIMIT: "3500m"
|
||||
KUBERNETES_MEMORY_REQUEST: "16Gi"
|
||||
KUBERNETES_MEMORY_LIMIT: "40Gi"
|
||||
KUBERNETES_RUNTIME_CLASS_NAME: "nvidia"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
|
||||
when: manual
|
||||
|
||||
@@ -43,8 +43,10 @@ runners:
|
||||
helper_memory_request = "128Mi"
|
||||
helper_memory_limit = "512Mi"
|
||||
image_pull_secrets = ["scw-registry", "gitlab-registry"]
|
||||
# Use nvidia RuntimeClass — injects GPU drivers + /dev/nvidia* via nvidia-container-runtime
|
||||
runtime_class_name = "nvidia"
|
||||
# GPU jobs set KUBERNETES_RUNTIME_CLASS_NAME=nvidia via CI variables
|
||||
# Default empty — Kaniko builds don't need GPU runtime
|
||||
runtime_class_name = ""
|
||||
runtime_class_name_overwrite_allowed = ".*"
|
||||
# Sub-tables must come AFTER all scalar values (TOML rule)
|
||||
[runners.kubernetes.node_selector]
|
||||
"k8s.scaleway.com/pool-name" = "ci-compile"
|
||||
|
||||
Reference in New Issue
Block a user