Files
Drew Newberry 1cbfc0d510 test(e2e): add reusable QEMU infrastructure for E2E tests (#2471)
* test(vm): add composable QEMU test guests

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* docs(vm): describe test VM directory structure

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* refactor(vm): replace shell catalog functions

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* test(vm): add Fedora release guest support

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* test(vm): enable rootless Podman socket

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* feat(test-guest): add OCI-backed image caching

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* perf(test-guest): accelerate cached guest startup

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): address review feedback

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): verify OCI cache provenance

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): harden cached guest reuse

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): refresh runtime setup state

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* feat(test-guest): support E2E runner inputs

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): harden runner and OCI reuse

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* feat(test-guest): prepare Podman E2E artifacts

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): address review findings

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* revert(test-guest): remove recent Podman artifact changes

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(test-guest): canonicalize scp source paths

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* refactor(test-guest): provision artifacts with Ansible

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* feat(test-guest): populate missing caches on startup

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

---------

Signed-off-by: Drew Newberry <anewberry@nvidia.com>
2026-07-29 23:41:29 +00:00

74 lines
2.0 KiB
YAML

---
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# PROTOTYPE: Configure Docker in a disposable test guest.
- name: Configure Docker
hosts: test_vm
become: true
gather_facts: true
tasks:
- name: Validate Docker support
ansible.builtin.assert:
that:
- ansible_facts.distribution in ["Ubuntu", "Rocky"]
fail_msg: >-
Docker is supported on Ubuntu and Rocky in this prototype,
not {{ ansible_facts.distribution }}.
- name: Refresh Ubuntu package metadata
ansible.builtin.apt:
update_cache: true
when: ansible_facts.distribution == "Ubuntu"
- name: Install Docker on Ubuntu
ansible.builtin.apt:
name: docker.io
state: present
install_recommends: false
when: ansible_facts.distribution == "Ubuntu"
- name: Configure the Docker CE repository on Rocky
ansible.builtin.get_url:
url: https://download.docker.com/linux/centos/docker-ce.repo
dest: /etc/yum.repos.d/docker-ce.repo
mode: "0644"
when: ansible_facts.distribution == "Rocky"
- name: Install Docker on Rocky
ansible.builtin.dnf:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: present
when: ansible_facts.distribution == "Rocky"
- name: Enable Docker
ansible.builtin.service:
name: docker
enabled: true
state: started
- name: Add the test user to the Docker group
ansible.builtin.user:
name: openshell
groups:
- docker
append: true
register: docker_group_membership
- name: Refresh the test user's group membership
ansible.builtin.meta: reset_connection
when: docker_group_membership.changed
- name: Verify Docker
ansible.builtin.command:
cmd: docker info
become: false
changed_when: false