2216 Commits

Author SHA1 Message Date
Zuul
22f0a206bb Merge "Fix *_by_arch documentation and un-deprecate the options without it" 2023-11-30 20:23:15 +00:00
Zuul
ce05c68302 Merge "Add missing compatibility between idrac and redfish firmware" 2023-11-28 21:30:49 +00:00
Zuul
922b904da8 Merge "Deprecate configuration molds" 2023-11-28 19:55:23 +00:00
Dmitry Tantsur
6e10ad9ad7
Add missing compatibility between idrac and redfish firmware
Change-Id: I3026a5c69930825ea2b88587e62b36e8824fa91e
2023-11-28 18:56:56 +01:00
Zuul
28b3f56b2c Merge "implement basic-auth support for user image download process" 2023-11-28 16:05:52 +00:00
Zuul
7f318bc68f Merge "Multiple driver related deprecations" 2023-11-27 19:01:18 +00:00
Julia Kreger
5db871ead6 Deprecate configuration molds
Per the consensus during the 2024.1 PTG, configuration molds
are being deprecated in favor of a to be developed in the future
step templating mechanism.

Change-Id: Ieab94972e89ca9cded7fae225191bd63d9311581
2023-11-27 09:21:38 -08:00
Dmitry Tantsur
203660a0be
Fix *_by_arch documentation and un-deprecate the options without it
First, the *_by_arch options are not a replacement for plain options:
the cpu_arch property is neither required not standardized. This is why
older options with *_by_arch equivalents are not deprecated.

Second, the example in the documentation is wrong: oslo.config does not
use Python dictionaries. Which makes me suspect that the feature has
never been properly tested (indeed, it's not used in the devstack CI,
and Bifrost uses the older options).

Change-Id: If1e633930909ce9d80e14f3ec3daa0bf8d48b7f0
2023-11-27 18:12:58 +01:00
Zuul
281cebedd6 Merge "Document new bug deputy role for Ironic" 2023-11-24 08:50:08 +00:00
Julia Kreger
6ac1308050 Multiple driver related deprecations
An outcome of the Ironic 2024.1 PTG was that we would go ahead and
deprecate the ibmc, xclarity, and the wsman interfaces of the idrac
hardware type.

The forward path is Redfish, as evidenced by the idrac hardware
type having both wsman and redfish based interfaces available
for users to choose from.

These changes are being made by the Ironic team due to a lack of
recent upstream contact with any of the related driver maintainers.

Change-Id: Ia4aa99f4987570426bb155af8f437c9ba6013837
2023-11-20 10:46:56 -08:00
Adam Rozman
3ea4bb234c implement basic-auth support for user image download process
This feature was proposed in https://bugs.launchpad.net/ironic-python-agent/+bug/2021947

Change-Id: I70733fbf6b06c4e99888c6c38212e578c65ef92f
Signed-off-by: Adam Rozman <adam.rozman@est.tech>
2023-11-13 15:37:27 +02:00
Steve Baker
81acd5df24 Implement drain shutdown support
Sending signal ``SIGUSR2`` to a conductor process will now trigger a
drain shutdown. This is similar to a ``SIGTERM`` graceful shutdown but
the timeout is determined by ``[DEFAULT]drain_shutdown_timeout`` which
defaults to ``1800`` seconds. This is enough time for running tasks on
existing reserved nodes to either complete or reach their own failure
timeout.

During the drain period the conductor needs to be removed from the hash
ring to prevent new tasks from starting. Other conductors also need to
not fail reserved nodes on the draining conductor which would appear to
be orphaned.  This is achieved by running the conductor keepalive
heartbeat for this period, but setting the ``online`` state to
``False``.

When this feature was proposed, SIGINT was suggested as the signal to
use to trigger a drain shutdown. However this is already used by
oslo_service fast exit[1] so using this for drain would be a change in
existing behaviour.

[1] https://opendev.org/openstack/oslo.service/src/branch/master/oslo_service/service.py#L340

Change-Id: I777898f5a14844c9ac9967168f33d55c4f97dfb9
2023-11-13 10:38:18 +13:00
Zuul
ff4e836c55 Merge "Add the setting of memcached servers to keystone_authtoken" 2023-11-12 20:14:50 +00:00
Jay Faulkner
1b55e4b4d8 Document new bug deputy role for Ironic
Attempt to create new bug deputy role; because triaging bugs is
important!

Change-Id: Ie11ec93a0f3a3a22d7ffb08c90107522ca1a0a7e
2023-11-08 13:46:50 -08:00
Zuul
a2085aa1a6 Merge "Update devstack guide for image id; network always needed" 2023-11-01 15:11:04 +00:00
Jay Faulkner
f6b4ad833e Remove outdated pysnmp reference
We don't use pysnmp anymore, and we likely won't update this doc
in the future if libraries change again.

Change-Id: If3a3bf02167f187a0e4f8f0d20a77621b5def3eb
2023-10-30 17:05:00 +00:00
Jay Faulkner
8154c0a9f7 Update devstack guide for image id; network always needed
DEFAULT_IMAGE_NAME no longer exists in devstack; also our config
now always leads to multiple networks being created, so remove
the fork in the instructions.

Change-Id: I1b3e134c4d5a9633028af367e89ecc44699561cb
2023-10-27 14:03:50 -07:00
Taketani Ryo
679176ab56 Add the setting of memcached servers to keystone_authtoken
In-process token cache is deprecated since 4.2.0 release
and may be removed. Add the setting of memcache for
the auth_token token cache.

Change-Id: I23ad1d9fb1b33160452ab353972fa1274cde363d
2023-10-16 09:25:17 +09:00
Zuul
b58f6d394e Merge "Enable OVN CI" 2023-10-10 16:01:15 +00:00
Zuul
a2917c7c90 Merge "[DOC] Add a little more clarity regarding parent/child nodes" 2023-10-06 15:46:55 +00:00
Julia Kreger
3f77091c63 Enable OVN CI
Adds basic testing for PXE/iPXE boot secenarios where the OVN
DHCP service is used instead of dnsmasq.

Also adds a release note and documentation to cover the details
and caveats of using ovn as we have discovered through this process.

Change-Id: I28cd20a7f271220d8ca335895ca9e302452fd069
2023-10-03 14:24:34 +00:00
Zuul
7520fe8093 Merge "Support port name: API" 2023-10-03 05:10:14 +00:00
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 <janders@redhat.com>
Change-Id: I318940a76be531f453f0f5cf31a59cba16febf57
2023-09-12 18:30:36 +02:00
Kaifeng Wang
8db7220bae Support port name: API
This patch implements API changes for port name support.

Change-Id: I192ae52847087f7b43a7204ec6ee9e299c305eb5
Story: 2003091
Task: 23180
2023-09-12 14:34:23 +00:00
Julia Kreger
ca5be6338d [DOC] Add a little more clarity regarding parent/child nodes
Change-Id: I42205af77484bc4679fc0f8c579b3b980c00ec89
2023-09-07 12:52:23 -07: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
documentation.

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
  status.
* 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
  consumption.

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.

Depends-On: https://review.opendev.org/c/openstack/ironic/+/883967
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