fix: align containerd v2 configs with 2.3 schema#8948
Open
djsly wants to merge 2 commits into
Open
Conversation
AB#38808465 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 23f6b1fb-60fd-42c0-be94-af3644f84056
djsly
requested review from
AbelHu,
Devinwong,
SriHarsha001,
awesomenix,
calvin197,
cameronmeissner,
ganeshkumarashok,
karenychen,
lilypan26,
mxj220,
pdamianov-dev,
phealy,
r2k1,
runzhen,
sulixu,
surajssd,
timmy-wright,
titilambert,
xuexu6666 and
zachary-bailey
as code owners
July 15, 2026 02:24
Contributor
There was a problem hiding this comment.
Pull request overview
Aligns AgentBaker-managed containerd v2 (Ubuntu 24.04) configuration with the containerd 2.3 config schema v4 so NVIDIA GPU Operator–generated v4 drop-ins are accepted, and updates runtime/plugin namespaces accordingly.
Changes:
- Updated Ubuntu 24.04 containerd v2 root config templates in
pkg/agentto declareversion = 4. - Migrated Kata runtime blocks in the v2 templates to the split
io.containerd.cri.v1.runtimeplugin namespace. - Updated the Ubuntu 24.04 GB static NVIDIA containerd config to schema v4 and the split
images/runtimeplugin namespaces.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| pkg/agent/baker.go | Updates Ubuntu 24.04 containerd v2 template schema to v4 and moves Kata runtime blocks to the split CRI runtime plugin namespace. |
| parts/linux/cloud-init/artifacts/ubuntu/gb/containerd-nvidia.toml | Updates the Ubuntu 24.04 GB NVIDIA containerd config to schema v4 and split CRI plugin namespaces. |
Comment on lines
7
to
9
| [plugins."io.containerd.cri.v1.images"] | ||
| sandbox = "mcr.microsoft.com/oss/kubernetes/pause:3.6" | ||
|
|
AB#38808465 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 23f6b1fb-60fd-42c0-be94-af3644f84056
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
aks-node-controller/parser/templates/containerd.toml.gtpl:27
- When rendering config schema v4 (containerd >= 2.3),
snapshotter/disable_snapshot_annotationsshould be configured under the images plugin (io.containerd.cri.v1.images) rather than under the runtime plugin’s.containerdsection. Keeping these fields under[plugins."{{$runtimePlugin}}".containerd]means overlaybd artifact streaming (and potentially Kata’s snapshot-annotation behavior) may be ignored on v4 configs.
disable_snapshot_annotations = false
{{- end}}
{{- if .GetEnableArtifactStreaming }}
snapshotter = "overlaybd"
disable_snapshot_annotations = false
aks-node-controller/parser/templates/containerd_no_GPU.toml.gtpl:23
- For config schema v4 (containerd >= 2.3),
snapshotter/disable_snapshot_annotationsneed to be set on the images plugin (io.containerd.cri.v1.images), not under the runtime plugin’s.containerdtable. As-is, the v4 path will still emit these fields under[plugins."{{$runtimePlugin}}".containerd], which containerd v2.3’s split plugins are unlikely to consume.
{{- if .GetIsKata }}
disable_snapshot_annotations = false
{{- end}}
{{- if .GetEnableArtifactStreaming }}
snapshotter = "overlaybd"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix the containerd 2.3.x / NVIDIA GPU Operator config-version mismatch by making AgentBaker-owned Ubuntu 24.04/containerd 2.3 root configs use containerd config schema v4. This prevents NVIDIA-generated v4 drop-ins from being rejected under a lower-version root config.
Changes
version = 4and use the split containerd v2 CRI images/runtime plugin namespaces.containerd_version >= 2.3.0; older or missing versions continue to render schema v2.Testing
GOPROXY=https://proxy.golang.org,direct go test ./pkg/agent/...cd aks-node-controller && GOPROXY=https://proxy.golang.org,direct go test ./parsercd aks-node-controller && GOPROXY=https://proxy.golang.org,direct go test ./...GOPROXY=https://proxy.golang.org,direct make generate(generated agent testdata matched; command stopped duringvalidate-shellon pre-existing SC3014 warnings in unrelated files)Related
🤖 Generated by GitHub Copilot