diff --git a/test/cases/ostree-ami-image.sh b/test/cases/ostree-ami-image.sh index 93d58f1d191..93ff434b940 100755 --- a/test/cases/ostree-ami-image.sh +++ b/test/cases/ostree-ami-image.sh @@ -66,6 +66,7 @@ OSTREE_OSNAME=redhat BUCKET_NAME="composer-ci-${TEST_UUID}" BUCKET_URL="s3://${BUCKET_NAME}" OBJECT_URL="http://${BUCKET_NAME}.s3.${AWS_DEFAULT_REGION}.amazonaws.com" +CUSTOM_FS_LVS="false" # Set up temporary files. TEMPDIR=$(mktemp -d) @@ -93,10 +94,12 @@ case "${ID}-${VERSION_ID}" in "rhel-9."*) OSTREE_REF="rhel/9/${ARCH}/edge" SYSROOT_RO="true" + CUSTOM_FS_LVS="true" ;; "centos-9") OSTREE_REF="centos/9/${ARCH}/edge" SYSROOT_RO="true" + CUSTOM_FS_LVS="true" ;; *) redprint "unsupported distro: ${ID}-${VERSION_ID}" @@ -611,6 +614,20 @@ groups = ["wheel"] url = "${OBJECT_URL}/config.ign" EOF +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 aws ami blueprint" cat "$BLUEPRINT_FILE" @@ -880,6 +897,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e ostree_commit="${INSTALL_HASH}" \ -e sysroot_ro="$SYSROOT_RO" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -1058,6 +1076,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e ostree_commit="${UPGRADE_HASH}" \ -e sysroot_ro="$SYSROOT_RO" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result diff --git a/test/cases/ostree-raw-image.sh b/test/cases/ostree-raw-image.sh index 1cae96344d7..3610e894928 100755 --- a/test/cases/ostree-raw-image.sh +++ b/test/cases/ostree-raw-image.sh @@ -103,6 +103,7 @@ KERNEL_RT_PKG="kernel-rt" # Set up variables. SYSROOT_RO="false" CUSTOM_DIRS_FILES="false" +CUSTOM_FS_LVS="false" # Set FIPS variable default FIPS="${FIPS:-false}" @@ -121,6 +122,7 @@ case "${ID}-${VERSION_ID}" in PARENT_REF="rhel/9/${ARCH}/edge" OS_VARIANT="rhel9-unknown" SYSROOT_RO="true" + CUSTOM_FS_LVS="true" ;; "centos-8") OSTREE_REF="centos/8/${ARCH}/edge" @@ -134,6 +136,7 @@ case "${ID}-${VERSION_ID}" in OS_VARIANT="centos-stream9" BOOT_ARGS="uefi,firmware.feature0.name=secure-boot,firmware.feature0.enabled=no" SYSROOT_RO="true" + CUSTOM_FS_LVS="true" ;; "fedora-"*) CONTAINER_TYPE=iot-container @@ -478,6 +481,22 @@ enabled = ["custom.service"] EOF fi +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 + +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 + +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 raw image blueprint" cat "$BLUEPRINT_FILE" @@ -590,6 +609,7 @@ EOF -e sysroot_ro="$SYSROOT_RO" \ -e test_custom_dirs_files="$CUSTOM_DIRS_FILES" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -758,6 +778,7 @@ EOF -e sysroot_ro="$SYSROOT_RO" \ -e test_custom_dirs_files="$CUSTOM_DIRS_FILES" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -864,6 +885,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e test_custom_dirs_files="$CUSTOM_DIRS_FILES" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -1056,6 +1078,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e test_custom_dirs_files="$CUSTOM_DIRS_FILES" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result diff --git a/test/cases/ostree-simplified-installer.sh b/test/cases/ostree-simplified-installer.sh index c8ef49fa646..e12133d9eee 100755 --- a/test/cases/ostree-simplified-installer.sh +++ b/test/cases/ostree-simplified-installer.sh @@ -109,6 +109,7 @@ INSTALLER_FILENAME=simplified-installer.iso MEMORY=2048 BOOT_ARGS="uefi" REF_PREFIX="rhel-edge" +CUSTOM_FS_LVS="false" # Set up temporary files. TEMPDIR=$(mktemp -d) @@ -149,6 +150,7 @@ case "${ID}-${VERSION_ID}" in SYSROOT_RO="true" ANSIBLE_USER=fdouser FDO_USER_ONBOARDING="true" + CUSTOM_FS_LVS="true" # workaround selinux bug https://bugzilla.redhat.com/show_bug.cgi?id=2026795 sudo setenforce 0 getenforce @@ -167,6 +169,7 @@ case "${ID}-${VERSION_ID}" in SYSROOT_RO="true" ANSIBLE_USER=fdouser FDO_USER_ONBOARDING="true" + CUSTOM_FS_LVS="true" # workaround selinux bug https://bugzilla.redhat.com/show_bug.cgi?id=2026795 sudo setenforce 0 getenforce @@ -466,6 +469,20 @@ fips = ${FIPS} EOF fi +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 simplified_iso_without_fdo blueprint" cat "$BLUEPRINT_FILE" @@ -572,6 +589,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e fdo_credential="false" \ -e sysroot_ro="$SYSROOT_RO" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -632,6 +650,19 @@ append = "enforcing=0" EOF fi +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi greenprint "📄 installer blueprint" cat "$BLUEPRINT_FILE" @@ -760,6 +791,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e mfg_guest_int_name="${MFG_GUEST_INT_NAME}" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -817,6 +849,20 @@ append = "enforcing=0" EOF fi +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 fdosshkey blueprint" cat "$BLUEPRINT_FILE" @@ -946,6 +992,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e mfg_guest_int_name="${MFG_GUEST_INT_NAME}" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -1085,6 +1132,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e mfg_guest_int_name="${MFG_GUEST_INT_NAME}" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -1150,6 +1198,20 @@ append = "enforcing=0" EOF fi +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 fdosshkey blueprint" cat "$BLUEPRINT_FILE" @@ -1260,6 +1322,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e mfg_guest_int_name="${MFG_GUEST_INT_NAME}" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -1403,6 +1466,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e sysroot_ro="$SYSROOT_RO" \ -e mfg_guest_int_name="${MFG_GUEST_INT_NAME}" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result diff --git a/test/cases/ostree-vsphere.sh b/test/cases/ostree-vsphere.sh index 8d6f90eebe0..2c8e55920bc 100755 --- a/test/cases/ostree-vsphere.sh +++ b/test/cases/ostree-vsphere.sh @@ -72,6 +72,7 @@ CONTAINER_TYPE=edge-container CONTAINER_FILENAME=container.tar VSPHERE_IMAGE_TYPE=edge-vsphere VSPHERE_FILENAME=image.vmdk +CUSTOM_FS_LVS="false" # Set up temporary files. TEMPDIR=$(mktemp -d) @@ -110,10 +111,12 @@ case "${ID}-${VERSION_ID}" in "rhel-9"* ) OSTREE_REF="rhel/9/${ARCH}/edge" GUEST_ID_DC70="rhel9_64Guest" + CUSTOM_FS_LVS="true" ;; "centos-9") OSTREE_REF="centos/9/${ARCH}/edge" GUEST_ID_DC70="centos9_64Guest" + CUSTOM_FS_LVS="true" ;; *) echo "unsupported distro: ${ID}-${VERSION_ID}" @@ -455,6 +458,20 @@ groups = ["wheel"] url = "${IGNITION_SERVER_URL}/config.ign" EOF +if [[ "${CUSTOM_FS_LVS}" == "true" ]]; then + tee -a "$BLUEPRINT_FILE" > /dev/null << EOF +[[customizations.filesystem]] +mountpoint = "/foo/bar" +size=2147483648 +[[customizations.filesystem]] +mountpoint = "/foo" +size=8589934592 +[[customizations.filesystem]] +mountpoint = "/var/myfiles" +size= "1 GiB" +EOF +fi + greenprint "📄 vmdk blueprint" cat "$BLUEPRINT_FILE" @@ -543,6 +560,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e fdo_credential="false" \ -e sysroot_ro="$SYSROOT_RO" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result @@ -677,6 +695,7 @@ sudo ansible-playbook -v -i "${TEMPDIR}"/inventory \ -e fdo_credential="false" \ -e sysroot_ro="$SYSROOT_RO" \ -e fips="${FIPS}" \ + -e custom_fs_lvs="${CUSTOM_FS_LVS}" \ /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result diff --git a/test/data/ansible/check_ostree.yaml b/test/data/ansible/check_ostree.yaml index db3b4c5e8f2..ee464ca15e3 100644 --- a/test/data/ansible/check_ostree.yaml +++ b/test/data/ansible/check_ostree.yaml @@ -14,6 +14,7 @@ test_custom_dirs_files: "false" sysroot_ro: "false" fips: "false" + custom_fs_lvs: "false" tasks: # current target host's IP address @@ -261,7 +262,7 @@ # case: check pv size - name: check pv size - shell: pvs --reportformat json | jq .report[0].pv[0].pv_size -r + shell: pvs --reportformat json --units g | jq .report[0].pv[0].pv_size -r | sed "s/\.[0-9]\+g//g" become: yes register: result_pv_size when: "'/dev/mapper/rootvg-rootlv' in result_sysroot_source.stdout" @@ -303,6 +304,38 @@ when: - "'/dev/mapper/rootvg-rootlv' in result_sysroot_source.stdout" - fdo_credential == "false" + - custom_fs_lvs == "false" + + # check logical volumes + - name: check logical volumes + shell: lvdisplay -a + become: yes + register: result_custom_lvs + when: + - "'/dev/mapper/rootvg-rootlv' in result_sysroot_source.stdout" + - custom_fs_lvs == "true" + + - name: "check that custom partitions are present" + block: + - assert: + that: + - "'var_myfileslv' in result_custom_lvs.stdout" + - "'foolv' in result_custom_lvs.stdout" + - "'foo_barlv' in result_custom_lvs.stdout" + fail_msg: "There are custom partitions missing" + success_msg: "Custom partitions present in filesystem" + always: + - set_fact: + total_counter: "{{ total_counter | int + 1 }}" + rescue: + - name: failed count + 1 + set_fact: + failed_counter: "{{ failed_counter | int + 1 }}" + when: + - "'/dev/mapper/rootvg-rootlv' in result_sysroot_source.stdout" + - fdo_credential == "false" + - custom_fs_lvs == "true" + # case: check /sysroot lv size - name: check sysroot lv size