Repository navigation
chore(container): OPS-9079 update the planner Python bases to 3.13.18 - #17915
Conversation
Move the planner runtime base to nvcr.io/nvidia/distroless/python:3.13-v4.1.10 (Python 3.13.18) and the builder to python:3.13.18-slim. Re-capture the distroless baseline SBOM for both architectures (python@c718fc95) and prune the 3.13-v4.1.9 files. The new runtime bundles pip 26.2.2 in ensurepip, so drop the temporary copy of the builder's ensurepip. The build-time check in the final stage now tests the runtime's own ensurepip. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
WalkthroughThe planner build and runtime Python base references are updated. The runtime Dockerfile now uses its bundled ChangesPlanner Python base
Estimated code review effort: 2 (Simple) | ~10 minutes Pre-merge checks:
|
❌ Dynamo PR CI failed — run 41586106881 (attempt 1) on
|
| Framework | Snapshot |
|---|---|
| SGLang | ❌ 1 |
Failure details
1 job failed: the SGLang Snapshot vCluster setup timed out because 2 of the vcluster-hpm-hostpath-mapper DaemonSet pods never started on their GPU nodes (infrastructure). No tests ran.
❌ SGLang Snapshot Operator Setup: vcluster-hpm-hostpath-mapper DaemonSet rollout timeout (2 pods stuck Pending)
Job: SGLang Snapshot Operator Setup · Failed step: Setup vCluster and operator · Logs: gh run view --job 125757903603 -R ai-dynamo/dynamo --log-failed
ready.go:336: [debug] DaemonSet is not ready: gh-id-41586106881-checkpoint-sglang-dt/vcluster-hpm-hostpath-mapper. 4 out of 5 expected pods are ready
wait.go:87: [debug] Error received when checking status of resource vcluster-hpm-hostpath-mapper. Error: 'client rate limiter Wait returned an error: context deadline exceeded'
Error: context deadline exceeded
##[error]Process completed with exit code 1.
### VCLUSTER OPERATOR DEPLOYMENT FAILED
vcluster-hpm-hostpath-mapper-4r55g 0/1 Pending 0 10m <none> aks-a100a-56471985-vmss000002
vcluster-hpm-hostpath-mapper-tzrjp 0/1 Pending 0 10m <none> aks-a100b-21135548-vmss000001
Events:
Normal Scheduled 10m default-scheduler Successfully assigned .../vcluster-hpm-hostpath-mapper-4r55g to aks-a100a-56471985-vmss000002
The 600s rollout wait for the vcluster-hpm-hostpath-mapper DaemonSet timed out. Two pods were scheduled to GPU nodes aks-a100a-56471985-vmss000002 and aks-a100b-21135548-vmss000001 but stayed Pending with no IP and no events after Scheduled, which suggests those nodes were not starting pods. This is an infrastructure/cluster failure unrelated to the PR's code. Rerunning the failed jobs will likely fix it.
For agents
{"pr": 17915, "run_id": 41586106881, "run_attempt": 1, "head_sha": "d2e8d01702d6a5e923922e271cac68b7796e79e1",
"failures": [{"job": "SGLang Snapshot Operator Setup", "job_id": 125757903603, "failed_step": "Setup vCluster and operator", "signature": "vcluster-hpm-hostpath-mapper DaemonSet rollout timeout: context deadline exceeded (2 pods Pending on GPU nodes)", "tests": [], "log_cmd": "gh run view --job 125757903603 -R ai-dynamo/dynamo --log-failed"}]}Posted automatically by Devin for run 41586106881. Updated on every full-CI run of this PR.
Linear: OPS-9079
Summary
nvcr.io/nvidia/distroless/python:3.13-v4.1.9(Python 3.13.16) to3.13-v4.1.10(Python 3.13.18). Move the builder frompython:3.13.17-slimtopython:3.13.18-slim(container/context.yaml).capture_baseline_sbom.py --prune-superseded. The new files arepython@c718fc95-amd64.cdx.jsonandpython@c718fc95-arm64.cdx.json. Against the old files, only three components change:python(3.13.16 to 3.13.18),tzdataandtzdata-legacy(2026c to 2026e).ensurepipfrom the final stage. The new runtime's ownensurepipbundles pip 26.2.2.ensurepip, so a base with an older bundled pip fails the build.Closes #17188
Validation
Each base, on amd64, with the final stage as it is in this PR (no
ensurepipcopy):ensurepippip3.13-v4.1.9AssertionError3.13-v4.1.10main-dynamo-plannerimage (7e44a1dfea) onto3.13-v4.1.10, the same way the final stage does. As uid 1000,python -m dynamo.planner --help,python -m dynamo.profiler --helpandpython -m dynamo.global_planner --helpexit 0. The venv runs Python 3.13.18.capture_baseline_sbom.py: on both architectures, 50 of 50 baseline layers form a prefix, and the license policy check passes.check_drift.py: all 14 tracked base images are current.container/render.py --target plannerrenders, withBASELINE_SBOM_FILE="python@c718fc95".pre-commit run --all-files: 40 hooks passed.d2e8d01702), on amd64 and arm64:PY_VERSIONis 3.13.18, andensurepipbundlespip-26.2.2-py3-none-any.whl. On amd64,--helpof the planner, profiler and global planner exits 0. Theplannerbuild, compliance and CPU test jobs passed on both architectures.🤖 Generated with Claude Code
Summary by CodeRabbit