Skip to content

test(acl): add UsePreviouslyBuiltVHD for AB update test#8603

Draft
bfjelds wants to merge 9 commits into
user/bfjelds/acl-ab-update-e2efrom
user/bfjelds/mjolnir/acl-lkg-vhd
Draft

test(acl): add UsePreviouslyBuiltVHD for AB update test#8603
bfjelds wants to merge 9 commits into
user/bfjelds/acl-ab-update-e2efrom
user/bfjelds/mjolnir/acl-lkg-vhd

Conversation

@bfjelds
Copy link
Copy Markdown
Member

@bfjelds bfjelds commented May 28, 2026

Add UsePreviouslyBuiltVHD flag to scenario Config that resolves the VHD to the most recent prior main-branch build in the build gallery, excluding the current pipeline run. This avoids the UUID collision where the current build's VHD and COSI share filesystem UUIDs.

New PreviouslyBuiltSIGVersion function on AzureClient:

  • Lists all versions in the build gallery for the image definition
  • Filters to branch=refs/heads/main, provisioning Succeeded/Updating
  • Excludes current build by matching Config.BuildID against buildId tag
  • Sorts by parsed 'now' tag (unix epoch) for deterministic ordering
  • Supports PREVIOUSLY_BUILT_VHD_BUILD_ID env var override for debugging

Test_ACL_ABUpdate now sets UsePreviouslyBuiltVHD: true to boot from a prior build before applying the current pipeline's COSI.

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

@bfjelds bfjelds changed the title e2e: add UsePreviouslyBuiltVHD for AB update test test(acl): add UsePreviouslyBuiltVHD for AB update test May 28, 2026
bfjelds and others added 8 commits May 29, 2026 14:53
Add RunABUpdateTests parameter to e2e-template.yaml that flows through
e2e_run.sh as RUN_AB_UPDATE_TESTS. When enabled, adds abupdate=true to
TAGS_TO_RUN; when disabled (default), adds abupdate=true to TAGS_TO_SKIP
so AB update tests never run in standard e2e pipelines.

Changes:
- e2e-template.yaml: new RunABUpdateTests boolean parameter
- e2e_run.sh: RUN_AB_UPDATE_TESTS handling with boolean normalization
- types.go: ABUpdate field on Tags struct
- scenario_test.go: Test_ACL_ABUpdate scenario (partition layout + Trident)
- validators.go: ValidateACLABPartitionLayout (dm-verity + dual rootfs)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Multi-step test that validates the complete Trident A/B update flow:
1. Verify initial A/B partition layout
2. Write host config with COSI URL (passed via pipeline parameter)
3. Stage update via trident update --allowed-operations stage
4. Finalize update (triggers reboot), handle SSH disconnect gracefully
5. Wait for node reboot (boot_id change detection), re-establish SSH
6. Validate trident status shows VolumeB and Provisioned

Pipeline plumbing:
- Added CosiUrl parameter to e2e-template.yaml
- Pass COSI_URL env var through e2e_run.sh
- Test skips when COSI_URL is not set

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ACL A/B layout uses usr partition labels, not rootfs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Inline partition layout, dm-verity, and service checks directly into
ValidateACLABUpdate. Remove standalone Test_ACL_ABUpdatePrepared and
ValidateACLABPartitionLayout.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add resolve_cosi_url job to e2e stage that downloads the
cosi-publishing-info artifact from the ACL build, extracts
the cosi_url field, and passes it to the e2e template via
job output variables.

- Add dependsOn parameter to e2e-template.yaml for cross-job deps
- Use runtime expression to resolve COSI_URL from dependency output
- Fall back to CosiUrl parameter for manual/override scenarios
- Handle missing artifact gracefully (ACL build may not have run)
- Validate cosi_url field to avoid passing literal 'null'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Wrap resolve_cosi_url job and RunABUpdateTests/dependsOn in
compile-time conditionals so non-ACL pipeline runs are completely
unaffected — no extra jobs, no artifact downloads, no test tag changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bfjelds bfjelds force-pushed the user/bfjelds/acl-ab-update-e2e branch from 55c83b3 to 96c03a8 Compare May 29, 2026 21:54
Add UsePreviouslyBuiltVHD flag to scenario Config that resolves the VHD
to the most recent prior main-branch build in the build gallery, excluding
the current pipeline run. This avoids the UUID collision where the current
build's VHD and COSI share filesystem UUIDs.

