11347 Commits

Author SHA1 Message Date
Dmitry Tantsur
abfe383cc3 Fix deployment when executing a command fails after the command starts
If the agent accepts a command, but is unable to reply to Ironic (which
sporadically happens before of the eventlet's TLS implementation), we
currently retry the request and fail because the command is already
executing. Ironic now detects this situation by checking the list of
executing commands after receiving a connection error. If the requested
command is last one, we assume that the command request succeeded.

Ideally, we should pass a request ID to IPA and then compare it. Such
a change would affect the API contract between the agent and Ironic
and thus would not be backportable.

Change-Id: I2ea21c9ec440fa7ddf8578cf7b34d6d0ebbb5dc8
2021-05-07 17:50:06 +02:00
Zuul
2e5e2e5eb5 Merge "Provide an option to not cache bootable iso ramdisks" 2021-05-05 20:56:26 +00:00
Zuul
270792377d Merge "Bye-bye iSCSI deploy, you served us well" 2021-05-05 13:12:32 +00:00
Zuul
21778d29f4 Merge "Update refarch with information about image_download_source" 2021-05-05 13:12:14 +00:00
Zuul
462969c68f Merge "Do not mask configdrive when executing in-band deploy steps" 2021-05-05 13:12:00 +00:00
Zuul
b2449bf2c4 Merge "Inherit InvalidImageRef from InvalidParameterValue" 2021-05-05 12:21:01 +00:00
Riccardo Pittau
4874f3c44e Provide an option to not cache bootable iso ramdisks
The behavior when a bootable iso is provided behind an http server is
to download and serve the image from the conductor; the image is
removed only when the node is undeployed.
In certain cases, for example on large deployments, this could cause
undesired behaviors, like the conductor nodes running out of disk storage.
We provide an option to avoid this event directly using the original url of
the bootable iso that is then served directly by the external http server
where it is hosted.

Change-Id: I6ecbe8ae4c775f5a39b68ff698bde655795e5db7
2021-05-05 14:14:35 +02:00
Dmitry Tantsur
47398edd3c Inherit InvalidImageRef from InvalidParameterValue
InvalidImageRef is a kind of InvalidParameterValue and can happen during
validation, causing a traceback now.

Change-Id: I5f10fe7240e74d337f991bbd1a5220cc4e713de7
2021-05-04 17:32:54 +02:00
Dmitry Tantsur
929907d684 Bye-bye iSCSI deploy, you served us well
The iSCSI deploy was very easy to start with, but it has since become
apparently that it suffers from scalability and maintenance issues.
It was deprecated in the Victoria cycle and can now be removed.

Hide the guide to upgrade to hardware types since it's very outdated.

I had to remove the iBMC diagram since my SVG-fu is not enough to fix it.

Change-Id: I2cd6bf7b27fe0be2c08104b0cc37654b506b2e62
2021-05-04 14:28:25 +02:00
Zuul
c5cf36d195 Merge "Clean up deprecated features of the agent deploy" 2021-05-04 09:57:29 +00:00
Zuul
cea29d5215 Merge "Update basic local.conf for quickstart" 2021-05-04 05:41:38 +00:00
Dmitry Tantsur
e79f163837 Update refarch with information about image_download_source
Change-Id: Ia06b01e89d79bf0f65d95dd0c20e91b456b8acae
2021-05-03 17:40:58 +02:00
Dmitry Tantsur
bad281cf16 Clean up deprecated features of the agent deploy
Removes support for non-decomposable deploy steps.
Removes support for pre-Wallaby agents.

Change-Id: I7bb1e58ecbcb1130e64150f26aa5bd347a24f7d5
2021-05-03 16:59:36 +02:00
Zuul
83b412cbdb Merge "Deploy interface that fully relies on custom deploy steps" 2021-05-03 11:27:18 +00:00
Dmitry Tantsur
a7f4b4a21c Stop testing the iscsi deploy interface
Change-Id: If876d5bbb7e18f293673d56912ecab3170fe5dfb
2021-04-30 15:54:23 +02:00
Dmitry Tantsur
e85a36fe36 Deploy interface that fully relies on custom deploy steps
This change adds a new deploy-interface custom-agent that is essentially
the direct deploy without the write_image step and without bootloader
handling. It's targeted at deployments that need to write the image
differently, while keeping all other aspects the same.

The existing AgentDeploy becomes a subclass of the new CustomAgentDeploy
class, serving as a convenient base class for downstream deploy
interfaces that use IPA.

Change-Id: Ie126ce677c79f102e382305650bddb7f09834483
Story: #2008719
Task: #42059
2021-04-30 14:38:16 +02:00
Dmitry Tantsur
d97f0fb5ec Do not mask configdrive when executing in-band deploy steps
The agent needs to use configdrive, and we do send it over the same
channel when running write_image. There is no point in preventing custom
deploy steps from accessing it.

Change-Id: I93d3966b2c6af1f60bfbb39b3a07056308c6866c
2021-04-29 13:54:55 +02:00
Zuul
193d2e65f1 Merge "Process in-band deploy steps on fast-track" 2021-04-28 15:52:22 +00:00
Zuul
888279c802 Merge "Docs: dhcp-less works with Glean 1.19.0" 2021-04-28 11:27:09 +00:00
Zuul
789ac329e4 Merge "Remove a pause before cleaning when fast-tracking" 2021-04-27 12:02:22 +00:00
Dmitry Tantsur
7ac60fb157 Docs: dhcp-less works with Glean 1.19.0
Change-Id: I46be8e000eba520e14fa9541ee53466ec10aa9a4
2021-04-27 10:47:18 +02:00
Zuul
0282c05de5 Merge "Follow up to add iDRAC management via Redfish" 2021-04-26 16:09:47 +00:00
Zuul
e50a0ca6a6 Merge "Remove temporary cleaning information on starting cleaning" 2021-04-23 21:23:21 +00:00
Zuul
9c9e38f9b9 Merge "Fix fast track with redfish-virtual-media" 2021-04-23 12:07:38 +00:00
Dhuldev Valekar
266be4eb4c Follow up to add iDRAC management via Redfish
Add unit tests to redfish utils method wait_until_get_system_ready.

Followup to change: Iad69c8d7cf3a373f5cfcc619a479a106efa2e4d4

Change-Id: I334d6d5d7a35557a57ba118bed0a6beedba934d3
2021-04-23 04:48:24 -05:00
Dmitry Tantsur
f4a7002023 Remove temporary cleaning information on starting cleaning
Currently we only remove the URL, which may leave a stale token.

Change-Id: I9ff2d726cb75317fe09bd43342541db0e721f2b8
2021-04-22 14:00:32 +02:00
Zuul
f720ce7e25 Merge "[doc][trivial] Fix diagram in agent token admin docs" 2021-04-22 11:11:09 +00:00
Arne Wiebalck
7fecedad24 [doc][trivial] Fix diagram in agent token admin docs
Change-Id: I98233646472b6a5150bf1bd6fd42d364a71bd830
2021-04-22 12:12:38 +02:00
Arne Wiebalck
cf98a468ea [doc][trivial] Fix typo in agent token admin docs
Change-Id: Id40e9ed39c051a6988745a624ec4f755dc79cd41
2021-04-22 12:08:15 +02:00
Zuul
313af0b32b Merge "Followup patch for security dashboard clean steps" 2021-04-22 09:22:45 +00:00
Zuul
9b67800f20 Merge "Do not use pregenerated tokens with a pre-built ISO" 2021-04-22 00:51:12 +00:00
Riccardo Pittau
da88ce8cdd Update basic local.conf for quickstart
Updating the local.conf example basic configuration for development
quickstart based on recent updates.
This has been tested on ubuntu focal, current base opearting system used
for CI jobs.

Change-Id: I102bef55bef1c944991fbcba7547cd51c03fc7be
2021-04-21 10:42:42 +02:00
Zuul
eaaefbe394 Merge "Aliases for a few unfortunately named state transitions" 2021-04-21 03:35:05 +00:00
Zuul
4c30827f2d Merge "Wipe agent tokens on inspection start and abort" 2021-04-20 19:32:36 +00:00
Zuul
0af9a9fdf8 Merge "Read default cirros version from stackrc" 2021-04-20 16:00:26 +00:00
Zuul
f184a0f0d0 Merge "Update to not use deprecated get_task_monitor." 2021-04-20 15:44:47 +00:00
Riccardo Pittau
df368cbd8a Read default cirros version from stackrc
Workaround for grenade jobs to read CIRROS_VERSION variable from
stackrc.
We also give the possibility to specify a custom CIRROS_VERSION

In addition, fix transient iDRAC WS-Man BIOS test.

Depends-On: https://review.opendev.org/c/openstack/ironic/+/786387

Change-Id: Ic7f5dae5e6aa6916f0a7d73f43cc9552349385c5
2021-04-19 13:47:10 -04:00
kafilat-adeleke
5c303a5e0a Aliases for a few unfortunately named state transitions
This RFE proposes a new microversion that will provide
aliases to two poorly named provisioning verbs
to match the existing CLI commands

Story: #2007551
Task: #39402
Change-Id: Ifd14aebbfb4b17c5108f44092dac0b89d1c2c50a
2021-04-15 08:25:13 +01:00
Dmitry Tantsur
9afa9b86d1 Process in-band deploy steps on fast-track
Currently we're only recording them, but do not validate and take into
account. This change fixes it.

The deployment code has been updated to account for the fact that deploy
steps can change in run time.

Change-Id: I01bd9e3a11fed68213bb392c04aa1d33bbe16b30
2021-04-13 14:29:14 +02:00
ankit
5a27ea6fe6 Followup patch for security dashboard clean steps
This patch addresses all the remaining comments on the
security dashboard clean steps for ilo driver.

Change-Id: Id454642439d09fa8edd7bab9259dfc4ba9b55a01
2021-04-13 10:16:31 +00:00
Dmitry Tantsur
ff7a32bc7f Remove a pause before cleaning when fast-tracking
When fast track mode is used, ironic still waits for the next heartbeat
before running the first clean step, because prepare_cleaning
unconditionally returns CLEANWAIT for agent drivers. This patch fixes
it by returning None for fast-track.

Agent code then needs to refresh clean steps before proceeding,
otherwise it will assume an empty steps list.

Change-Id: I86225b3e34c63a0124a2a63f8a624dd00a8d38e4
2021-04-12 16:06:15 +02:00
Dmitry Tantsur
65e2e19098 Fix fast track with redfish-virtual-media
During cleaning prepare_ramdisk is always called, even with fast track.
However, the redfish-virtual-media boot interface ignores fast track and
always reboots the node. This change makes fast track work if we can
detect that a CD device is connected.

Change-Id: I8d13df5db9654b0c2ea24489f7df75cdc5bae0e2
2021-04-08 18:32:51 +02:00
Zuul
b4d8a493d9 Merge "Fix idrac-wsman BIOS factory_reset result finding" 2021-04-08 16:20:46 +00:00
Aija Jauntēva
233a8d2c42 Update to not use deprecated get_task_monitor.
`update_service.get_task_monitor` is deprecated, using
top level `get_task_monitor` instead.

Change-Id: Ib028313ee14744a2c016ebaa463e6bfc3a4cc5f0
2021-04-08 10:55:11 -04:00
Dmitry Tantsur
8647aeca65 Do not use pregenerated tokens with a pre-built ISO
If an ISO is provided by a user and removable configuration is not used,
we cannot embed the token. Retrieve it normally instead.

Change-Id: Ie5f735e077f4cee89d7ae59c414909eb4e0c734b
2021-04-08 13:53:03 +02:00
Dmitry Tantsur
c6e8281f85 Wipe agent tokens on inspection start and abort
Also make sure the pregenerated flag is always reset.

Change-Id: I73aaa803d3eb84ddac59a778e998836a645217eb
2021-04-08 13:42:25 +02:00
Zuul
4d79021513 Merge "Fix typo in security docs around is_admin rule" 2021-04-08 07:52:16 +00:00
Zuul
d2e7f36949 Merge "Add security dashboard clean steps to ilo drivers" 2021-04-07 13:57:59 +00:00
Zuul
e97e6eb660 Merge "Update python-dracclient version" 2021-04-07 12:03:45 +00:00
Yogesh Ramachandra
82627acadc Fix idrac-wsman BIOS factory_reset result finding
This change fixes the idrac-wsman BIOS hardware interface
implementation's determination of the result of its factory_reset
cleaning/deploy step, and, on success, updating of the cached BIOS
settings to their defaults. It uses a deterministic means of identifying
when the reset has successfully completed and the default BIOS settings
are available to be read.

The time when the iDRAC last performed a system inventory is referred to
as Collect System Inventory on Restart (CSIOR). CSIOR updates the values
of BIOS settings that can be read from the iDRAC. The interface reads
the CSIOR and records it on the ironic bare metal node before requesting
the factory reset and rebooting the system to process the request.
Following the system reboot, the CSIOR is periodically read until its
value changes from its recorded value. If that occurs before the
configured amount of time has passed, the step succeeds and the cached
BIOS settings are updated. Otherwise, the step fails and the node is
placed in the failed state.

Story: 2008058
Task: 40739
Depends-On: https://review.opendev.org/c/openstack/python-dracclient/+/748571
Change-Id: I11b92612d6686b7133ddef67068664c9b81df30e
2021-04-06 23:56:35 -04:00