Skip to content

test(infra): replace qemu with docker client in integration tests#2908

Open
p-targowicz wants to merge 1 commit into
masterfrom
chore/QA-1639-replace-qemu-with-docker
Open

test(infra): replace qemu with docker client in integration tests#2908
p-targowicz wants to merge 1 commit into
masterfrom
chore/QA-1639-replace-qemu-with-docker

Conversation

@p-targowicz
Copy link
Copy Markdown
Contributor

Qemu containers boot a full Yocto OS which takes ~45s and eats a lot of memory. Switch the standard, signed-artifact, short-lived token, failover and MTLS setups to use the docker-native client instead. Also update enterprise new_tenant_client to use the docker client, cutting the post-start sleep from 45s to 5s.

For tests that genuinely need A/B rootfs behaviour, add an explicit DockerComposeQemuClientSetup class and a qemu_setup_one_client fixture they can opt into.

Ticket: QA-1639

@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2555452142

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2555802956

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

@p-targowicz p-targowicz force-pushed the chore/QA-1639-replace-qemu-with-docker branch from 64a69e3 to 0630c7e Compare May 27, 2026 10:24
@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2555953446

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

@p-targowicz p-targowicz force-pushed the chore/QA-1639-replace-qemu-with-docker branch from 0630c7e to 436e2d9 Compare May 27, 2026 18:31
@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2557009758

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

@p-targowicz p-targowicz marked this pull request as ready for review May 27, 2026 20:20
@mender-test-bot
Copy link
Copy Markdown
Contributor

@p-targowicz, start a full integration test pipeline with:

  • mentioning me and start integration pipeline

my commands and options

You can prevent me from automatically starting CI pipelines:

  • if your pull request title starts with "[NoCI] ..."

You can trigger a client pipeline on multiple prs with:

  • mentioning me and start client pipeline --pr mender/127 --pr mender-connect/255

You can trigger a client pipeline for a specific Mender Client release with:

  • mentioning me and start client pipeline --release 6.0.x (can be given multiple times)
  • by default, a pipeline is triggered for each supported release the component is a part of

You can trigger GitHub->GitLab branch sync with:

  • mentioning me and sync

You can print PR statistics for a repository with:

  • mentioning me and print fast pr stats (Team stats only)
  • mentioning me and print full pr stats (Detailed report)
  • options: --repo <repo>, --team <name>, --all-repos, --exclude-drafts, --exclude-user <user>
  • mentioning me and print full pr stats --repo mender --all-repos --exclude-drafts

You can cherry pick to a given branch or branches with:

  • mentioning me and:
 cherry-pick to:
 * 1.0.x
 * 2.0.x

@p-targowicz p-targowicz requested review from danielskinstad and removed request for danielskinstad May 27, 2026 20:20
@p-targowicz p-targowicz force-pushed the chore/QA-1639-replace-qemu-with-docker branch 2 times, most recently from 44a61d8 to 40e5552 Compare May 27, 2026 20:51
@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2557235028

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

Migrated test_bootstrapping (test_bootstrap), test_preauth (all OS
tests), and test_grouping (test_basic_groups) to use Docker-native
client fixtures instead of QEMU.

Added infrastructure to make this possible:
- DockerComposeDockerClientSetup now accepts num_clients for scaling
- DockerComposeEnterpriseDockerClientSetup tracks client count so
  repeated new_tenant_docker_client calls scale up incrementally
- New fixtures: standard_setup_two_docker_clients_bootstrapped,
  enterprise_one_docker_client, enterprise_two_docker_clients_bootstrapped
- helpers._check_log_for_message falls back to D-Bus auth check on
  devices without systemd (Docker client uses supervise loop, not systemd)
- Client.__wait_for_keygen in test_preauth tries both /data/mender and
  /var/lib/mender key paths, covering QEMU and Docker layouts

Tests that require A/B rootfs partitions, real reboots, or bootloader
behavior remain on QEMU.

Ticket: QA-1639
Signed-off-by: Patryk Targowicz <patryk.targowicz@northern.tech>
@p-targowicz p-targowicz force-pushed the chore/QA-1639-replace-qemu-with-docker branch from 40e5552 to 23dda4a Compare May 28, 2026 07:42
@p-targowicz
Copy link
Copy Markdown
Contributor Author

@mender-test-bot start integration pipeline

@mender-test-bot
Copy link
Copy Markdown
Contributor

Hello 😺 I created a pipeline for you here: Pipeline-2558132949

Build Configuration Matrix

Key Value
INTEGRATION_REV pull/2908/head
RUN_TESTS_FULL_INTEGRATION true

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.

2 participants