RHEL-Edge help documentation
RHEL for Edge test from QE is more like an integration test. The test flow aligns with the customer scenario. The whole test includes three parts:
-
RHEL for Edge image building with osbuild-composer
- Build RHEL 8 and RHEL 9 x86_64 images at OpenStack VM
- Build CentOS Stream 8, CentOS Stream 9 and Fedora x86_64 images at Google Cloud VM
- Build ARM images on bare metal ARM server or ARM VM at beaker
-
RHEL for Edge image installation
edge-commit/iot-commit
: Setup HTTP server to serve as ostree repo, and HTTP boot to install with kickstartedge-container/iot-container
: Setup prod ostree repo,edge-container/iot-container
as stage repo, and install with kickstart from prod ostree repoedge-installer/iot-installer
: Install fromedge-installer/iot-installer
ISOedge-raw-image/iot-raw-image
: Boot from raw image with KVMedge-simplified-installer
: Install fromedge-simplified-installer
ISOminimal-raw
: Boot from RPM based raw image with KVMedge-ami
: Image for AWS ec2 instance
-
RHEL for Edge system upgrade
- Upgrade with the same OSTree ref
- Rebase to a new OSTree ref
- Upgrade from RHEL 8 to RHEL 9 or from CentOS Stream 8 to CentOS Stream 9
-
Checkings after installation/upgrade.
- Check installed ostree commit
- Check mount point
- Check
greenboot
services - Run container with
podman
(root and non-root) - Check persistent journal log
- Check FDO onboarding and status (simplified-installer only)
- Check LVM PV and LV, and check growfs (raw-image and simplified-installer only)
- Check auto rollback with
greenboot
when failure is detected - Check ignition configurations (raw-image and simplified-installer only)
For RHEL-Edge project, 90% of features come from osbuild and osbuild-composer. In this case, osbuild and osbuild-composer CI will be used ad RHEL-Edge project upstream CI.
The Upstream CI is triggered by each PR and it focuses on code change.
Considering Upstream CI environment and test duration, the Upstream CI only covers virtualization tests, bare metal is out of Upstream CI scope.
RHEL 8/9, CentOS Stream 8/9 report dashboard
Package greenboot, fido-device-onboard, rust-coreos-installer, rpm-ostree, ostree report
CI for this repository is to test test code
. It's triggered by PR in this repository. Any changes for test code
has to be pass all tests of CI before they are merged into master.
Test of this CI includes:
- commit lint
- spell check
- Shellcheck: running on Github
- Yaml lint: running on Github
- Edge tests: running on Github
RHEL-Edge CI details can be found from CI doc
Test suites in scenario:
ostree.sh
andarm-commit.sh
: edge-commit/iot-commit(tar) image type test on RHEL 8.x, RHEL 9.x, CentOS Stream 8, CentOS Stream 9, and Fedoraostree-ng.sh
andarm-installer.sh
: edge-container/iot-container and edge-installer/iot-installer(ISO) image types test on RHEL 8.x, RHEL 9.x, CentOS Stream 8, CentOS Stream 9 and Fedoraostree-raw-image.sh
andarm-raw.sh
: edge-raw-image/iot-raw-image(raw) image types test on RHEL 8.x, RHEL 9.x, CentOS Stream 8, CentOS Stream 9, and Fedoraostree-simplified-installer.sh
andarm-simplified.sh
: edge-simplified-installer(ISO) image types test on RHEL 8.x, RHEL 9.x, CentOS Stream 8, and CentOS Stream 9arm-rebase.sh
: Different ostree ref rebase test on RHEL 8.x and CentOS Stream 8ostree-8-to-9.sh
: RHEL 8/CentOS Stream 8 Edge system upgrade to RHEL 9/CentOS Stream 9 Edge system testostree-9-to-9.sh
: RHEL 9/CentOS Stream 9 Edge system upgrade and rebase to RHEL 9/CentOS Stream 9 Edge system testminimal-raw.sh
andarm-minimal.sh
: RPM based system test (Not ostree)ostree-ignition.sh
andarm-ignition.sh
: Ignition test for simplified installer and raw imageostree-ami-image.sh
: AWS ec2 instance image test
You can run RHEL for Edge test on any x86_64 machine, like server, laptop, or VM, but KVM has to be enabled. Otherwise QEMU will be used and the test will take a really long time.
$ls -l /dev/kvm
To run RHEL for Edge test on ARM server, a bare metal ARM server is required.
RHEL 8.6/8.8/8.9
RHEL 9.0/9.2/9.3
CentOS Stream 8
CentOS Stream 9
Fedora 37 (Simplified-installer not supported)
Fedora 38 (Simplified-installer not supported)
Fedora rawhide (Simplified-installer not supported)
$ DOWNLOAD_NODE="hello-world.com" ./ostree.sh
$ DOWNLOAD_NODE="hello-world.com" OCP4_TOKEN=abcdefg QUAY_USERNAME=rhel-edge QUAY_PASSWORD=123456 ./ostree-ng.sh
$ DOWNLOAD_NODE="hello-world.com" DOCKERHUB_USERNAME=rhel-edge DOCKERHUB_PASSWORD=123456 ./ostree-raw-image.sh
$ DOWNLOAD_NODE="hello-world.com" ./ostree-simplified-installer.sh
$ DOWNLOAD_NODE="hello-world.com" ./ostree-8-to-9.sh
$ DOWNLOAD_NODE="hello-world.com" ./ostree-9-to-9.sh
$ ./minimal-raw.sh (Fedora 37 and above)
$ DOWNLOAD_NODE="hello-world.com" ./ostree-ignition.sh
$ DOWNLOAD_NODE="hello-world.com" ./ostree-ami-image.sh
$ tools/deploy_bare.sh
$ DOWNLOAD_NODE="hello-world.com" ./arm-commit.sh <test os>
$ DOWNLOAD_NODE="hello-world.com" QUAY_USERNAME=rhel-edge QUAY_PASSWORD=123456 ./arm-installer.sh <test os>
$ DOWNLOAD_NODE="hello-world.com" DOCKERHUB_USERNAME=rhel-edge DOCKERHUB_PASSWORD=123456 ./arm-raw.sh <test os>
$ DOWNLOAD_NODE="hello-world.com" ./arm-simplified.sh <test os>
$ DOWNLOAD_NODE="hello-world.com" ./arm-ignition.sh <centos-stream-9 or rhel-9-2>
$ DOWNLOAD_NODE="hello-world.com" ./arm-minimal.sh <fedora-37 or fedora-38>
<test os> can be one of "rhel-9-3", "centos-stream-9", "fedora-38"
You can set these environment variables to run test
QUAY_USERNAME quay.io username
Used to test pushing Edge OCI-archive image to quay.io
QUAY_PASSWORD quay.io password
Used to test pushing Edge OCI-archive image to quay.io
DOCKERHUB_USERNAME Docker hub account username
Used to test pushing Edge OCI-archive image to Docker hub
DOCKERHUB_PASSWORD Docker hub account password
Used to test pushing Edge OCI-archive image to Docker hub
OCP4_TOKEN Edit-able SA token on PSI Openshift 4
Deploy edge-container on PSI OCP4
DOWNLOAD_NODE RHEL nightly compose download URL
- RHEL for Edge discussion channel:
Google Chat room