New PreviouslyBuiltSIGVersion function on AzureClient:
- Lists all versions in the build gallery for the image definition
- Filters to branch=refs/heads/main, provisioning Succeeded/Updating
- Excludes current build by matching Config.BuildID against buildId tag
- Sorts by parsed 'now' tag (unix epoch) for deterministic ordering
- Supports PREVIOUSLY_BUILT_VHD_BUILD_ID env var override for debugging

Test_ACL_ABUpdate now sets UsePreviouslyBuiltVHD: true to boot from a
prior build before applying the current pipeline's COSI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bfjelds bfjelds force-pushed the user/bfjelds/mjolnir/acl-lkg-vhd branch from bea113e to 0b35736 Compare May 29, 2026 21:55
@github-actions
Copy link
Copy Markdown
Contributor

Changes cached containers or packages on windows VHDs

Please get a Windows SIG member to approve.

The following dif file shows any additions or deletions from what will be cached on windows VHDs organised by VHD type.

  • Additions are new things cached.
  • Deletions are things no longer cached.
diff --git a/vhd_files/2022-containerd-gen2.txt b/vhd_files/2022-containerd-gen2.txt
index dddb312..ce25fa5 100644
--- a/vhd_files/2022-containerd-gen2.txt
+++ b/vhd_files/2022-containerd-gen2.txt
@@ -115 +114,0 @@ mcr.microsoft.com/oss/v2/azure/secrets-store/provider-azure:v1.7.2
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.33.10-windows-hp
@@ -118,2 +116,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.3-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.4-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.33.10-windows-hp
@@ -122 +118,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.5-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.6-windows-hp
@@ -124 +119,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.2-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.3-windows-hp
diff --git a/vhd_files/2022-containerd.txt b/vhd_files/2022-containerd.txt
index df70a07..620eb5a 100644
--- a/vhd_files/2022-containerd.txt
+++ b/vhd_files/2022-containerd.txt
@@ -115 +114,0 @@ mcr.microsoft.com/oss/v2/azure/secrets-store/provider-azure:v1.7.2
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.33.10-windows-hp
@@ -118,2 +116,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.3-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.4-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.33.10-windows-hp
@@ -122 +118,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.5-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.6-windows-hp
@@ -124 +119,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.2-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.3-windows-hp
diff --git a/vhd_files/2025-gen2.txt b/vhd_files/2025-gen2.txt
index 81e5913..d5aea5a 100644
--- a/vhd_files/2025-gen2.txt
+++ b/vhd_files/2025-gen2.txt
@@ -15 +15 @@ c:\akse-cache\csi-proxy\: https://packages.aks.azure.com/csi-proxy/v1.1.2-hotfix
-c:\akse-cache\wcn\: mcr.microsoft.com/wcn/package:1.7.1-cpu-arch
+c:\akse-cache\wcn\: mcr.microsoft.com/wcn/package:1.6.0-cpu-arch
@@ -45 +44,0 @@ mcr.microsoft.com/oss/v2/azure/secrets-store/provider-azure:v1.7.2
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.33.10-windows-hp
@@ -48,2 +46,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.3-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.4-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.33.10-windows-hp
@@ -52 +48,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.5-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.6-windows-hp
@@ -54 +49,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.2-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.3-windows-hp
diff --git a/vhd_files/2025.txt b/vhd_files/2025.txt
index db02527..7012908 100644
--- a/vhd_files/2025.txt
+++ b/vhd_files/2025.txt
@@ -15 +15 @@ c:\akse-cache\csi-proxy\: https://packages.aks.azure.com/csi-proxy/v1.1.2-hotfix
-c:\akse-cache\wcn\: mcr.microsoft.com/wcn/package:1.7.1-cpu-arch
+c:\akse-cache\wcn\: mcr.microsoft.com/wcn/package:1.6.0-cpu-arch
@@ -45 +44,0 @@ mcr.microsoft.com/oss/v2/azure/secrets-store/provider-azure:v1.7.2
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.33.10-windows-hp
@@ -48,2 +46,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.3-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azuredisk-csi:v1.34.4-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.33.10-windows-hp
@@ -52 +48,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.5-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.6-windows-hp
@@ -54 +49,0 @@ mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.2-windows-hp
-mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.3-windows-hp

@bfjelds bfjelds force-pushed the user/bfjelds/acl-ab-update-e2e branch from 96c03a8 to 07c9c49 Compare June 2, 2026 22:19
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.

1 participant