Skip to content

Commit 3767461

Browse files
bfjeldsCopilot
andcommitted
docs: align container COSI filenames with pipeline behavior
The pipeline storm-trident helper prepare-images renames all COSI images to the same output filenames regardless of runtime. Align the manual build instructions to match so Host Configuration image URLs work unchanged for both runtimes. Also: - Add explicit SSH public key injection step (configs ship with empty sshPublicKeys list, which blocks pytest SSH access) - Restructure Host Configuration section with subheadings for clarity Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent aa53dc7 commit 3767461

1 file changed

Lines changed: 47 additions & 18 deletions

File tree

docs/Development/Testing/E2E-Tests.md

Lines changed: 47 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,14 @@ Trident RPMs).
6060

6161
| Image | Output File | Bootloader | Integrity | Configurations |
6262
|-------|------------|-----------|-----------|----------------|
63-
| `trident-container-testimage` | `container.cosi` | grub2 | None | base, encrypted-partition, encrypted-raid, encrypted-swap, extensions, health-checks-install, misc, raid-mirrored, raid-resync-small, raid-small, simple |
64-
| `trident-container-verity-testimage` | `container-verity.cosi` | grub2 | Root dm-verity | root-verity |
65-
| `trident-container-usrverity-testimage` | `container-usrverity.cosi` | systemd-boot | `/usr` dm-verity (UKI) | combined, rerun, usr-verity, usr-verity-raid |
63+
| `trident-container-testimage` | `regular.cosi` | grub2 | None | base, encrypted-partition, encrypted-raid, encrypted-swap, extensions, health-checks-install, misc, raid-mirrored, raid-resync-small, raid-small, simple |
64+
| `trident-container-verity-testimage` | `verity.cosi` | grub2 | Root dm-verity | root-verity |
65+
| `trident-container-usrverity-testimage` | `usrverity.cosi` | systemd-boot | `/usr` dm-verity (UKI) | combined, rerun, usr-verity, usr-verity-raid |
66+
67+
Container images use the **same output filenames** as their host counterparts
68+
(`regular.cosi`, `verity.cosi`, `usrverity.cosi`). This matches the pipeline's
69+
`storm-trident helper prepare-images` behavior and means Host Configuration
70+
image URLs work unchanged for both runtimes.
6671

6772
Container test images do **not** include Trident RPMs — Trident runs from a
6873
Docker container (`trident-container.tar.gz`) loaded at runtime. The images
@@ -207,28 +212,30 @@ mv artifacts/test-image/trident-usrverity-testimage_1.cosi artifacts/test-image/
207212
#### Container Runtime Images
208213

209214
Container images include Docker and a `trident-container.service` but omit
210-
Trident RPMs — Trident runs from the container tarball instead:
215+
Trident RPMs — Trident runs from the container tarball instead. Rename the
216+
output files to match the host image filenames so Host Configuration image
217+
URLs work unchanged:
211218

