From 512d13c1973e5942ecca37499a31725004fc3400 Mon Sep 17 00:00:00 2001 From: Mario Cattamo Date: Mon, 8 Jan 2024 18:27:59 +0100 Subject: [PATCH] test: add custom partitions to edge-raw-image test case --- test/cases/ostree-ami-image.sh | 19 ++++++++++++++++ test/cases/ostree-raw-image.sh | 23 +++++++++++++++++++ test/cases/ostree-vsphere.sh | 19 ++++++++++++++++ test/data/ansible/check_ostree.yaml | 35 ++++++++++++++++++++++++++++- 4 files changed, 95 insertions(+), 1 deletion(-) 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-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