This patch grants the possibility to change the ansible python
interpreter used on remote managed machines as per-node
driver_info option.
Follw-up of https://review.openstack.org/641376
Change-Id: Ic1a994970a5aef5bbbbaaa747818e7ac402912ad
Story: 2005159
Task: 29915
teach the ipmitool driver about _get_ipmitool_args and use that in all
cases that we want to build an ipmitool command line. this solves
the problem that the serial console drivers were failing to honor the
ipmi_port setting in driver_info, while it was being correctly used
for power state, etc.
Change-Id: Ifbf6a92c2305567985cfbc41dbf76a076ecb8a7b
Story: 2005138
Task: 29826
This parameter makes no sense for them and is actually ignored after
validation. This change makes it optional (still allowed for backward
compatibility). Also cleanly separate validation code for partition and
whole-disk images.
Change-Id: I98da7d54cc6dd158d415e83c61659badc83fbeda
Story: #2005165
Task: #29895
This patch adds the option to configure the python interpreter
that is used when deploying machines using the ansible deploy
interface.
Also set the default interpreter for tinyipa image with
ansible deploy interface to /usr/bin/python3 on devstack
and marks ironic-standalone job as voting again.
Change-Id: I8eb58fb00980c9e8946e3b3ef77611a9f5212668
Story: #2005159
Task: #29877
Extend the API with the ability to build config drives from meta_data,
network_data and user_data, where meta_data and network_data are JSON
objects, and user_data is either a JSON object, a JSON array or
raw contents as a string.
This change uses openstacksdk (which is already an indirect dependency)
for building config drives.
Change-Id: Ie1f399a4cb6d4fe5afec79341d3bccc0f81204b2
Story: #2005083
Task: #29663
This change contains two fixes for the same issue:
* Do not pass an instance of ImageRefValidationFailed as a message
to an exception constructor.
* Make sure that IronicException.__str__ always returns an str,
even when a non-string is passed as the first argument to __init__.
Change-Id: I96edb28955e64915e9d6a481634857fd27690555
Story: #2003682
Task: #26206
Adds deploy_templates REST API endpoints for retrieving, creating,
updating and deleting deployment templates. Also adds notification
objects for deploy templates.
Bumps the minimum WSME requirement to 0.9.3, since the lower constraints
job was failing with a 500 error when sending data in an unexpected
format to the POST /deploy_templates API.
Change-Id: I0e8c97e600f9b1080c8bdec790e5710e7a92d016
Story: 1722275
Task: 28677
Adds a check for compatibility of the object versions (in the DB)
with the release of ironic. This check is used by the
'ironic-status upgrade check' command.
The ironic-status command is added to devstack and grenade (when
upgrading).
Change-Id: I2043dc01856106d50356637db327a2817db90366
Story: 2004990
Task: 29459
Socat as configured would exit on client disconnect. Since there was
no active process monitoring, the process would (a) become a zombie,
and (b) would not restart, which would disable console access.
This commits adds the fork,max-children=1 parametesr to the socat
call, which makes socat persistent until it is explicitly killed.
Change-Id: I612cd9bca403b7a77ad3e671c1fdadd55353d5f7
Story: 2005024
Task: 29503
Due to a lack of operating third party CI and a lack
of maintenance of the drivers, the cisco drivers are
being deprecated by the ironic community.
More information can be found on the mailing list[0].
[0]: http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002460.html
Change-Id: I3e7ee9728fba2bf6a779adfb5fa0ddf1fb369c49
Task: 29521
Story: 2005033
This change addresses a few nits pointed out in the Gerrit
review (Change-Id: Idf912ff2146434b666fdb4250dc1ecad39bc5a04).
Change-Id: I8668b02a2f46427567526189caa2040fc1e3b402
Story: 1526753
Task: 28098
Using AMQP-based RPC can be an overkill in case of ironic, especially
when used standalone. This change allows using a built-in JSON RPC
implementation instead.
This implementation does not currently support the object indirection
API, which does not seem to be used anywhere anyway.
The standalone and API test jobs are changed to use JSON RPC.
Story: #2004874
Task: #29141
Change-Id: I7cc95935d6bdae43fab5dfbd544c8e6d65fcc38d
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
When ironic builds UEFI-bootable ISO image, it extracts
EFI system partition image (`efiboot.img`) from the
`deploy_iso` ISO image.
This change allows supplying EFI system partition image to
the ISO image building routines in form of a local file or
UUID or URI reference.
The motivation behind this change is to make UEFI-bootable image
building process more efficient and functional. This change is
thought of as a prerequisite for the upcoming Redfish-based
virtual media boot feature.
Story: 1526753
Task: 28098
Change-Id: Idf912ff2146434b666fdb4250dc1ecad39bc5a04
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