diff --git a/devstack/lib/ironic b/devstack/lib/ironic index 4e942adba7..910be51e56 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -226,12 +226,12 @@ IRONIC_DEFAULT_TRAITS=${IRONIC_DEFAULT_TRAITS-CUSTOM_GOLD} IRONIC_BUILD_DEPLOY_RAMDISK=$(trueorfalse True IRONIC_BUILD_DEPLOY_RAMDISK) # Ironic IPA ramdisk type, supported types are: -IRONIC_SUPPORTED_RAMDISK_TYPES_RE="^(coreos|tinyipa|dib)$" +IRONIC_SUPPORTED_RAMDISK_TYPES_RE="^(tinyipa|dib)$" IRONIC_RAMDISK_TYPE=${IRONIC_RAMDISK_TYPE:-tinyipa} # Confirm we have a supported ramdisk type or fail early. if [[ ! "$IRONIC_RAMDISK_TYPE" =~ $IRONIC_SUPPORTED_RAMDISK_TYPES_RE ]]; then - die $LINENO "Unrecognized IRONIC_RAMDISK_TYPE: $IRONIC_RAMDISK_TYPE. Expected 'coreos', 'tinyipa' or 'dib'" + die $LINENO "Unrecognized IRONIC_RAMDISK_TYPE: $IRONIC_RAMDISK_TYPE. Expected 'tinyipa' or 'dib'" fi # If present, these files are used as deploy ramdisk/kernel. @@ -255,10 +255,6 @@ if [[ "$IRONIC_BUILD_DEPLOY_RAMDISK" == "False" && \ ! (-e "$IRONIC_DEPLOY_RAMDISK" && -e "$IRONIC_DEPLOY_KERNEL") && \ (-z "$IRONIC_AGENT_KERNEL_URL" || -z "$IRONIC_AGENT_RAMDISK_URL") ]]; then case $IRONIC_RAMDISK_TYPE in - coreos) - IRONIC_AGENT_KERNEL_URL=${IRONIC_AGENT_KERNEL_URL:-https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-${IPA_DOWNLOAD_BRANCH}.vmlinuz} - IRONIC_AGENT_RAMDISK_URL=${IRONIC_AGENT_RAMDISK_URL:-https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-${IPA_DOWNLOAD_BRANCH}.cpio.gz} - ;; tinyipa) IRONIC_AGENT_KERNEL_URL=${IRONIC_AGENT_KERNEL_URL:-https://tarballs.openstack.org/ironic-python-agent/tinyipa/files/tinyipa-${IPA_DOWNLOAD_BRANCH}.vmlinuz} IRONIC_AGENT_RAMDISK_URL=${IRONIC_AGENT_RAMDISK_URL:-https://tarballs.openstack.org/ironic-python-agent/tinyipa/files/tinyipa-${IPA_DOWNLOAD_BRANCH}.gz} @@ -2400,9 +2396,6 @@ function build_ipa_ramdisk { local ramdisk_path=$2 local iso_path=$3 case $IRONIC_RAMDISK_TYPE in - 'coreos') - build_ipa_coreos_ramdisk $kernel_path $ramdisk_path $iso_path - ;; 'tinyipa') build_tinyipa_ramdisk $kernel_path $ramdisk_path $iso_path ;; @@ -2410,30 +2403,11 @@ function build_ipa_ramdisk { build_ipa_dib_ramdisk $kernel_path $ramdisk_path $iso_path ;; *) - die $LINENO "Unrecognised IRONIC_RAMDISK_TYPE: $IRONIC_RAMDISK_TYPE. Expected either of 'dib', 'coreos', or 'tinyipa'." + die $LINENO "Unrecognised IRONIC_RAMDISK_TYPE: $IRONIC_RAMDISK_TYPE. Expected either of 'dib' or 'tinyipa'." ;; esac } -function build_ipa_coreos_ramdisk { - echo "Building coreos ironic-python-agent deploy ramdisk" - local kernel_path=$1 - local ramdisk_path=$2 - local iso_path=$3 - # on fedora services do not start by default - restart_service docker - git_clone $IRONIC_PYTHON_AGENT_REPO $IRONIC_PYTHON_AGENT_DIR $IRONIC_PYTHON_AGENT_BRANCH - cd $IRONIC_PYTHON_AGENT_DIR - imagebuild/coreos/build_coreos_image.sh - cp imagebuild/coreos/UPLOAD/coreos_production_pxe_image-oem.cpio.gz $ramdisk_path - cp imagebuild/coreos/UPLOAD/coreos_production_pxe.vmlinuz $kernel_path - if is_deploy_iso_required; then - imagebuild/coreos/iso-image-create -k $kernel_path -i $ramdisk_path -o $iso_path - fi - sudo rm -rf UPLOAD - cd - -} - function build_tinyipa_ramdisk { echo "Building ironic-python-agent deploy ramdisk" local kernel_path=$1 diff --git a/doc/source/admin/rescue.rst b/doc/source/admin/rescue.rst index f6503f8afa..5509796f43 100644 --- a/doc/source/admin/rescue.rst +++ b/doc/source/admin/rescue.rst @@ -31,8 +31,6 @@ operation. This will differ somewhat between different deploy environments, but an example of how to do this is outlined below: #. Create and configure ramdisk that supports rescue operation. - The ramdisk types that supports rescue operation is ironic-python-agent - with CoreOS/tinyIPA and DIB based ramdisk. Please see :doc:`/install/deploy-ramdisk` for detailed instructions to build a ramdisk. diff --git a/doc/source/admin/troubleshooting.rst b/doc/source/admin/troubleshooting.rst index e06959c002..644849677e 100644 --- a/doc/source/admin/troubleshooting.rst +++ b/doc/source/admin/troubleshooting.rst @@ -181,9 +181,6 @@ directory back:: .. note:: You don't need to modify the kernel (e.g. ``tinyipa-master.vmlinuz``), only the ramdisk part. -.. note:: For CoreOS-based ramdisk you also need to unpack and pack back the - squashfs archive inside the unpacked ramdisk. - API Errors ========== diff --git a/doc/source/install/configure-glance-images.rst b/doc/source/install/configure-glance-images.rst index e78d4d45f5..f5a373de13 100644 --- a/doc/source/install/configure-glance-images.rst +++ b/doc/source/install/configure-glance-images.rst @@ -101,22 +101,15 @@ them to the Image service: There are several methods to build or download deploy images, please read the :ref:`deploy-ramdisk` section. - The recommended method is to use CoreOS to build deploy images, you will get - one kernel disk ``coreos_production_pxe.vmlinuz`` and one ram disk - ``coreos_production_pxe_image-oem.cpio.gz``. - - .. note:: If you want to customize your deploy images, please read `Image Builders `_. - #. Add the deploy images to the Image service - Add the *coreos_production_pxe.vmlinuz* and *coreos_production_pxe_image-oem.cpio.gz* - images to the Image service: + Add the deployment kernel and ramdisk images to the Image service: .. code-block:: console $ openstack image create deploy-vmlinuz --public \ --disk-format aki --container-format aki \ - --file coreos_production_pxe.vmlinuz + --file ironic-python-agent.vmlinuz Store the image UUID obtained from the above step as ``DEPLOY_VMLINUZ_UUID``. @@ -124,6 +117,6 @@ them to the Image service: $ openstack image create deploy-initrd --public \ --disk-format ari --container-format ari \ - --file coreos_production_pxe_image-oem.cpio.gz + --file ironic-python-agent.initramfs Store the image UUID obtained from the above step as ``DEPLOY_INITRD_UUID``. diff --git a/doc/source/install/deploy-ramdisk.rst b/doc/source/install/deploy-ramdisk.rst index a640dd87a8..56c33a8163 100644 --- a/doc/source/install/deploy-ramdisk.rst +++ b/doc/source/install/deploy-ramdisk.rst @@ -6,102 +6,14 @@ Building or downloading a deploy ramdisk image Ironic depends on having an image with the ironic-python-agent_ (IPA) service running on it for controlling and deploying bare metal nodes. -You can download a pre-built version of the deploy ramdisk built with -the `CoreOS tools`_ at: - -* `CoreOS deploy kernel `_ -* `CoreOS deploy ramdisk `_ +.. TODO(dtantsur): a link to DIB ramdisks once we finally build them .. _ironic-python-agent: https://docs.openstack.org/ironic-python-agent/latest/ Building from source -------------------- -There are two known methods for creating the deployment image with the -IPA service: +Check the ironic-python-agent-builder_ project for information on how to build +ironic-python-agent ramdisks. -.. _BuildingCoreOSDeployRamdisk: - -CoreOS tools -~~~~~~~~~~~~ - -#. Clone the ironic-python-agent_ project:: - - git clone https://opendev.org/openstack/ironic-python-agent - -#. Install the requirements: - - RHEL7/CentOS7:: - - sudo yum install docker gzip util-linux cpio findutils grep gpg - - Fedora:: - - sudo dnf install docker gzip util-linux cpio findutils grep gpg - - Ubuntu 14.04 (trusty) or higher:: - - sudo apt-get install docker.io gzip uuid-runtime cpio findutils grep gnupg cgroup-lite - - SUSE:: - - sudo zypper install docker gzip util-linux cpio findutils grep gpg2 - -#. Change directory to ``imagebuild/coreos``:: - - cd ironic-python-agent/imagebuild/coreos - -#. Start the docker daemon: - - Fedora/RHEL7/CentOS7/SUSE:: - - sudo systemctl start docker - - Ubuntu:: - - sudo service docker start - -#. Create the image:: - - sudo make - -#. Or, create an ISO image to boot with virtual media:: - - sudo make iso - - -.. note:: - Once built the deploy ramdisk and kernel will appear inside of a - directory called ``UPLOAD``. - - -.. _BuildingDibBasedDeployRamdisk: - -disk-image-builder -~~~~~~~~~~~~~~~~~~ - -#. Follow `diskimage-builder installation documentation`_ to install - diskimage-builder. - -#. Create the image:: - - disk-image-create ironic-agent fedora -o ironic-deploy - - The above command creates the deploy ramdisk and kernel named - ``ironic-deploy.vmlinuz`` and ``ironic-deploy.initramfs`` in your - current directory. - -#. Or, create an ISO image to boot with virtual media:: - - disk-image-create ironic-agent fedora iso -o ironic-deploy - - The above command creates the deploy ISO named ``ironic-deploy.iso`` - in your current directory. - -.. note:: - Fedora was used as an example for the base operational system. Please - check the `diskimage-builder documentation`_ for other supported - operational systems. - -.. _`diskimage-builder documentation`: https://docs.openstack.org/diskimage-builder/latest/ -.. _`diskimage-builder installation documentation`: https://docs.openstack.org/diskimage-builder/latest/user_guide/installation.html +.. _ironic-python-agent-builder: https://docs.openstack.org/ironic-python-agent-builder/latest/ diff --git a/ironic/drivers/modules/agent_config.template b/ironic/drivers/modules/agent_config.template index 236ccdc2aa..d4828919cb 100644 --- a/ironic/drivers/modules/agent_config.template +++ b/ironic/drivers/modules/agent_config.template @@ -2,7 +2,7 @@ default deploy label deploy kernel {{ pxe_options.deployment_aki_path }} -append initrd={{ pxe_options.deployment_ari_path }} text {{ pxe_options.pxe_append_params }} ipa-api-url={{ pxe_options['ipa-api-url'] }} coreos.configdrive=0 +append initrd={{ pxe_options.deployment_ari_path }} text {{ pxe_options.pxe_append_params }} ipa-api-url={{ pxe_options['ipa-api-url'] }} label boot_partition kernel {{ pxe_options.aki_path }} diff --git a/ironic/drivers/modules/deploy_utils.py b/ironic/drivers/modules/deploy_utils.py index 6e0d0c8d53..c96c3eb378 100644 --- a/ironic/drivers/modules/deploy_utils.py +++ b/ironic/drivers/modules/deploy_utils.py @@ -880,8 +880,6 @@ def build_agent_options(node): """ agent_config_opts = { 'ipa-api-url': get_ironic_api_url(), - # NOTE: The below entry is a temporary workaround for bug/1433812 - 'coreos.configdrive': 0, } return agent_config_opts diff --git a/ironic/drivers/modules/ipxe_config.template b/ironic/drivers/modules/ipxe_config.template index 2fa31c1bf0..3fdbb2d7b6 100644 --- a/ironic/drivers/modules/ipxe_config.template +++ b/ironic/drivers/modules/ipxe_config.template @@ -7,7 +7,7 @@ goto deploy :deploy imgfree -kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} BOOTIF=${mac} ipa-api-url={{ pxe_options['ipa-api-url'] }} initrd={{ pxe_options.initrd_filename|default("deploy_ramdisk", true) }} coreos.configdrive=0 || goto retry +kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} BOOTIF=${mac} ipa-api-url={{ pxe_options['ipa-api-url'] }} initrd={{ pxe_options.initrd_filename|default("deploy_ramdisk", true) }} || goto retry initrd {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_ari_path }} || goto retry boot diff --git a/ironic/drivers/modules/pxe_config.template b/ironic/drivers/modules/pxe_config.template index 555938eb89..701733b39f 100644 --- a/ironic/drivers/modules/pxe_config.template +++ b/ironic/drivers/modules/pxe_config.template @@ -2,7 +2,7 @@ default deploy label deploy kernel {{ pxe_options.deployment_aki_path }} -append initrd={{ pxe_options.deployment_ari_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} ipa-api-url={{ pxe_options['ipa-api-url'] }} coreos.configdrive=0 +append initrd={{ pxe_options.deployment_ari_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} ipa-api-url={{ pxe_options['ipa-api-url'] }} ipappend 2 diff --git a/ironic/drivers/modules/pxe_grub_config.template b/ironic/drivers/modules/pxe_grub_config.template index b27e757d79..1845f176d7 100644 --- a/ironic/drivers/modules/pxe_grub_config.template +++ b/ironic/drivers/modules/pxe_grub_config.template @@ -3,7 +3,7 @@ set timeout=5 set hidden_timeout_quiet=false menuentry "deploy" { - linuxefi {{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} boot_server={{pxe_options.tftp_server}} ipa-api-url={{ pxe_options['ipa-api-url'] }} coreos.configdrive=0 + linuxefi {{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} boot_server={{pxe_options.tftp_server}} ipa-api-url={{ pxe_options['ipa-api-url'] }} initrdefi {{ pxe_options.deployment_ari_path }} } diff --git a/ironic/tests/unit/drivers/elilo_efi_pxe_config.template b/ironic/tests/unit/drivers/elilo_efi_pxe_config.template deleted file mode 100644 index b760b3046d..0000000000 --- a/ironic/tests/unit/drivers/elilo_efi_pxe_config.template +++ /dev/null @@ -1,16 +0,0 @@ -default=deploy - -image=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel - label=deploy - initrd=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk - append="selinux=0 troubleshoot=0 text test_param ip=%I::%G:%M:%H::on ipa-api-url=http://192.168.122.184:6385 coreos.configdrive=0" - - -image=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/kernel - label=boot_partition - initrd=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ramdisk - append="root={{ ROOT }} ro text test_param ip=%I::%G:%M:%H::on" - -image=chain.c32 - label=boot_whole_disk - append="mbr:{{ DISK_IDENTIFIER }}" diff --git a/ironic/tests/unit/drivers/ipxe_config.template b/ironic/tests/unit/drivers/ipxe_config.template index bb0c63db7f..e3e7c443f9 100644 --- a/ironic/tests/unit/drivers/ipxe_config.template +++ b/ironic/tests/unit/drivers/ipxe_config.template @@ -7,7 +7,7 @@ goto deploy :deploy imgfree -kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk coreos.configdrive=0 || goto retry +kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk || goto retry initrd http://1.2.3.4:1234/deploy_ramdisk || goto retry boot diff --git a/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template b/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template index cc8029f0cf..ce86ceb73a 100644 --- a/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template +++ b/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template @@ -7,7 +7,7 @@ goto deploy :deploy imgfree -kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk coreos.configdrive=0 || goto retry +kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk || goto retry initrd http://1.2.3.4:1234/deploy_ramdisk || goto retry boot diff --git a/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template b/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template index 32a191dbbb..f848646082 100644 --- a/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template +++ b/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template @@ -7,7 +7,7 @@ goto deploy :deploy imgfree -kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk coreos.configdrive=0 || goto retry +kernel http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk || goto retry initrd http://1.2.3.4:1234/deploy_ramdisk || goto retry boot diff --git a/ironic/tests/unit/drivers/ipxe_config_timeout.template b/ironic/tests/unit/drivers/ipxe_config_timeout.template index 82f3efba46..63497be691 100644 --- a/ironic/tests/unit/drivers/ipxe_config_timeout.template +++ b/ironic/tests/unit/drivers/ipxe_config_timeout.template @@ -7,7 +7,7 @@ goto deploy :deploy imgfree -kernel --timeout 120 http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk coreos.configdrive=0 || goto retry +kernel --timeout 120 http://1.2.3.4:1234/deploy_kernel selinux=0 troubleshoot=0 text test_param BOOTIF=${mac} ipa-api-url=http://192.168.122.184:6385 initrd=deploy_ramdisk || goto retry initrd --timeout 120 http://1.2.3.4:1234/deploy_ramdisk || goto retry boot diff --git a/ironic/tests/unit/drivers/modules/test_deploy_utils.py b/ironic/tests/unit/drivers/modules/test_deploy_utils.py index b3029e317e..72e903207f 100644 --- a/ironic/tests/unit/drivers/modules/test_deploy_utils.py +++ b/ironic/tests/unit/drivers/modules/test_deploy_utils.py @@ -1805,7 +1805,6 @@ class AgentMethodsTestCase(db_base.DbTestCase): self.config(api_url='https://api-url', group='conductor') options = utils.build_agent_options(self.node) self.assertEqual('https://api-url', options['ipa-api-url']) - self.assertEqual(0, options['coreos.configdrive']) @mock.patch.object(utils, '_get_ironic_session') def test_build_agent_options_keystone(self, session_mock): @@ -1815,7 +1814,6 @@ class AgentMethodsTestCase(db_base.DbTestCase): session_mock.return_value = sess options = utils.build_agent_options(self.node) self.assertEqual('https://api-url', options['ipa-api-url']) - self.assertEqual(0, options['coreos.configdrive']) def test_direct_deploy_should_convert_raw_image_true(self): cfg.CONF.set_override('force_raw_images', True) diff --git a/ironic/tests/unit/drivers/pxe_config.template b/ironic/tests/unit/drivers/pxe_config.template index 49b738e681..15a4209acc 100644 --- a/ironic/tests/unit/drivers/pxe_config.template +++ b/ironic/tests/unit/drivers/pxe_config.template @@ -2,7 +2,7 @@ default deploy label deploy kernel /tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel -append initrd=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk selinux=0 troubleshoot=0 text test_param ipa-api-url=http://192.168.122.184:6385 coreos.configdrive=0 +append initrd=/tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk selinux=0 troubleshoot=0 text test_param ipa-api-url=http://192.168.122.184:6385 ipappend 2 diff --git a/ironic/tests/unit/drivers/pxe_grub_config.template b/ironic/tests/unit/drivers/pxe_grub_config.template index d4996c2022..15e3635a09 100644 --- a/ironic/tests/unit/drivers/pxe_grub_config.template +++ b/ironic/tests/unit/drivers/pxe_grub_config.template @@ -3,7 +3,7 @@ set timeout=5 set hidden_timeout_quiet=false menuentry "deploy" { - linuxefi /tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel selinux=0 troubleshoot=0 text test_param boot_server=192.0.2.1 ipa-api-url=http://192.168.122.184:6385 coreos.configdrive=0 + linuxefi /tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel selinux=0 troubleshoot=0 text test_param boot_server=192.0.2.1 ipa-api-url=http://192.168.122.184:6385 initrdefi /tftpboot/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk } diff --git a/releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml b/releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml new file mode 100644 index 0000000000..49a0023ad1 --- /dev/null +++ b/releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml @@ -0,0 +1,7 @@ +--- +upgrade: + - | + The explicit support for CoreOS ironic-python-agent images have been + removed. If you use a ramdisk based on CoreOS, you may want to re-add + ``coreos.configdrive=0`` to your PXE templates, see `story 1433812 + `_ for the background.