@@ -29,6 +29,7 @@ set +o pipefail
2929
3030# Set up default directories
3131IRONIC_DIR=$DEST/ironic
32+ IRONIC_PYTHON_AGENT_DIR=$DEST/ironic-python-agent
3233IRONIC_DATA_DIR=$DATA_DIR/ironic
3334IRONIC_STATE_PATH=/var/lib/ironic
3435IRONICCLIENT_DIR=$DEST/python-ironicclient
@@ -559,6 +560,19 @@ function configure_ironic_auxiliary {
559560 ironic_ssh_check $IRONIC_SSH_KEY_DIR/$IRONIC_SSH_KEY_FILENAME $IRONIC_VM_SSH_ADDRESS $IRONIC_VM_SSH_PORT $IRONIC_SSH_USERNAME 10
560561}
561562
563+ function build_ipa_coreos_ramdisk {
564+ echo "Building ironic-python-agent deploy ramdisk"
565+ local kernel_path=$1
566+ local ramdisk_path=$2
567+ git_clone $IRONIC_PYTHON_AGENT_REPO $IRONIC_PYTHON_AGENT_DIR $IRONIC_PYTHON_AGENT_BRANCH
568+ cd $IRONIC_PYTHON_AGENT_DIR
569+ imagebuild/coreos/build_coreos_image.sh
570+ cp imagebuild/coreos/UPLOAD/coreos_production_pxe_image-oem.cpio.gz $ramdisk_path
571+ cp imagebuild/coreos/UPLOAD/coreos_production_pxe.vmlinuz $kernel_path
572+ sudo rm -rf UPLOAD
573+ cd -
574+ }
575+
562576# build deploy kernel+ramdisk, then upload them to glance
563577# this function sets ``IRONIC_DEPLOY_KERNEL_ID``, ``IRONIC_DEPLOY_RAMDISK_ID``
564578function upload_baremetal_ironic_deploy {
@@ -583,8 +597,8 @@ function upload_baremetal_ironic_deploy {
583597 if [ "$IRONIC_BUILD_DEPLOY_RAMDISK" = "True" ]; then
584598 # we can build them only if we're not offline
585599 if [ "$OFFLINE" != "True" ]; then
586- if [ "$IRONIC_DEPLOY_RAMDISK " == "agent_ssh" ]; then
587- die $LINENO "Ironic-python-agent build is not yet supported"
600+ if [ "$IRONIC_DEPLOY_DRIVER " == "agent_ssh" ]; then
601+ build_ipa_coreos_ramdisk $IRONIC_DEPLOY_KERNEL_PATH $IRONIC_DEPLOY_RAMDISK_PATH
588602 else
589603 ramdisk-image-create $IRONIC_DEPLOY_FLAVOR \
590604 -o $TOP_DIR/files/ir-deploy
0 commit comments