212219
```bash
213220
mkdir -p artifacts/test-image
214221

215222
# Regular container image
216223
sudo ./tests/images/testimages.py build trident-container-testimage \
217224
--output-dir ./artifacts/test-image --clones 2
218-
mv artifacts/test-image/trident-container-testimage_0.cosi artifacts/test-image/container.cosi
219-
mv artifacts/test-image/trident-container-testimage_1.cosi artifacts/test-image/container_v2.cosi
225+
mv artifacts/test-image/trident-container-testimage_0.cosi artifacts/test-image/regular.cosi
226+
mv artifacts/test-image/trident-container-testimage_1.cosi artifacts/test-image/regular_v2.cosi
220227

221228
# Verity container image (for root-verity configuration)
222229
sudo ./tests/images/testimages.py build trident-container-verity-testimage \
223230
--output-dir ./artifacts/test-image --clones 2
224-
mv artifacts/test-image/trident-container-verity-testimage_0.cosi artifacts/test-image/container-verity.cosi
225-
mv artifacts/test-image/trident-container-verity-testimage_1.cosi artifacts/test-image/container-verity_v2.cosi
231+
mv artifacts/test-image/trident-container-verity-testimage_0.cosi artifacts/test-image/verity.cosi
232+
mv artifacts/test-image/trident-container-verity-testimage_1.cosi artifacts/test-image/verity_v2.cosi
226233

227234
# UKI/usr-verity container image (for usr-verity, combined configurations)
228235
sudo ./tests/images/testimages.py build trident-container-usrverity-testimage \
229236
--output-dir ./artifacts/test-image --clones 2
230-
mv artifacts/test-image/trident-container-usrverity-testimage_0.cosi artifacts/test-image/container-usrverity.cosi
231-
mv artifacts/test-image/trident-container-usrverity-testimage_1.cosi artifacts/test-image/container-usrverity_v2.cosi
237+
mv artifacts/test-image/trident-container-usrverity-testimage_0.cosi artifacts/test-image/usrverity.cosi
238+
mv artifacts/test-image/trident-container-usrverity-testimage_1.cosi artifacts/test-image/usrverity_v2.cosi
232239
```
233240

234241
The images use the Image Customizer container from
@@ -286,8 +293,7 @@ make starter-configuration
286293
```
287294

288295
This copies `tests/e2e_tests/trident_configurations/simple/trident-config.yaml`
289-
to `input/trident.yaml`. Edit it to add your SSH public key under
290-
`os.users[0].sshPublicKeys`.
296+
to `input/trident.yaml`.
291297

292298
Alternatively, copy a configuration directly from any test configuration
293299
directory:
@@ -297,16 +303,39 @@ mkdir -p input
297303
cp tests/e2e_tests/trident_configurations/<config>/trident-config.yaml input/trident.yaml
298304
```
299305

306+
#### Add your SSH public key
307+
308+
The test configurations ship with an empty `sshPublicKeys` list. Add your
309+
public key so pytest can SSH into the VM after install:
310+
311+
```yaml
312+
os:
313+
users:
314+
- name: testing-user
315+
sshPublicKeys:
316+
- <contents of artifacts/id_rsa.pub>
317+
sshMode: key-only
318+
```
319+
320+
:::tip
321+
If you generated keys with `make artifacts/id_rsa`, paste the contents of
322+
`artifacts/id_rsa.pub` into the list.
323+
:::
324+
325+
#### Image URLs
326+
300327
The Host Configuration references image URLs like
301328
`http://NETLAUNCH_HOST_ADDRESS/files/regular.cosi`. Netlaunch automatically
302329
replaces `NETLAUNCH_HOST_ADDRESS` with its own `<host-IP>:<port>` at runtime,
303330
so the VM can reach the files served by netlaunch.
304331

305-
:::note Container runtime Host Configuration
332+
Because both host and container COSI images are renamed to the same output
333+
filenames (see [Build COSI Images](#8-build-cosi-images)), the image URLs in
334+
the Host Configuration work unchanged for both runtimes.
335+
336+
:::note Container runtime — additional configuration
306337
For the **container** runtime, the Host Configuration must include an
307-
`additionalFiles` entry to copy the Trident container tarball onto the VM.
308-
Storm-trident and the pipeline's `edit_host_config.py` add this automatically
309-
when `--runtimeEnv container` is specified:
338+
`additionalFiles` entry to copy the Trident container tarball onto the VM:
310339

311340
```yaml
312341
os:
@@ -315,8 +344,8 @@ os:
315344
destination: /var/lib/trident/trident-container.tar.gz
316345
```
317346

318-
If running manually with the container runtime, add this entry to your Host
319-
Configuration.
347+
Storm-trident and the pipeline's `edit_host_config.py` add this automatically
348+
when `--runtimeEnv container` is specified. It is only needed for manual runs.
320349
:::
321350

322351
### 3. Run netlaunch

0 commit comments

Comments
 (0)