Skip to content

azure: add support for ubuntu podvms - #3239

Merged
mkulke merged 10 commits into
confidential-containers:mainfrom
mkulke:mkulke/add-support-for-ubuntu-podmvm-on-azure
Aug 18, 2026
Merged

mkulke merged 10 commits into
confidential-containers:mainfrom
mkulke:mkulke/add-support-for-ubuntu-podmvm-on-azure

Conversation

@mkulke

@mkulke mkulke commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

The switch to ubuntu images required some changes to support azure. The individual commits describe the changes in more detail, but the gist is:

  • azure-ready tool is introduced, a small tool that implements phone-home functionality required on azure, that is either implemented by cloud-init or afterburn, which we do not use on those images.
  • workflows have been introduced that re-use/mirror existing logic as much as possible
  • image publishing logic has been encapsulated in a Makefile
  • fixes to the azure e2e test suite to allow testing SNP and TDX TEEs in the same cluster
  • fix order of deletion in the orphaned vm cleanup logic of the test provisioner

@mkulke
mkulke force-pushed the mkulke/add-support-for-ubuntu-podmvm-on-azure branch 2 times, most recently from 6ae3c2d to c23cf59 Compare August 9, 2026 17:37
@mkulke mkulke added the test_e2e_libvirt Run Libvirt e2e tests label Aug 9, 2026
@mkulke
mkulke marked this pull request as ready for review August 9, 2026 22:20
@mkulke
mkulke requested a review from a team as a code owner August 9, 2026 22:20
Comment thread src/cloud-api-adaptor/podvm/mkosi.images/system/mkosi.conf Outdated
@mkulke
mkulke force-pushed the mkulke/add-support-for-ubuntu-podmvm-on-azure branch 2 times, most recently from 3206354 to ac1f66c Compare August 12, 2026 04:27

@stevenhorsman stevenhorsman left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

A few suggestions, but this looks okay to me. Is there a test run referenced that I missed?

Comment thread src/cloud-api-adaptor/cmd/azure-ready/main.go Outdated
Comment thread src/cloud-api-adaptor/cmd/azure-ready/main.go Outdated
Comment thread src/cloud-api-adaptor/azure/Makefile Outdated
Comment thread .github/workflows/e2e_run_all.yaml Outdated
@mkulke

mkulke commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator Author

A few suggestions, but this looks okay to me. Is there a test run referenced that I missed?

there are runs on my fork, using a different trigger, though. the full-machinery is tricky to test, so it might require follow-up fixes: https://github.com/mkulke/cloud-api-adaptor/actions/runs/30973384611

@mkulke
mkulke force-pushed the mkulke/add-support-for-ubuntu-podmvm-on-azure branch 2 times, most recently from 9a4b1de to 3fcacff Compare August 17, 2026 13:59
mkulke added 10 commits August 17, 2026 10:00
Since we don't use the "default" meta-package, we have to add the
modules explicitly.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
Ubuntu doesn't have the afterburn utility that is being used on fedora
to report an VM as ready. Building the afterburn tool requires
a rust buildchain. The call-home functionality is pretty trivial, so we
can add a small "azure-ready" cli that is scoped to this task.

We invoke it as a one-off systemd unit behind a condition check that
will only run this unit on Azure.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
The Makefile provides a couple of targets that help with image creation
and publishing for azure.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
We need this because PodVM do not get automatic internet access
(anymore).

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
To avoid resource leakage during e2e test runs we implement the delete
VM function and make sure that it is executed in the right order and
propagate the error to the caller.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
The workflow is modelled after similar workflows for libvirt and AWS.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
Instead of running a costly gh action matrix, we specify the
instance-size in the tests, so they can run on the same AKS cluster.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
Inlined the test into the azure test file, since it wasn't used
elsewhere, also made it use both SNP and TDX.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
The current matching logic was flawed because it ignored the random
strings. It was only exercised by a skipped test, so it went unnoticed,
but we'll need it eventually.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
This change will run azure e2e test in the daily schedule or when
triggered manually. Note: the e2e tests cannot be triggered by a label
on a PR for security reasons, since the test suite requires privileges
on an azure subscription.

Signed-off-by: Magnus Kulke <magnuskulke@microsoft.com>
@mkulke
mkulke force-pushed the mkulke/add-support-for-ubuntu-podmvm-on-azure branch from 3fcacff to 1eaee8f Compare August 17, 2026 14:00

@stevenhorsman stevenhorsman left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks

@stevenhorsman

Copy link
Copy Markdown
Member

A few suggestions, but this looks okay to me. Is there a test run referenced that I missed?

there are runs on my fork, using a different trigger, though. the full-machinery is tricky to test, so it might require follow-up fixes: https://github.com/mkulke/cloud-api-adaptor/actions/runs/30973384611

Understood. We are not close to a release, so I think it's fine to merge and give it a try

@mkulke
mkulke merged commit a4b98f5 into confidential-containers:main Aug 18, 2026
62 of 66 checks passed
@mkulke
mkulke deleted the mkulke/add-support-for-ubuntu-podmvm-on-azure branch August 18, 2026 02:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test_e2e_libvirt Run Libvirt e2e tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants