Skip to content

feat: add ACL CVM support - #9283

Open
mayankfz wants to merge 8 commits into
mainfrom
mayansingh/acl_cvm_support
Open

feat: add ACL CVM support#9283
mayankfz wants to merge 8 commits into
mainfrom
mayansingh/acl_cvm_support

Conversation

@mayankfz

@mayankfz mayankfz commented Aug 23, 2026

Copy link
Copy Markdown

What this PR does / why we need it:
Add ACL CVM support

Which issue(s) this PR fixes:

Fixes https://dev.azure.com/mariner-org/ACL/_workitems/edit/23680

#9340, adds the ACL CVM distro, availability lists, SIG mapping, and API tests. The ACL CVM release build remains opt-in until that dependency lands.

@mayankfz mayankfz changed the title Add ACL CVM support feat: Add ACL CVM support Aug 23, 2026
@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Windows Unit Test Results

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

Results for commit 3591a88.

♻️ This comment has been updated with latest results.

Copilot AI review requested due to automatic review settings September 3, 2026 13:40

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 CVM build and deployment settings conflict with the specialized SIG contract, and VM user data exposes the bootstrap token through IMDS.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (1)

vhdbuilder/packer/build-acl-cvm.sh:7

  • 🔴 High Risk — Architecture: This passes the unchanged ACL template to Packer, but that template has none of the CVM builder settings (security_type, secure boot, vTPM, guest-state encryption) and leaves the gallery destination generalized. Meanwhile produce-packer-settings-functions.sh:523-535 creates cvm definitions as Specialized, and dependent PR #9340 maps ACL CVM to aclgen2CVMSpecialized. The build therefore cannot publish the advertised specialized confidential image consistently. Transform the ACL builder/destination with the same CVM settings as the existing CVM templates (while preserving ACL provisioners), or use a dedicated ACL CVM template.
packer build -timestamp-ui -var-file=vhdbuilder/packer/settings.json "$base_template"
  • Files reviewed: 12/12 changed files
  • Comments generated: 5
  • Review effort level: Balanced

Comment thread .pipelines/.vsts-vhd-builder-release.yaml
Comment thread .pipelines/.vsts-vhd-builder.yaml
Comment thread e2e/vmss.go Outdated
Comment thread vhdbuilder/packer/test/run-test.sh
Comment thread vhdbuilder/packer/vhd-scanning.sh
Copilot AI review requested due to automatic review settings September 7, 2026 09:43

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 build, test, and scanning paths conflict with the specialized ACL CVM SIG contract and can fail publication or VM creation.

Review details

Suppressed comments (3)

vhdbuilder/packer/build-acl-cvm.sh:7

  • 🔴 High Risk — Architecture: With FEATURE_FLAGS=cvm, ensure_sig_vhd_exists creates aclgen2CVMSpecialized as --os-state Specialized, but this script passes the ordinary ACL template unchanged; its gallery destination omits specialized, so Packer treats the output as generalized. Publication is therefore inconsistent with the destination definition and can fail before testing. Restore the ACL-specific transformation (including shared_image_gallery_destination.specialized: true and the required CVM builder/destination settings), or change the SIG definition and downstream mapping to generalized consistently.
base_template=${ACL_PACKER_TEMPLATE:-vhdbuilder/packer/vhd-image-builder-acl.json}

echo "Using pre-CPS ACL image settings derived from $base_template"
packer build -timestamp-ui -var-file=vhdbuilder/packer/settings.json "$base_template"

vhdbuilder/packer/test/run-test.sh:88

  • 🔴 High Risk — Script Logic: ACL CVM currently resolves to the specialized SIG definition created by produce-packer-settings-functions.sh, so omitting --specialized true makes az vm create use generalized-image semantics and conflicts with that definition. This prevents the ACL CVM content-test VM from being created; keep the specialized flag for ACL as well.
  if [ "${OS_SKU:-}" != "AzureContainerLinux" ]; then
    TARGET_COMMAND_STRING+=" --specialized true"
  fi

vhdbuilder/packer/vhd-scanning.sh:100

  • 🔴 High Risk — Script Logic: The ACL CVM image definition is generated with specialized OS state, but this branch removes --specialized true only for ACL. The scan VM is consequently created with generalized-image semantics and will fail deployment against aclgen2CVMSpecialized; retain the flag for every CVM image.
    if [ "${OS_SKU:-}" != "AzureContainerLinux" ]; then
        VM_OPTIONS+=" --specialized true"
    fi
  • Files reviewed: 10/10 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@aks-node-assistant

Copy link
Copy Markdown
Contributor

AgentBaker Linux gate detective

Run: https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=179999642
Failed job/stage/task: e2e / Run AgentBaker E2E / Run AgentBaker E2E

TL;DR: Four MANA VM-series coverage scenarios failed after VMSS creation because the bastion tunnel/SSH handshake timed out with context deadline exceeded.

