637 Commits

Author SHA1 Message Date
Iury Gregory Melo Ferreira
b869b46c63 Drop python 2.7 support and testing
OpenStack is dropping the py2.7 support in ussuri cycle.

Ironic is ready with python 3 and ok to drop the
python 2.7 support.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal - https://review.opendev.org/#/c/691178/

Change-Id: I3cc36d79ffabf31607d503dada9e7512c639647c
2019-11-22 14:06:45 +01:00
Zuul
516f04caf7 Merge "Don't install syslinux-nonlinux on rhel7" 2019-11-21 19:35:54 +00:00
michaeltchapman
2231a93444 Don't install syslinux-nonlinux on rhel7
the syslinux tools are in the syslinux package on
rhel7 and friends, but in rhel8 have moved to
syslinux-nonlinux

Change-Id: Iea74c2be6fbd738f35f178fa189384dd37579277
2019-11-21 01:22:37 +11:00
Zuul
306aaccca6 Merge "Ensure text-only console in devstack" 2019-11-20 13:22:37 +00:00
Zuul
0ee99def0b Merge "Ensure isolinux.bin is present and configured in devstack" 2019-11-20 05:06:40 +00:00
Ilya Etingof
c7a42bdbff Ensure text-only console in devstack
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
2019-11-19 16:36:21 +01:00
Riccardo Pittau
f8c4f7b1e4 Fix variable name in cleanup_baremetal_basic_ops func
Correcting the variable name for virtual bmc instances during
devstack unstack ironic cleanup phase.

Change-Id: Ie35a45e0806f9da07d121900831c6a61e33d23e5
2019-11-13 18:06:01 +01:00
Ilya Etingof
1e25f60fd3 Ensure isolinux.bin is present and configured in devstack
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
2019-11-11 15:53:49 +01:00
Dmitry Tantsur
a2472c1518 CI: limit rescue testing to only two jobs
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
2019-10-22 17:20:51 +02:00
Zuul
6a054eb692 Merge "Fix EFIBOOT image upload in devstack" 2019-10-18 10:20:42 +00:00
Zuul
270efc1443 Merge "Change MTU logic to allow for lower MTUs automatically" 2019-10-18 02:35:07 +00:00
Iury Gregory Melo Ferreira
8dc0a96414 Setup ipa-builder before building ramdisk
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
2019-10-15 15:39:20 +02:00
Ilya Etingof
e339c30a57 Fix EFIBOOT image upload in devstack
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
2019-10-14 19:29:10 +02:00
Julia Kreger
cf074202e5 Change MTU logic to allow for lower MTUs automatically
Change-Id: I40d357e716b589585493824cfd963fd5f579bd81
2019-10-11 10:07:50 -07:00
Zuul
069f964f59 Merge "enable_python3_package should not be necessary anymore" 2019-10-10 22:40:19 +00:00
Zuul
7c9bbb61ba Merge "Fix devstack installation failure" 2019-10-04 18:36:13 +00:00
Zuul
b6211b255d Merge "Use correct function to stop service" 2019-10-04 12:41:04 +00:00
Iury Gregory Melo Ferreira
a5297da941 Use correct function to stop service
DevStack provides a function to stop services[1],
the `stop_redfish` function wasn't using this one.

[1] https://opendev.org/openstack/devstack/src/branch/master/functions-common#L2252

Change-Id: I9e7be1d3ade0d2743893de6565e5dc427d5e1f71
2019-10-03 11:15:49 +02:00
Christopher Dearborn
dab47f9ce1 Fix devstack installation failure
This patch fixes an exception that occurs when deploying devstack with
the DIB ramdisk.

Change-Id: Ia4499291b6dff1e8c8b6cd1ac544a1e3787ccf83
Story: #2006645
Task: #36881
2019-10-01 19:29:40 -04:00
Dmitry Tantsur
78e763c61b Add a CI job with a DIB-built ramdisk
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
2019-09-30 20:14:19 +02:00
Riccardo Pittau
e11285c6b2 enable_python3_package should not be necessary anymore
Removing option enable_python3_package as it should not
be needed anymore.

