For installs using prestage data (prestaging or prestage ISO),
an md5 directory-based checksum is now included at the same
directory level as ostree_repo (via related commits).
This commit adds a validation check for any prestaged
/opt/platform-backup/ostree_repo.
The validation check consists of the following:
- If a checksum file exists, use it for validation
- Otherwise, print a warning and fall back to using ostree fsck
- The ostree fsck command takes much longer to complete.
If the validation check fails, the prestage data is removed, and the
remote install falls back to doing a fresh ostree pull from the system
controller.
If the validation fails for a local prestage ISO install,
the installation will fail during boot. This is unlikely;
it would only happen if the USB is somehow corrupt.
Test Plan
PASS: Remote installs
- Boot subcloud using prestage ISO. Perform remote install.
Verify the checksum is validated as part of a successful install
and bootstrap.
- Boot subcloud using prestage ISO. Manually corrupt the
/opt/platform-backup/ostree_repo. Perform remote install.
Verify the following:
1) the checksum validation fails,
2) the corrupt /opt/platform-backup/ostree_repo directory is removed
3) the installation continues via remote ostree pull.
PASS: Local Install
- Boot subcloud using prestage ISO. Perform local install.
Verify the checksum is validated as part of a successful install
and bootstrap.
PASS: Pre-corrupted ISO
- Boot subcloud using a prestage ISO with a pre-corrupted ostree_repo
Verify the boot fails due to the checksum validation failure.
Depends-On: https://review.opendev.org/c/starlingx/utilities/+/867179
Depends-On: https://review.opendev.org/c/starlingx/ansible-playbooks/+/867178
Closes-Bug: 1999306
Signed-off-by: Kyle MacLeod <kyle.macleod@windriver.com>
Change-Id: I1fb69b76de4b7fa5bc49cb4b182297b3bb94ba78