Skip to content

feat: onboard ubuntu2604 cvm - #9385

Open
Zachary (zachary-bailey) wants to merge 4 commits into
mainfrom
zb/onboard2604CVM
Open

feat: onboard ubuntu2604 cvm#9385
Zachary (zachary-bailey) wants to merge 4 commits into
mainfrom
zb/onboard2604CVM

Conversation

@zachary-bailey

Copy link
Copy Markdown
Contributor

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 #

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Windows Unit Test Results

  3 files   14 suites   51s ⏱️
415 tests 415 ✅ 0 💤 0 ❌
418 runs  418 ✅ 0 💤 0 ❌

Results for commit d376387.

♻️ This comment has been updated with latest results.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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
Copilot AI review requested due to automatic review settings September 3, 2026 21:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The image-building and release-pipeline changes require final human review.

Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings September 8, 2026 20:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment on lines +59 to +63
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
Comment on lines +60 to +62
if [ "$UBUNTU_RELEASE" != "26.04" ]; then
packagekit_packages+=(packagekit-tools)
fi
Copilot AI review requested due to automatic review settings September 9, 2026 15:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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), but post-install-dependencies.sh has no ShellSpec coverage for the 26.04 and pre-26.04 argument sets. Add a ShellSpec under spec/vhdbuilder/packer/ that mocks retrycmd_if_failure and verifies that packagekit-tools is 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"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@aks-node-assistant

Copy link
Copy Markdown
Contributor

AgentBaker Linux gate detective

Run: https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=180332810
Failed job/stage/task: Build VHD / build2004fipsgen2containerd / Ubuntu Pro attach

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants