Merge "Remove support for CoreOS images"
This commit is contained in:
commit
0ea2aa07cb
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
==========
|
||||
|
||||
|
@ -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 <https://docs.openstack.org/ironic-python-agent/latest/install/index.html#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``.
|
||||
|
@ -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 <https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz>`_
|
||||
* `CoreOS deploy ramdisk <https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz>`_
|
||||
.. 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/
|
||||
|
@ -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 }}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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 }}
|
||||
}
|
||||
|
||||
|
@ -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 }}"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
7
releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml
Normal file
7
releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml
Normal file
@ -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
|
||||
<https://storyboard.openstack.org/#!/story/1433812>`_ for the background.
|
Loading…
Reference in New Issue
Block a user