Commit Graph

2192 Commits (master)

Author SHA1 Message Date
Zuul f78f872271 Merge "Trivial: attach versions to release series" 2023-09-21 13:29:50 +00:00
Dmitry Tantsur 2bb653a52e Trivial: attach versions to release series
Also fix an incorrect version in the release notes.

Change-Id: If57f34357c03e64188c493f3a1bdc072954c2541
2023-09-19 11:47:24 +02:00
Dmitry Tantsur 6487b95813 Redfish: wait for secure boot state change if it's not immediate
We have discovered hardware that only applies boot mode / secure boot
changes during a reboot. Furthermore, the same hardware cannot update
both at the same time. To err on the safe side, reboot and wait for
the value to change if it's not changed immediately.

Co-Authored-By: Jacob Anders <>
Change-Id: I318940a76be531f453f0f5cf31a59cba16febf57
2023-09-12 18:30:36 +02:00
Julia Kreger 646d452d66 Add service steps and initial docs
Adds service steps on a variety of internal interfaces,
and begins to tie documentation together to provide clarity
on the use and purpose of service steps.

Change-Id: Ifd7241f06648c8d73c1b97fcf08673496f049f45
2023-09-01 20:30:48 +00:00
Zuul 9c6ad7478d Merge "Revamp Ironic dev-quickstart documentation" 2023-08-29 04:11:38 +00:00
Zuul 8be7efdeab Merge "Introduce default kernel/ramdisks by arch" 2023-08-29 04:11:32 +00:00
Bifrost 3c5e05a8a4 Introduce default kernel/ramdisks by arch
Introduce config to allow setting default ramdisks per-architecture.
The hierarchy of the parameters is:
Node config > config by architecture > general config

Change-Id: I95dfece3e8f7bcd3121ac808985cb61997877a51
2023-08-28 17:25:37 +01:00
Jay Faulkner 03b8f4dd11 Revamp Ironic dev-quickstart documentation
This is a significant improvement and update to Ironic contributor
documentation, as an attempt to make it easier for new Ironic
contributors to onboard.

It is not perfect, but it's significantly better than the existing

What this change does:
- Improve dev-quickstart guide, make it easier to find
  devstack configurations.
- Removes information that can bit-rot over time and replaces with
  more generic information.
- Provides an actual working, tested, Ironic+Nova devstack conf

What hasn't been done:
- Testing of Ironic BFV or Multitenant networking devstack confs
- Validation that the local development method still works
- There is a ton more information about how to use these testing
  envs (both bifrost and devstack) which could be added.
- System prerequsities and Python prerequisites under the unit
  tests section has bitrotted considerably; they have not been
  significantly modified and will be fixed in a future commit.

Change-Id: I0cdfe50042fabb6b65633961fc418aff5d6ebfe3
2023-08-23 15:14:47 -07:00
Julia Kreger 2366a4b86e Adds service steps
A huge list of initial work for service steps

* Adds service_step verb
* Adds service_step db/object/API field on the node object for the
* Increments the API version to 1.87 for both changes.
* Increments the RPC API version to 1.57.
* Adds initial testing to facilitate ensurance that supplied steps
  are passed through and executed upon.

Does not:

* Have tests for starting the agent ramdisk, although this is
  relatively boiler plate.
* Have a collection of pre-decorated steps available for immediate

Change-Id: I5b9dd928f24dff7877a4ab8dc7b743058cace994
2023-08-16 06:34:08 -07:00
Julia Kreger 23f4a7d993 Support sha256/sha512 with the ilo firmware upgrade logic
Adds support for SHA256 and SHA512 checksums to be passed
to firmware upgrade steps for the ilo hardware type.

Change-Id: I5455c4bfa4741a35b0ddada37298c897887e6cea
2023-08-07 15:20:14 +00:00
Zuul b769a8199a Merge "Add wait step" 2023-07-28 05:16:26 +00:00
Zuul 96b1718b42 Merge "Enable vendor interfaces to be called as steps" 2023-07-27 17:19:09 +00:00
Zuul 2b9d3638b1 Merge "Document caveats of running with SQLite" 2023-07-26 14:16:58 +00:00
Julia Kreger 8fc8372e74 Add wait step
Adds a wait step to allow for finer grained workflows
and forcing interruptions which may be needed in some
cases with specialized hardware.

Change-Id: Idc338b761ebe35a4635022a324ca5acbf29fc462
2023-07-24 22:42:20 +00:00
Dmitry Tantsur 267e61bbc7 Document caveats of running with SQLite
Change-Id: I5d182814b07a2d50345ee365c56a0f00724f6e47
2023-07-14 12:31:59 +02:00
Dmitry Tantsur f4be664a86 Stop splitting installation docs per distros
The versions only differ in the first paragraph, and the supposedly
common parts actually have different code paths for different distros.

Also be realistic about which distros we support.

Change-Id: Ifcc19a20d42f384300cadf442951739be8682047
2023-07-14 11:38:10 +02:00
Julia Kreger 76c075269d Enable vendor interfaces to be called as steps
Adds the logic and testing to handle vendor interfaces to be able
to be called as steps, as well as adds the ipmitool send_raw
vendor passthru  method to be able to be called as a step.

