the syslinux tools are in the syslinux package on
rhel7 and friends, but in rhel8 have moved to
syslinux-nonlinux
Change-Id: Iea74c2be6fbd738f35f178fa189384dd37579277
Apparently, now days system boot chain is tempted to display
fancy things on the console. While enjoyable, in non-text mode
libvirt guest console can't make it to the log file.
This change tries to ensure pure text mode kernel console in
PXE and Redfish booting by disabling any graphics in the VM
and in guest kernel.
Note that it's not only kernel that can control display mode,
but EFI boot loader as well.
For getting on VM's text console in devstack one could use
`virsh console --devname serial1 node-0` or just add `<graphics>`
section to `virsh edit node-0` XML.
Change-Id: I14f78bcef4173eeaf659ee589ca938e2698e3505
Correcting the variable name for virtual bmc instances during
devstack unstack ironic cleanup phase.
Change-Id: Ie35a45e0806f9da07d121900831c6a61e33d23e5
When devstack boots a node over virtual media in BIOS boot mode,
`isolinux.bin` boot loader needs to be present for grilling hybrid
ISO images.
This patch makes devstack pulling necessary packages and configure
ironic accordingly.
Change-Id: I2f4e582aa05fc54610a4c43695124219714368c2
This feature is time-consuming and prone to race conditions. This
changes switches it off by default, leaving it on in two jobs:
the one running on Nova and the standalone one.
Change-Id: I7c50cb12065da05dad4ece0918883748ee4617e0
Extracted the logic to setup the ironic-python-agent-builder
to a separate function that is called before building ithe ramdisk,
this is to avoid errors when deploying locally see [1]
[1] http://paste.openstack.org/show/783890/
Change-Id: I8ce4ac2f1b59fc682feea3a183c7d0e3d075f30d
On restacking devstack, if EFIBOOT image file already exists on the
file system, ironic devstack plugin would not re-upload it to Glance
failing further ISO image build for Redfish virtual media boot.
This change makes Glance upload unconditional.
Also in this patch: fixed UEFI firmware configuration in Redfish
emulator configuration file produced by devstack plugin.
Change-Id: Idf1d2ccc54e1bf60a1df249d0e3fb08fbb98a51c
This patch fixes an exception that occurs when deploying devstack with
the DIB ramdisk.
Change-Id: Ia4499291b6dff1e8c8b6cd1ac544a1e3787ccf83
Story: #2006645
Task: #36881
Also updates the devstack plugin to support pre-built DIB images
and removes the explicit mention of dhcp-all-interfaces element,
which is already a dependency of ironic-python-agent-ramdisk.
Change-Id: I564016528e80c738d6004c47f8df502a7748b311
We seem to be hitting occasional failures to DHCP in time, although
DHCP itself seems working. Try increasing timeout from 30 to 60.
Also enable tracing when building the image, so that this sort of
issues is a bit easier to debug without unpacking the image.
Change-Id: If3f00ba39daf72739802c46c5c6c64cfbb6ab0ae
PXE is inherently unreliable and sometimes times out without an
obvious reason. It happens particularly often in resource constrained
environments, such as the CI. This change allows an operator to
set a timeout, after which the boot is retried again.
The _add_node_filters call had to be refactored to avoid hitting
the complexity limit.
Change-Id: I34a11f52e8e98e5b64f2d21f7190468a9e4b030d
Story: #2005167
Task: #29901
Make the apache log directory configurable, based upon which
operating system this is running on. This is needed as ironic
devstack is broken on Red Hat-related operating systems as a
result.
Change-Id: I22e04d886219755a38b1e895c2c6f9d756535cab
Story: 2006577
Task: 36689
Moves the volume pool from / to /opt for the standalone and multinode
jobs, since on smaller nodes /opt is mounted from a larger ephemeral disk.
Change-Id: Idb4e235fd40ecd9829c3ad8a9dd1224f1c29a12e
The cisco hardware types and interfaces were removed in
Ie12eaf7572ce4d66f6a68025b7fe2d294185ce28. This removes the
last few references to them, and adds a release note about
their removal.
Change-Id: I6d11dda0132d999b2dbf6bbd47cac55336e1d079
Story: 2005033
Task: 29522
Allow ipa kernel/disk images to be specified via file:// designator
so they can be locally hosted in addition to being available over
http.
Change-Id: If3e32f30a7df27113721e15bff9ecaae16bfe8d4
Minor timing changes in an attempt to:
a) Make the logs less noisy
b) Wait a little bit longer for placement
records to be updated.
Change-Id: I4f64a2f5ab2d1696f244f083d5dc387c75cc1175
Changes the value of IRONIC_DIB_RAMDISK_OPTIONS to
'centos7 dhcp-all-interfaces' from 'ubuntu' to resolve
the issue in passing the ironic-python-agent-buildimage-dib
test.
Based on the comments of https://review.opendev.org/#/c/676239/
Change-Id: I92f44370cbd10c192c26cceb1589990f74985e92
Task: 36375
Story: 2005114
The ironic command has bene long deprecated and
we are finally removing it from python-ironicclient.
In order to remove it, we need to remove this reference
to the ironic.bash_completion file which is no longer
present nor necessary.
Change-Id: If2cae16ce7c24258ee720a6b8ac6e9bcdd2589aa
Attempting to devstack on bionic failed with:
Failed to restart libvirt-bin.service: Unit libvirt-bin.service not found.
devstack/lib/ironic was trying to figure out whether our libvirtd
service is called libvirtd or libvirt-bin based on:
- Are we on ubuntu?
- Does /etc/init.d/libvirtd not exist?
if is_ubuntu && [ ! -f /etc/init.d/libvirtd ]; then
libvirt_service_name="libvirt-bin"
But on this bionic, for whatever reason, my libvirtd is at
/usr/sbin/libvirtd.
However, `type libvirtd` succeeds in either case.
So this commit broadens the second part of that check accordingly.
Note, FWIW, that devstack's lib/nova_plugins/functions-libvirt checks
this way:
# Only Xenial is left with libvirt-bin. Everywhere else is libvirtd
if is_ubuntu && [ ${DISTRO} == "xenial" ]; then
LIBVIRT_DAEMON=libvirt-bin
else
LIBVIRT_DAEMON=libvirtd
fi
Change-Id: I94a86a96d5732db60c12399fcaf666f960461e3e
Currently we use writeback caching for disks
on our test vms, however that honors syncs and
IO could become blocked/locked if the sync has
not completed with the double virtualization that
occurs in CI.
In theory, we don't need to worry about the
buffer cache behavior for our test VMs.
Overall, it appears that there is a performance
gain of about 10-15% with making this change because
we're not honoring syncs to not lock-up IO.
Change-Id: Ib09dd7fd41c6b1cbc0e2b707bfc9e4ff8dfa6fad
This patch introduces standard Redfish virtual media boot
support to ironic.
The patch implements basic boot interface features along with
devstack plugin support for virtual media boot. Functionally,
redfish boot interface supports the same set of features as PXE.
Unlike other virtual media boot implementations (e.g. iLo), this
patch does not require user-built deploy/rescue/boot ISO images
for virtual media boot. Instead, ironic will build necessary images
out of common kernel/ramdisk pair (though user needs to provide
ESP image).
Story: 1526753
Task: 10389
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
Add power state change callbacks of an instance to nova by
performing API requests. Whenever there is a change in the
power state of a physical instance (example a "power on"
or "power off" IPMI command is issued or the periodic
``_sync_power_states`` task detects a change in power state)
ironic will create and send a ``power-update`` external event
to nova using which nova will update the power state of the
instance in its database. By conveying the power state changes
to nova, ironic becomes the source of truth thus preventing
nova from forcing wrong power states on the instance during
the nova-ironic periodic sync. It also adds the possibility of
bringing up/down a physical instance through the ironic API
even if it was put down/up through the nova API.
Note that ironic only sends requests to nova if the target
power state is either "power on" or "power off". Other error
states will be ignored. In cases where the power state change
is originally coming from nova, the event will still be
created and sent to nova and on the nova side it will be a
no-op with a debug log saying the node is already powering on/off.
NOTE: Although an exclusive lock (task_manager.upgrade_lock()
method) is used when calling the nova API to send events,
there can still be a race condition if the nova-ironic power sync
happens to happen a nano-second before the power state change
event is received from ironic in which case the nova state will
be forced on the node.
Credit for introducing ksa adapter: Eric Fried <openstack@fried.cc>
Depends-On: https://review.opendev.org/#/c/645611/
Part of blueprint nova-support-instance-power-update
Story: 2004969
Task: 29424
Change-Id: I6d105524e1645d9a40dfeae2850c33cf2d110826