Change-Id: I103ba68449616ca2a8609d16bee9aa89ab5f3bc7
2019-09-26 16:04:00 +02:00
Dmitry Tantsur
de85baaa95 Run DIB with tracing enabled and increase the DHCP timeout
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
2019-09-25 16:50:58 +02:00
Zuul
0450c4f2fd Merge "Allow retrying PXE boot if it takes too long" 2019-09-23 12:58:26 +00:00
Zuul
bd835b671b Merge "Devstack: Fix iPXE apache log location bug" 2019-09-21 18:24:58 +00:00
Dmitry Tantsur
3f3508f0d0 devstack: wait for conductor to start and register itself
Change-Id: I5e026754ed5aa6fb0ffaff086cda0bfa0aca2211
2019-09-20 16:15:55 +02:00
Dmitry Tantsur
b2834e6661 Allow retrying PXE boot if it takes too long
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
2019-09-20 15:24:28 +02:00
Zuul
a2b05332f2 Merge "CI: move libvirt images to /opt for standalone and multinode jobs" 2019-09-20 03:06:29 +00:00
Michael Davies
c9349c194a Devstack: Fix iPXE apache log location bug
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
2019-09-20 06:16:30 +09:30
Zuul
0ea2aa07cb Merge "Remove support for CoreOS images" 2019-09-18 07:59:29 +00:00
Zuul
8af2e2c86b Merge "Remove cisco references and add release note" 2019-09-17 21:19:26 +00:00
Dmitry Tantsur
625c71d48d CI: move libvirt images to /opt for standalone and multinode jobs
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
2019-09-16 18:57:22 +02:00
Ruby Loo
7c5839064f Remove cisco references and add release note
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
2019-09-13 19:58:36 +00:00
Dmitry Tantsur
cbeb9cc79f Remove support for CoreOS images
Also remove the remaining elilo test template instead of updating it.

Change-Id: I79a49837f4d0dd6a432895e8997158a51feb99c3
2019-09-09 15:59:34 +02:00
Dmitry Tantsur
7a0f8698a1 devstack: save iPXE httpd logs
Change-Id: I3ad5ee77a2e2e8613316b1e935256d5ba0394420
2019-09-04 13:16:12 +02:00
Zuul
3c9f2a834e Merge "Adding file uri support for ipa image location" 2019-08-29 01:14:45 +00:00
Michael Davies
b560bade60 Adding file uri support for ipa image location
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
2019-08-27 15:33:29 +09:30
Julia Kreger
dd02a21633 Adjust placement query for reserved nodes
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
2019-08-26 16:56:50 -04:00
nishagbkar
a96f926c24 Adds dhcp-all-interfaces element
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
2019-08-25 23:00:32 +05:30
Zuul
e518bebe03 Merge "Support power state change callbacks to nova using ksa_adapter" 2019-08-24 02:20:13 +00:00
Zuul
cfc13b826f Merge "Remove ironic command bash completion" 2019-08-20 21:45:04 +00:00
Zuul
a447a10b12 Merge "Move to unsafe caching" 2019-08-20 11:23:35 +00:00
Zuul
4321f9c07b Merge "devstack: Fix libvirtd/libvirt-bin detection" 2019-08-19 23:15:39 +00:00
Julia Kreger
4b5d254741 Remove ironic command bash completion
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
2019-08-19 07:43:08 -04:00
Eric Fried
c6b5ebf35f devstack: Fix libvirtd/libvirt-bin detection
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
2019-08-16 15:11:04 -05:00
Julia Kreger
afa611c4e5 Move to unsafe caching
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
2019-08-16 14:56:32 +00:00
Julia Kreger
e9fa1e31ff Install sushy if redfish is a hardware type
Change-Id: I2b8750835f87d49e5b51c156f18a5c12d6d9884a
2019-08-15 12:07:57 -04:00
Zuul
4564aa9f19 Merge "Add Redfish Virtual Media Boot support" 2019-08-15 03:30:02 +00:00
Zuul
95a140a54c Merge "Enable testing software RAID in the standalone job" 2019-08-14 17:14:15 +00:00
Ilya Etingof
9fab96fc37 Add Redfish Virtual Media Boot support
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
2019-08-14 14:19:03 +02:00
Surya Seetharaman
d693d4c06c Support power state change callbacks to nova using ksa_adapter
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
2019-08-12 19:29:57 +02:00