Change-Id: I741a4173f1d150298008d3190e4c3998402a8b86
2023-07-13 07:40:53 -07:00
Julia Kreger c4e3100d5c Add hold steps
* Updates API version to 1.85 to permit an ``unhold`` verb
* Adds the ``deploy hold`` and ``clean hold`` provision states
  to the internal state machine.
* Adds on documentation on steps to help provide greater clarity
  to Ironic's users on how to utilize steps. It should be noted
  this documentation also includes the power state reserved step
  names from the DPU functionality patch.
* Fixes the state machine diagram. Changes type to PNG as SVG
  rendering is broken due to python libraries utilized for SVG
  generation which do not work on more recent Python versions.

Change-Id: I34f58f4e77e7757b89247fd64f5fcde26f679453
2023-06-30 14:34:26 -07:00
Dmitry Tantsur 0370f5ac97 Migrate the inspector's /continue API
This change creates all necessary parts to processing inspection data:

* New API /v1/continue_inspection

Depending on the API version, either behaves like the inspector's API
or (new version) adds the lookup functionality on top.

The lookup process is migrated from ironic-inspector with minor changes.
It takes MAC addresses, BMC addresses and (optionally) a node UUID and
tries to find a single node in INSPECTWAIT state that satisfies all
of these. Any failure results in HTTP 404.

To make lookup faster, the resolved BMC addresses are cached in advance.

* New RPC continue_inspection

Essentially, checks the provision state again and delegates to the
inspect interface.

* New inspect interface call continue_inspection

The base version does nothing. Since we don't yet have in-band
inspection in Ironic proper, the only actual implementation is added
to the existing "inspector" interface that works by doing a call
to ironic-inspector.

Story: #2010275
Task: #46208
Change-Id: Ia3f5bb9d1845d6b8fab30232a72b5a360a5a56d2
2023-06-07 10:57:08 +02:00
Zuul 97f7177495 Merge "execute on child node support" 2023-06-07 04:04:45 +00:00
Riccardo Pittau c0643e9d05 Be explicit about bugfix branches support lifetime
Also fix new release model link

Change-Id: I1c9b3b1c8481a315199070468298a73936ae93a7
2023-05-31 15:57:38 +02:00
Zuul 32532eeda5 Merge "DPU modeling - parent_node DB/Model/API" 2023-05-24 23:18:33 +00:00
Julia Kreger 013ac0cb41 execute on child node support
Allows steps to be executed on child nodes, and adds
the reserved power_on, power_off, and reboot step names.

Change-Id: I4673214d2ed066aa8b95a35513b144668ade3e2b
2023-05-24 15:42:46 -07:00
Julia Kreger 3f5e25e182 DPU modeling - parent_node DB/Model/API
Adds the parent node support and tests in one change
including all DB/Model/API changes along with RBAC and
basic API tests.

* Updates the API version to 1.83
* Adds parent_node and related index to the nodes table.
* Adds new API parameters to list by parent node relationship.

Change-Id: I8d64fee7105718199986db4994e13352d639f04f
2023-05-23 18:23:25 +00:00
Jay Faulkner 65b8895e8a Update docs: Ironic uses launchpad now
Ironic switched to launchpad. Ensure our docs point contributors to the
correct location.

Change-Id: Ifa75c75741dd4a584bc2cb972eb4726c4c48d064
2023-05-17 15:42:41 -07:00
Zuul 832275015a Merge "Support longer checksums for redfish firmware upgrade" 2023-05-09 23:45:15 +00:00
Zuul 1d0818cba2 Merge "Remove use of nomodeset by default" 2023-05-09 06:29:42 +00:00
Julia Kreger 03cd9788e6 Support longer checksums for redfish firmware upgrade
Previoulsy only SHA1 hashes were supported, now we support
SHA256 and SHA512 by length.

Change-Id: Iddb196faca4008837595a3d0923f55d0e9d2aea5
2023-05-03 07:34:37 -07:00
Zuul fbd1350229 Merge "Configure docs: we no longer use storyboard" 2023-04-28 15:45:32 +00:00
Zuul c42c2efe95 Merge "Remove all references to the "cpus" property" 2023-04-27 23:10:00 +00:00
Julia Kreger f2605e9281 Remove use of nomodeset by default
The troubleshooting kernel command line option nomodeset
unfortunately changes the way framebuffer interactions work
with graphics devices which in some cases can result in kernel
memory to be used for graphics updates. When this happens on
some specific hardware common in rack mount servers with baseboard
management controllers, this can cause the memory bus to become
locked for a brief time while the graphics update is occuring.

This locked memory bus means disk IO can become blocked,
and network cards can overflow their buffers resulting in
packet loss on top of the latency incurred by the graphics
update executing.

As such, we've removed the nomodeset option from default usage and
added a note describing its removal to the documentation along
with a release note.

