feat: onboard ubuntu2604 cvm - #9385
Conversation
Windows Unit Test Results 3 files 14 suites 51s ⏱️ Results for commit d376387. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
🟡 Changes recommended
The new CVM artifact needs an E2E provisioning scenario validating boot and node bootstrap.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds Ubuntu 26.04 CVM support across AgentBaker distro mapping, SIG resolution, tests, and release pipelines.
Changes:
- Registers the Ubuntu 26.04 CVM distro and SIG image.
- Adds unit coverage for classification and API mappings.
- Adds the CVM release build job.
File summaries
| File | Description |
|---|---|
pkg/agent/datamodel/types.go |
Registers the Ubuntu 26.04 CVM distro. |
pkg/agent/datamodel/types_test.go |
Tests Ubuntu 26.04 classification. |
pkg/agent/datamodel/sig_config.go |
Configures SIG mappings and capabilities. |
pkg/agent/datamodel/sig_config_test.go |
Validates the SIG configuration. |
pkg/agent/bakerapi_test.go |
Covers API distro resolution. |
.pipelines/.vsts-vhd-builder-release.yaml |
Adds the CVM release build job. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| useOverrides: ${{ parameters.useOverrides }} | ||
| overrideBranch: ${{ parameters.overrideBranch }} | ||
| artifactName: 2604-minimal-arm64-gen2-containerd | ||
| - job: build2604cvmgen2containerd |
There was a problem hiding this comment.
🟡 Changes recommended
The shell logic must be POSIX-compatible, and the Ubuntu 26.04 package-selection branch needs ShellSpec coverage.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 2
- Review effort level: Balanced
| packagekit_packages=(packagekit software-properties-common) | ||
| if [ "$UBUNTU_RELEASE" != "26.04" ]; then | ||
| packagekit_packages+=(packagekit-tools) | ||
| fi | ||
| retrycmd_if_failure 10 2 60 apt-get purge --auto-remove "${packagekit_packages[@]}" -y || exit 1 |
| if [ "$UBUNTU_RELEASE" != "26.04" ]; then | ||
| packagekit_packages+=(packagekit-tools) | ||
| fi |
There was a problem hiding this comment.
🔵 Needs a closer look
The release-specific PackageKit cleanup lacks required ShellSpec coverage.
Review details
Suppressed comments (1)
vhdbuilder/packer/post-install-dependencies.sh:63
- 🟡 Medium Risk — 🧪 Test Coverage: This new release-specific branch controls a fatal VHD-build step (
|| exit 1), butpost-install-dependencies.shhas no ShellSpec coverage for the 26.04 and pre-26.04 argument sets. Add a ShellSpec underspec/vhdbuilder/packer/that mocksretrycmd_if_failureand verifies thatpackagekit-toolsis omitted only for 26.04; otherwise a future edit can either break 26.04 builds or stop removing the package from older images.
packagekit_packages=(packagekit software-properties-common)
if [ "$UBUNTU_RELEASE" != "26.04" ]; then
packagekit_packages+=(packagekit-tools)
fi
retrycmd_if_failure 10 2 60 apt-get purge --auto-remove "${packagekit_packages[@]}" -y || exit 1
- Files reviewed: 7/7 changed files
- Comments generated: 0 new
- Review effort level: Balanced
| AKSUbuntuContainerd2404Gen2 Distro = "aks-ubuntu-containerd-24.04-gen2" | ||
| AKSUbuntuMinimalContainerd2604Gen2 Distro = "aks-ubuntu-minimal-containerd-26.04-gen2" | ||
| AKSUbuntuMinimalArm64Containerd2604Gen2 Distro = "aks-ubuntu-minimal-arm64-containerd-26.04-gen2" | ||
| AKSUbuntuContainerd2604CVMGen2 Distro = "aks-ubuntu-containerd-26.04-cvm-gen2" |
There was a problem hiding this comment.
shouldn't we be consistent in terms of keeping the minimal as a part of the distro name? same applies for all corresponding variable names
| echo '##vso[task.setvariable variable=OS_VERSION]26.04' | ||
| echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical' | ||
| echo '##vso[task.setvariable variable=IMG_OFFER]ubuntu-26_04-lts' | ||
| echo '##vso[task.setvariable variable=IMG_SKU]server-cvm' |
There was a problem hiding this comment.
ah, I see we're not actually using the minimal SKU - I thought we'd be using the minimal SKU and then install the FDE kernel during the build, as opposed to using a pre-baked CVM image? have we spoken to Ally/Canonical about this further?
AgentBaker Linux gate detectiveRun: https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=180332810 TL;DR: Ubuntu 20.04 FIPS Build VHD failed during Ubuntu Pro attach; the machine token endpoint returned repeated 503s and the final attach path exited with This machine is already attached, so Packer exited 182 and no image version was produced. Likely cause / signature: $signature - Ubuntu Pro/UA dependency or attach-state flake during FIPS Packer provisioning. Confidence: Medium Recommended owner/action: Node Lifecycle/VHD owner should inspect Ubuntu Pro token service availability and make the FIPS attach flow idempotent around transient 503 plus already-attached state. Strongest alternative: PR-caused CVM onboarding regression is possible because the PR is onboarding Ubuntu 26.04 CVM, but the failing job is Ubuntu 20.04 FIPS and the direct signal is external Ubuntu Pro token/attach behavior before CVM-specific validation. Evidence: timeline failed Build VHD for build2004fipsgen2containerd; Build VHD log shows repeated /v1/context/machines/token 503s, This machine is already attached, Packer exit status 182, and no artifacts; Test/Scan cleanup confirms the SIG image version was not produced. Wiki signature: vhd-ubuntu-pro-machine-token-service-unavailable |
What this PR does / why we need it:
This PR onboards CVM 2604 CVM
Which issue(s) this PR fixes:
Need support for Ubuntu 2604 CVM
Fixes #