Merge "CI: Add a 4k disk CI job"
This commit is contained in:
commit
45ee7dc365
@ -164,6 +164,7 @@ IRONIC_VM_ENGINE=${IRONIC_VM_ENGINE:-qemu}
|
|||||||
IRONIC_VM_NETWORK_BRIDGE=${IRONIC_VM_NETWORK_BRIDGE:-brbm}
|
IRONIC_VM_NETWORK_BRIDGE=${IRONIC_VM_NETWORK_BRIDGE:-brbm}
|
||||||
IRONIC_VM_INTERFACE_COUNT=${IRONIC_VM_INTERFACE_COUNT:-2}
|
IRONIC_VM_INTERFACE_COUNT=${IRONIC_VM_INTERFACE_COUNT:-2}
|
||||||
IRONIC_VM_VOLUME_COUNT=${IRONIC_VM_VOLUME_COUNT:-1}
|
IRONIC_VM_VOLUME_COUNT=${IRONIC_VM_VOLUME_COUNT:-1}
|
||||||
|
IRONIC_VM_BLOCK_SIZE=${IRONIC_VM_BLOCK_SIZE:-512}
|
||||||
IRONIC_VM_MACS_CSV_FILE=${IRONIC_VM_MACS_CSV_FILE:-$IRONIC_DATA_DIR/ironic_macs.csv}
|
IRONIC_VM_MACS_CSV_FILE=${IRONIC_VM_MACS_CSV_FILE:-$IRONIC_DATA_DIR/ironic_macs.csv}
|
||||||
IRONIC_CLEAN_NET_NAME=${IRONIC_CLEAN_NET_NAME:-${IRONIC_PROVISION_NETWORK_NAME:-${PRIVATE_NETWORK_NAME}}}
|
IRONIC_CLEAN_NET_NAME=${IRONIC_CLEAN_NET_NAME:-${IRONIC_PROVISION_NETWORK_NAME:-${PRIVATE_NETWORK_NAME}}}
|
||||||
IRONIC_RESCUE_NET_NAME=${IRONIC_RESCUE_NET_NAME:-${IRONIC_CLEAN_NET_NAME}}
|
IRONIC_RESCUE_NET_NAME=${IRONIC_RESCUE_NET_NAME:-${IRONIC_CLEAN_NET_NAME}}
|
||||||
@ -381,6 +382,15 @@ fi
|
|||||||
# DHCP timeout for the dhcp-all-interfaces element.
|
# DHCP timeout for the dhcp-all-interfaces element.
|
||||||
IRONIC_DIB_DHCP_TIMEOUT=${IRONIC_DIB_DHCP_TIMEOUT:-60}
|
IRONIC_DIB_DHCP_TIMEOUT=${IRONIC_DIB_DHCP_TIMEOUT:-60}
|
||||||
|
|
||||||
|
# Options for building a DIB image
|
||||||
|
IRONIC_BUILD_DIB_IMAGE=${IRONIC_BUILD_DIB_IMAGE:-False}
|
||||||
|
IRONIC_DIB_IMAGE_OPTIONS=${IRONIC_DIB_IMAGE_OPTIONS:-}
|
||||||
|
IRONIC_DIB_IMAGE_OS=${IRONIC_DIB_IMAGE_OS:-centos}
|
||||||
|
IRONIC_DIB_IMAGE_RELEASE=${IRONIC_DIB_IMAGE_RELEASE:-9-stream}
|
||||||
|
if [[ -z "$IRONIC_DIB_IMAGE_OPTIONS" ]]; then
|
||||||
|
IRONIC_DIB_IMAGE_OPTIONS="$IRONIC_DIB_IMAGE_OS bootloader block-device-efi"
|
||||||
|
fi
|
||||||
|
|
||||||
# Some drivers in Ironic require deploy ramdisk in bootable ISO format.
|
# Some drivers in Ironic require deploy ramdisk in bootable ISO format.
|
||||||
# Set this variable to "true" to build an ISO for deploy ramdisk and
|
# Set this variable to "true" to build an ISO for deploy ramdisk and
|
||||||
# upload to Glance.
|
# upload to Glance.
|
||||||
@ -2264,7 +2274,7 @@ function create_bridge_and_vms {
|
|||||||
-a $IRONIC_HW_ARCH -b $IRONIC_VM_NETWORK_BRIDGE $vm_opts -p $vbmc_port -o $pdu_outlet \
|
-a $IRONIC_HW_ARCH -b $IRONIC_VM_NETWORK_BRIDGE $vm_opts -p $vbmc_port -o $pdu_outlet \
|
||||||
-i $IRONIC_VM_INTERFACE_COUNT -f $IRONIC_VM_SPECS_DISK_FORMAT -M $PUBLIC_BRIDGE_MTU $log_arg \
|
-i $IRONIC_VM_INTERFACE_COUNT -f $IRONIC_VM_SPECS_DISK_FORMAT -M $PUBLIC_BRIDGE_MTU $log_arg \
|
||||||
-v $IRONIC_VM_VOLUME_COUNT -P $LIBVIRT_STORAGE_POOL \
|
-v $IRONIC_VM_VOLUME_COUNT -P $LIBVIRT_STORAGE_POOL \
|
||||||
-t $IRONIC_MACHINE_TYPE >> $IRONIC_VM_MACS_CSV_FILE
|
-t $IRONIC_MACHINE_TYPE -B $IRONIC_VM_BLOCK_SIZE >> $IRONIC_VM_MACS_CSV_FILE
|
||||||
SUBSHELL
|
SUBSHELL
|
||||||
|
|
||||||
if is_deployed_by_ipmi; then
|
if is_deployed_by_ipmi; then
|
||||||
@ -3020,6 +3030,27 @@ function build_ipa_dib_ramdisk {
|
|||||||
rm -rf $tempdir
|
rm -rf $tempdir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function build_dib_image {
|
||||||
|
local target_path=$1
|
||||||
|
local tempdir
|
||||||
|
tempdir=$(mktemp -d --tmpdir=${DEST})
|
||||||
|
|
||||||
|
# install diskimage-builder if not present
|
||||||
|
if ! $(type -P disk-image-create > /dev/null); then
|
||||||
|
install_diskimage_builder
|
||||||
|
fi
|
||||||
|
# NOTE(TheJulia): Explicitly setting an release is likely not
|
||||||
|
# needed, but just in case!
|
||||||
|
DIB_BLOCK_SIZE=$IRONIC_VM_BLOCK_SIZE \
|
||||||
|
DIB_RELEASE=$IRONIC_DIB_IMAGE_RELEASE \
|
||||||
|
disk-image-create "$IRONIC_DIB_IMAGE_OPTIONS" \
|
||||||
|
-x -t qcow2 -o "$tempdir/target-os-image"
|
||||||
|
chmod -R +r $tempdir
|
||||||
|
mv "$tempdir/target-os-image.qcow2" "$target_path"
|
||||||
|
rm -rf $tempdir
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function upload_image_if_needed {
|
function upload_image_if_needed {
|
||||||
if [[ "$IRONIC_PARTITIONED_IMAGE_NAME" =~ cirros ]] && is_service_enabled glance; then
|
if [[ "$IRONIC_PARTITIONED_IMAGE_NAME" =~ cirros ]] && is_service_enabled glance; then
|
||||||
echo Building a Cirros image suitable for local boot
|
echo Building a Cirros image suitable for local boot
|
||||||
@ -3060,6 +3091,31 @@ function upload_image_if_needed {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upload_dib_image_if_needed {
|
||||||
|
if [[ "$IRONIC_BUILD_DIB_IMAGE" == "True" ]] && is_service_enabled glance; then
|
||||||
|
echo "Building a DIB image suitable for local boot"
|
||||||
|
|
||||||
|
IRONIC_IMAGE_NAME="ironic-dib-image.img"
|
||||||
|
|
||||||
|
local dest
|
||||||
|
dest="$FILES/$IRONIC_IMAGE_NAME"
|
||||||
|
|
||||||
|
build_dib_image "$dest"
|
||||||
|
|
||||||
|
openstack image create $IRONIC_IMAGE_NAME \
|
||||||
|
--public --disk-format qcow2 --container-format bare \
|
||||||
|
--file $(readlink -f "$dest")
|
||||||
|
|
||||||
|
# Change the default image only if the provided settings prevent the
|
||||||
|
# default cirros image from working.
|
||||||
|
if [[ "$IRONIC_TEMPEST_WHOLE_DISK_IMAGE" != True ]]; then
|
||||||
|
IRONIC_IMAGE_NAME=$IRONIC_IMAGE_NAME
|
||||||
|
DEFAULT_IMAGE_NAME=$IRONIC_IMAGE_NAME
|
||||||
|
IRONIC_WHOLEDISK_IMAGE_NAME=$IRONIC_IMAGE_NAME
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# download EFI boot loader image and upload it to glance
|
# download EFI boot loader image and upload it to glance
|
||||||
# this function sets ``IRONIC_EFIBOOT_ID``
|
# this function sets ``IRONIC_EFIBOOT_ID``
|
||||||
function upload_baremetal_ironic_efiboot {
|
function upload_baremetal_ironic_efiboot {
|
||||||
@ -3259,6 +3315,7 @@ function prepare_baremetal_basic_ops {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
upload_image_if_needed
|
upload_image_if_needed
|
||||||
|
upload_dib_image_if_needed
|
||||||
|
|
||||||
configure_tftpd
|
configure_tftpd
|
||||||
configure_iptables
|
configure_iptables
|
||||||
|
@ -1018,6 +1018,23 @@
|
|||||||
description: Alias for ironic-tempest-wholedisk-bios-ipmi-direct-tinyipa
|
description: Alias for ironic-tempest-wholedisk-bios-ipmi-direct-tinyipa
|
||||||
parent: ironic-tempest-bios-ipmi-direct-tinyipa
|
parent: ironic-tempest-bios-ipmi-direct-tinyipa
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: ironic-tempest-uefi-redfish-vmedia-4k
|
||||||
|
description: "Build 4k disk artifacts with 4k VMs"
|
||||||
|
parent: ironic-tempest-uefi-redfish-vmedia
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
||||||
|
IRONIC_VM_COUNT: 1
|
||||||
|
IRONIC_VM_BLOCK_SIZE: 4096
|
||||||
|
IRONIC_BUILD_DIB_IMAGE: True
|
||||||
|
SWIFT_ENABLE_TEMPURLS: False
|
||||||
|
# This job by defaults deploys a dib cirros image,
|
||||||
|
# and to do so, the instance user is not cirros.
|
||||||
|
DEFAULT_INSTANCE_USER: "cloud-user"
|
||||||
|
IRONIC_DEFAULT_RESCUE_INTERFACE: "no-rescue"
|
||||||
|
IRONIC_ENABLED_RESCUE_INTERFACES: "fake,no-rescue"
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: ironic-grenade
|
name: ironic-grenade
|
||||||
parent: grenade
|
parent: grenade
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
- ironic-tempest-bios-ipmi-direct-tinyipa
|
- ironic-tempest-bios-ipmi-direct-tinyipa
|
||||||
- ironic-tempest-bfv
|
- ironic-tempest-bfv
|
||||||
- ironic-tempest-ipa-partition-uefi-pxe-grub2
|
- ironic-tempest-ipa-partition-uefi-pxe-grub2
|
||||||
|
- ironic-tempest-uefi-redfish-vmedia-4k
|
||||||
# NOTE(rpittau): Currently broken because of an issue with parted
|
# NOTE(rpittau): Currently broken because of an issue with parted
|
||||||
- metalsmith-integration-glance-centos9-legacy:
|
- metalsmith-integration-glance-centos9-legacy:
|
||||||
voting: false
|
voting: false
|
||||||
@ -89,6 +90,7 @@
|
|||||||
- ironic-tempest-bios-ipmi-direct-tinyipa
|
- ironic-tempest-bios-ipmi-direct-tinyipa
|
||||||
- ironic-tempest-bfv
|
- ironic-tempest-bfv
|
||||||
- ironic-tempest-ipa-partition-uefi-pxe-grub2
|
- ironic-tempest-ipa-partition-uefi-pxe-grub2
|
||||||
|
- ironic-tempest-uefi-redfish-vmedia-4k
|
||||||
# NOTE(rpittau): Currently broken because of an issue with parted
|
# NOTE(rpittau): Currently broken because of an issue with parted
|
||||||
#- metalsmith-integration-glance-centos9-legacy
|
#- metalsmith-integration-glance-centos9-legacy
|
||||||
# NOTE(TheJulia): At present, metal3 doesn't leverage
|
# NOTE(TheJulia): At present, metal3 doesn't leverage
|
||||||
|
Loading…
Reference in New Issue
Block a user