Likely cause/signature: $sig - MANA E2E VMSS provisioning or bastion SSH infrastructure flake, not a VHD build failure.
Confidence: Medium. Timeline shows the E2E task failed; the task log shows AzureLinuxV3, Ubuntu2604Minimal, Ubuntu2204, and Ubuntu2404 MANA scenarios all failing after about 1050s with bastion tunnel context deadline.
Recommended owner/action: E2E/Node Lifecycle should inspect MANA VMSS provisioning and bastion SSH readiness for westus3 shared clusters.
Strongest alternative: PR-caused ACL CVM changes, but the failures span non-CVM MANA scenarios and point at the test infra/SSH path.

Evidence: failed task log Run AgentBaker E2E log 662; timeline failed stage/job/task; build metadata PR source
efs/pull/9283/merge.
Wiki signature: e2e-mana-vmss-bastion-tunnel-context-deadline

Comment thread vhdbuilder/packer/build-acl-cvm.sh
Comment thread .pipelines/.vsts-vhd-builder-release.yaml
Signed-off-by: Mayan Singh <mayankfz@gmail.com>
Derive the CVM build from the standard ACL Packer template and publish directly to a generalized CVM-supported gallery definition.

Signed-off-by: Mayan Singh <mayankfz@gmail.com>
Copilot AI review requested due to automatic review settings September 10, 2026 12:47
@mayankfz
mayankfz force-pushed the mayansingh/acl_cvm_support branch from 600680a to 70a84ca Compare September 10, 2026 12:47

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 generated ACL CVM image name conflicts with the definition referenced by dependent PR #9340.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 13/13 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread vhdbuilder/packer/produce-packer-settings-functions.sh Outdated
Copilot AI review requested due to automatic review settings September 10, 2026 13:03
@mayankfz
mayankfz force-pushed the mayansingh/acl_cvm_support branch from 70a84ca to 4af09ca Compare September 10, 2026 13:03

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 generated aclgen2CVM definition does not match the aclgen2CVMSpecialized definition referenced by dependency PR #9340.

Review details

Suppressed comments (1)

vhdbuilder/packer/produce-packer-settings-functions.sh:55

  • 🔴 High Risk — Architecture: This now publishes the ACL CVM definition as aclgen2CVM, but the linked dependency PR #9340 currently maps AKSACLCVMGen2 to aclgen2CVMSpecialized. If both changes merge as-is, AgentBaker will request a definition that this release pipeline never publishes, so ACL CVM node provisioning cannot resolve its image. Update #9340 and its assertions to use the generalized aclgen2CVM name, or keep the suffix here, before integrating the two PRs.
			if [ "${OS_SKU,,}" != "azurecontainerlinux" ]; then
				SIG_IMAGE_NAME+="Specialized"
  • Files reviewed: 13/13 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings September 10, 2026 13:11
@mayankfz
mayankfz force-pushed the mayansingh/acl_cvm_support branch from 4af09ca to 3591a88 Compare September 10, 2026 13:11

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 ACL test VM currently receives a literal custom-data filepath instead of the Ignition JSON contents.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 13/13 changed files
  • Comments generated: 1
  • Review effort level: Balanced


TEST_VM_USER_DATA_ARGS=()
if [ "${OS_TYPE}" = "Linux" ] && [ "${OS_SKU:-}" = "AzureContainerLinux" ]; then
TEST_VM_USER_DATA_ARGS=(--user-data "./vhdbuilder/packer/acl-customdata.json")
@aks-node-assistant

Copy link
Copy Markdown
Contributor

AgentBaker Linux gate detective

Run: https://msazure.visualstudio.com/CloudNativeCompute/_build/results?buildId=180509996
Failed job/stage/task: e2e / Run AgentBaker E2E / Run AgentBaker E2E

Detective summary

Two E2E scenarios failed in the same job, with E2E_FAILED_TESTS_RETRY_COUNT=0: LocalDNSHostsPlugin/Ubuntu2404 and Ubuntu2204Gen2_ImagePullIdentityBinding_NetworkIsolated. Timeline, failed test records, task log, build metadata, and PR metadata corroborate the failures.

Likely cause / signature

  • �2e-localdns-ubuntu2404-bing-dns-timeout: node came up and localdns exporter checks passed, but dig bing.com +timeout=1 +tries=1 timed out against 169.254.10.10#53 and exited 9.
  • �2e-imagepullidentitybinding-bastion-ssh-timeout: VMSS creation reached bastion SSH setup, then all 5 SSH handshake attempts timed out/closed while establishing the tunnel.

Confidence

Medium: both signatures point to shared environment/network path flakiness rather than this PR's ACL CVM changes. The PR does touch VHD build/E2E plumbing, but the failing scenarios are Ubuntu/localdns and image-pull identity network-isolated paths, not ACL CVM build validation.

Recommended owner/action

Node Lifecycle/E2E owners: inspect westus3 shared E2E DNS/bastion health and retry history before blocking on PR code. PR author should only investigate if the same two signatures reproduce after the environment is healthy.

Strongest alternative

PR-change-caused E2E plumbing regression is the strongest alternative because this PR edits packer/E2E scripts; less likely because independent scenarios passed around these failures and the observed failures are DNS/bastion connectivity symptoms.

Evidence links

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