Changes are made to support ironic handling is_smarting port attribute
that was added in this change Ic2ffbd6f1035907ea5a18bda6d2b21e617194195
This change expose is_smartnic port field in REST API, updated API
reference to include is_smartnic field and relevent documentations.
API version updated to 1.53.
Story: #2003346
Change-Id: I89ce54a0c034f2a5f82ff961ab06cfcc6d853bd4
This change introduces the API endpoints for allocation API:
* GET/POST /v1/allocations
* GET/DELETE /v1/allocations/<ID or name>
* GET/DELETE /v1/nodes/<ID or name>/allocation
Change-Id: Idf1a30d1a90b8c626d3b912c92844297e920d68c
Story: #2004341
Task: #28739
Since we use the new conductor group to calculate which conductor an
update_node message should go to, we need to lowercase the new
conductor_group value at the API level, rather than just before saving
the node object.
Change-Id: I5530f8e1c2fdff9008e008cfa0c63edaa04e81d9
Story: 2004947
Task: 29362
By default, Ironic makes persistent changes to the system boot order
at the end of an instance deployment. This may not be desired in
all cases, e.g. when DC policies require to leave the persistent
system boot order unchanged.
While keeping the persistent approach as the default, this patch
proposes to extent the existing 'force_persistent_boot_device'
field in the node's driver_info for (i)PXE in a way that allows
to have all boot device changes to be non-persistent.
Change-Id: If3a19f74fb0dfbcff2cde4cd5a8cc1edf5de3058
Story: #2004846
Task: #29058
Extend Ironic to enable use of Smart NICs to implement
generic networking services for baremetal servers.
Extending the ramdisk, direct, iscsi and ansible deployment Interfaces
to support the Smart NIC use-cases.
For Smart NIC use-case the baremetal node must be powered on and
booted into bios then wait for agent that runs on the Smart NIC to be
alive then do the network changes required.
Task: #26932
Story: #2003346
Change-Id: I00d6f13dd991074e4f45ada4d7cf4ccc0edbc7e1
Make iLO BIOS interface clean steps asynchronous to ensure the
BIOS settings on the node are consistent with the settings stored
in the database. Node goes through the power cycle after the
settings are applied. Once the node reboots, ironic gets the current
settings from the node, caches the settings in the database,
checks for any errors from the status message and marks the clean
step as failed or success accordingly.
Change-Id: I00deaa2f2b68d2a34f8592ea20c36349a87d6c23
Story: #2004066
Task: #27074
This patch provides a mount point which is required by cinder to
attach the volume to the baremetal, when the volume targets are
created for any node.
Story: 2004864
Task: 29107
Change-Id: Id2a2e071026b86a6fd586a998bf865b1ddb960d7
This patch implements the feature of storing informational free-form text
into ironic node, via the "description" field.
Operators can do simple queries on the context of description.
Change-Id: I787fb0df34566aff30dea4c4a3ba0e1ec820d044
Story: 2003089
Task: 23178
In the case of conductor service goes offline, some hardware types
may be not available as well, get_conductor_for is not protected for
such case when querying node with conductor.
This patch adds exception handling and bypasses orphaned nodes.
Change-Id: I381585240057a989ab269ea35ea9b2124527bf8e
Story: 2004834
Task: 29028
Some services (such as telemetry) actually consume the notifications.
If one deploys a service that listens on the same queue as telemetry,
there will be race-conditions with these services and one will not get
the notifications that are expected at points.
To address this, one sets a different topic and consumes from there.
This is not possible with versioned notifications at the moment. And, as
services move towards using them, the same need will arise.
This adds a configuration option to Ironic enabling the configuration
of topics for this notifier.
A similar change was introduced in nova:
https://review.openstack.org/#/c/444947/
Change-Id: Ib75feac0979d0094cb137abb13b0fe0ff4576eee
Story: 2004735
Task: 28788
This change makes ironic building UEFI-only bootable
ISO image (when being asked to build a UEFI-bootable image)
rather than building a hybrid BIOS/UEFI-bootable ISO.
The motivation behind this change is to make node boot more
predicable in the sense that if the user asks for UEFI boot,
the node would either boot over UEFI or fail.
On top of that, the ISO image slims down a tad bit and syslinux
boot loader presence on the conductor machine is not a
requirement any more.
Change-Id: If7828f72724cc7532f97cab758a29a9e8345850e
Story: 1526753
Task: 28368
Node power sync is performed from a periodic task. In that task
all nodes are iterated over and power sync call is performed.
While the power sync call itself if non-blocking relative to
other concurrent I/O tasks, iteration over the nodes seems
sequential meaning that nodes power sync is performed one node
at a time.
If the above observation holds, large-scale settings may never
be able to power sync all their nodes properly, throttling at
walking all active the nodes in 60 second period.
This patch distributes power sync calls over a bunch of green
threads each working on a portion of the nodes to be taken care
of.
Change-Id: I80297c877d9a87d3bd8fc30d0ed65cd443f200b3
Look for boolean and string like booleans in driver_info['ipmi_force_boot_device']
to make setting the option more user friendly / less error prone.
Change-Id: I2917761055db5286183ce265089c19dea98947ad
Story: 2004444
Currently when updating a node we try to acquire the lock on it using
its old database record, including its old driver. This is not correct
when updating a driver, since the current conductor may not have access
to the old driver (and the old driver may no longer be enabled at all).
Since we do not need task.driver at all when updating nodes, this change
stops populating it in update_node.
Change-Id: I510c3bfbd11b01fef05341be2bb04c6bd01bf8ac
Story: #2004741
Task: #28812
Adds transmission of an `ipxe6` tag to neutron which is required
for neutron to appropriately match and supply configuration to
hosts over DHCPv6 when iPXE is in use.
This is because neutron prepends options based upon its
perception of the IP version being used and the detection of
iPXE actively being used varries between IPv4 and IPv6.
Story: 2004502
Task: 28221
Change-Id: If68926fd215f707394e5d6a0af9daa9232216abe
This commit adds functionality to perform out-of-band RAID operations
for ilo5 based HPE Proliant servers. Using this a user can perform
create and delete the RAID configuration from the server.
Co-Authored-By: Paresh Sao <paresh.sao@hpe.com>
Change-Id: Iad0c609e59dca56729967133c6bbcff73b50a51e
Story: 2003349
Task: 24391
We document that this can be disabled by setting the
[pxe]tftp_master_path config to "<None>", but don't
actually support it in code. oslo.config doesn't actually
translate that value to the Python None as we expect.
Allow disabling the cache by setting the config to the empty
string, as in "tftp_master_path=". This doesn't make sense as
a directory to use as a cache anyway, so it shouldn't break anyone.
Change-Id: Icc7d08ae47e0e450a612c922ae3d665c56880262
Story: 2004608
Task: 28506
Allow to pass a pxe_template field in driver_info. If that is
present, it will search for the template file specified there,
instead of checking the per-arch/agent templates.
Change-Id: I436a61ad6a3e688bc6f833f5645c99be6d7e26e7
Story: #2004525
Task: #28264
Although previous XClarity driver passes the unit test, we find that
getting boot order function test fails in the 3rd party CI, which will
throw an exception of "Unsupported boot device". After checking with
the code, we find that a boot device mapping from XClarity to Ironic
recoginzed format is needed.
This patch will fix this getting boot order defect. We have verified
this function in our 3rd CI environment. Also it will fix a minor
in power.py and enhance the unit test.
Change-Id: Ia7ccf986cb6b1c332691c811d32cb41850d4796c
Story: 2004576
Task: 28351
Adds "owner" field on the node object and exposes it for updates
via the API.
Additionally, fixed a couple minor items related to the prior
where we missed updating version numbers in rebases.
Change-Id: Iaaf3db97d21de9b11236cf2d18ffcc3f73f6e50c
Story: #2001814
Task: #12550
Some type of BMCs don't support an IPMI option that disable the
behavior of boot device timeout, which makes them never get booted
from PXE.
This patch extends the fix [1] by adding a configuration option,
which provides the default ipmi behavior.
[1] https://review.openstack.org/#/c/616053
Additionally revising the variable/setting names based upon review
feedback and discussion that took place during the 20181210 weekly
ironic team meeting.
Change-Id: Ie049bbaf45aeab54c1272d1d561c5a6ca00dc34a
Story: 2002977
Task: 22985