Change-Id: I9084d88c3ec6f13bd64b8707892758fa87dd7f86
2023-04-26 07:34:29 -07:00
Jay Faulkner c7b8236ab5 Configure docs: we no longer use storyboard
Change-Id: I8a5221b7d8a44d73510efb9ad6a5f16d75a270f5
2023-04-25 09:11:21 -07:00
Dmitry Tantsur cc9fa85260 Remove outdated API version information from the enrollment docs
Change-Id: I846ce901137bede05543a40e4d91930c4fddad41
Closes-Bug: #1753435
2023-04-04 09:58:03 +02:00
Dmitry Tantsur 3e21560bf7 Remove all references to the "cpus" property
Unused by Nova and unlike memory_mb/local_gb also by Ironic (actually,
our usage of local_gb is worth double-checking as well, but at the very
least it's referenced by inspection implementations).

Change-Id: Ie8b0d9f58f4dcd102c183c30ae7f5acf68a5e4c3
2023-03-28 11:53:26 +02:00
Zuul 041e242e70 Merge "Document [fake] delay config values" 2023-03-14 18:02:40 +00:00
Dmitry Tantsur f00da959ea Do not recalculate checksum if disk_format is not changed
Even if a glance image is raw, we still recalculate the checksum after
"converting" it to raw. This process may take exceptionally long.

Change-Id: Id93d518b8d2b8064ff901f1a0452abd825e366c0
2023-03-07 11:57:23 +01:00
Zuul 75c05be8a7 Merge "Fix expired links" 2023-02-28 15:28:39 +00:00
Steve Baker b41d5d5145 Document [fake] delay config values
This feature was added in the previous commit

Change-Id: I30100cd3b2702bf8bb614d45c0f64712656ec15e
2023-02-28 15:07:05 +13:00
Julia Kreger 82b8ec7a39 Get conductor metric data
This change adds the capability for the ironic-conductor
and standalone service process to transmit timer and counter
metrics to the message bus notifier which may be consumed by
a ceilometer, ironic-prometheus-exporter, or other consumer of
metrics event data on to the message bus.

This functionality is not presently supported on dedicated API
services such as those running as an ``ironic-api`` application
process, or Ironic WSGI application. This is due to the lack of
an internal trigger mechanism to transmit the data in a metrics
update to the message bus and/or notifier plugin.

This change requires ironic-lib 5.4.0 to collect and ship metrics via
the message bus.

Change-Id: If6941f970241a22d96e06d88365f76edc4683364
2023-02-23 11:39:07 -08:00
renliang17 f2ad1b8a49 Fix expired links
update the address for

Change-Id: I7c1ea261b44e2ff7f399942796e54a9277a9b1d5
2023-02-21 07:53:42 +00:00
Zuul 8d2d0bfc8b Merge "Minor spelling/grammar fixes for release docs" 2023-02-15 19:27:46 +00:00
Zuul 577f46cfc4 Merge "API support for CRUD node.shard" 2023-02-14 00:27:56 +00:00
Zuul 514d4c6bd8 Merge "[DOC] Set cleaning requirement with retirement" 2023-02-13 20:46:07 +00:00
Jay Faulkner 8e34d622af API support for CRUD node.shard
- Basic support and testing for CRUD for node.shard.
- Policy checking for update node.shard.
- New API endpoint: GET /v1/shards
- Policy checking for GET /v1/shards
- Support for querying for nodes in a list of shards

Story: 2010378
Task: 46624
Change-Id: I385594339028c20cfc83fdcc4cbbec107efdacff
2023-02-13 11:46:21 -08:00
Zuul c9c595f235 Merge "Add `service` role RBAC policy support" 2023-01-31 21:54:19 +00:00
Julia Kreger 6ea38a47c5 [DOC] Set cleaning requirement with retirement
Per discussion in IRC, the retirement documentation sets forth
an understanding that sensitive data will be removed from the
baremetal node, however this is performed through cleaning which
inherently sets forth a requirement in automated cleaning.

Explicitly note, and provide options should an operator wish
to utilize the feature.

Change-Id: I6755433b97cacd6ebf6a8f7eb5b404697e0a4349
2023-01-27 10:08:52 -08:00
Jay Faulkner 5b56cbe8c3 Minor spelling/grammar fixes for release docs
Fix spelling, make Ironic capitalized throughout.

Change-Id: Ia689954279034d21c60dea4bca73ee5b1bb41d81
2023-01-26 11:32:35 -08:00
Zuul fe2d08d3de Merge "Clarify release docs: bugfix releases optional" 2023-01-26 16:28:00 +00:00
Jay Faulkner 38777e5030 Clarify release docs: bugfix releases optional
Bugfix releases are optional in practice; document that truth in
our release documents.

Change-Id: Ie24e959fdb338fafeafdf0e064eede273f2011f4
2023-01-24 16:13:34 +00:00
Julia Kreger 8604a799aa Docs: Troubleshooting: how to exit clean failed
I got pinged with some questions by an operator who had
issues attempting to exit cleaning. In the discussion,
it was realized we lack basic troubleshooting guidance,
which led them to try everything but the command they needed.

As such, adding some guidance in an attempt to help operators
navigate these sorts of issues moving forward.

Change-Id: Ia563f5e50bbcc789ccc768bef5800a64b38ff3d7
2023-01-20 06:22:58 -08:00