Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion lisa/microsoft/testsuites/core/provisioning.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,6 @@ def verify_deployment_provision_standard_ssd_disk(
requirement=simple_requirement(
environment_status=EnvironmentStatus.Deployed,
disk=DiskEphemeral(),
supported_features=[CvmDisabled()], # TODO: Fix disk deployment for CVM
),
Comment on lines 211 to 214
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

Removing the CvmDisabled() constraint means this provisioning smoke test no longer guarantees coverage of the original failing scenario (CVM + ephemeral OS disk) in automated runs—selection may still choose a non-CVM security profile. Consider adding a dedicated test case (or adjusting this one) that explicitly requires CvmEnabled() along with DiskEphemeral() so the regression is continuously exercised.

Copilot uses AI. Check for mistakes.
Comment on lines 211 to 214
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

This is a bug fix PR but there’s no linked issue/work item in the PR description. Consider linking the related issue for traceability (or add a short note that there isn’t one).

Copilot uses AI. Check for mistakes.
)
def verify_deployment_provision_ephemeral_managed_disk(
Expand Down
3 changes: 3 additions & 0 deletions lisa/sut_orchestrator/azure/arm_template.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ func getLinuxConfiguration(keyPath string, publicKeyData string, disable_passwor

func getEphemeralOSImage(node object) object => {
name: '${node.name}-osDisk'
managedDisk: {
securityProfile: (empty(node.security_profile) || (node.security_profile.security_type != 'ConfidentialVM')) ? null : getSecurityProfileForOSDisk(node)
}
Comment on lines +114 to +116
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

getEphemeralOSImage now always emits a managedDisk object, and for non-ConfidentialVM nodes it can end up as an empty object (because securityProfile evaluates to null). To avoid unexpected payload shape changes (and potential ARM schema/Compute API validation issues), consider making the entire managedDisk property conditional so it is omitted unless a ConfidentialVM security profile is required.

Suggested change
managedDisk: {
securityProfile: (empty(node.security_profile) || (node.security_profile.security_type != 'ConfidentialVM')) ? null : getSecurityProfileForOSDisk(node)
}
...((empty(node.security_profile) || (node.security_profile.security_type != 'ConfidentialVM')) ? {} : {
managedDisk: {
securityProfile: getSecurityProfileForOSDisk(node)
}
})

Copilot uses AI. Check for mistakes.
diffDiskSettings: {
option: 'local'
placement: node.ephemeral_disk_placement_type
Expand Down
3 changes: 3 additions & 0 deletions lisa/sut_orchestrator/azure/autogen_arm_template.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@
"type": "object",
"value": {
"name": "[format('{0}-osDisk', parameters('node').name)]",
"managedDisk": {
"securityProfile": "[if(or(empty(parameters('node').security_profile), not(equals(parameters('node').security_profile.security_type, 'ConfidentialVM'))), null(), __bicep.getSecurityProfileForOSDisk(parameters('node')))]"
},
"diffDiskSettings": {
"option": "local",
"placement": "[parameters('node').ephemeral_disk_placement_type]"
Expand Down
Loading