2245 Commits

Author SHA1 Message Date
Zuul
4d1652e1fb Merge "Fix Redfish RAID for non-immediate controllers" 2022-03-02 23:24:44 +00:00
Zuul
172da53cf3 Merge "Add idrac-wsman clean steps to not require ramdisk" 2022-03-02 23:04:22 +00:00
Zuul
d704234a69 Merge "Add known issue for iDRAC Swift firmware update" 2022-03-01 15:10:28 +00:00
Zuul
e5bb7ec682 Merge "Add more sources to redfish firmware upgrade" 2022-03-01 15:10:19 +00:00
Zuul
1b3408e190 Merge "Support listening on a Unix socket" 2022-02-24 13:31:50 +00:00
Dmitry Tantsur
5a9dd8b092 Deprecate instance network boot
It's insecure and not very popular. See this post for details:
http://lists.openstack.org/pipermail/openstack-discuss/2021-December/026224.html

Change-Id: I9a2df47bb8c08cc991b3c615a9eb533aba3171f4
2022-02-23 12:15:33 +01:00
Aija Jauntēva
d7d8f8754b Fix Redfish RAID for non-immediate controllers
Fixes ``redfish`` RAID interface workflow to not create more than 1
logical disks per controller at the same time when controller does not
support 'Immediate' application time and system needs rebooting.

With this fix virtual disks are grouped by controller and executed
in batches when reboot is required.

This enables ``redfish`` RAID interface to be used with iDRAC systems
directly as although there are many controllers that support 'Immediate'
application time, they do it only when system has completed loading.
System intermittently completes loading after IPA starts executing
clean or deploy steps rendering controllers not supporting 'Immediate'
apply time and requiring reboot. This fix handles such scenario
instead of failing to create more than 1 virtual disk.

Story: 2009863
Task: 44529

Change-Id: Ia2ce34f09695731b0f48798f662006c4904e2223
2022-02-17 09:12:33 -05:00
Zuul
ff3d001c5a Merge "Set correct initrd_filename for iPXE when using Swift" 2022-02-15 12:00:02 +00:00
Iury Gregory Melo Ferreira
cfa47c54b9 Update some releasenotes for 19.1 release
Change-Id: I9fe5cd295df33dd3af9bcbdc3fc5f35bd0c6df1b
2022-02-14 10:55:21 -03:00
Dmitry Tantsur
c975eaa8c6 Set correct initrd_filename for iPXE when using Swift
iPXE derives its "file names" from the last component of the URL path.
In case of the conductor's local server it's {mode}_{component} where
mode = deploy/rescue and component = kernel/ramdisk. However, in case
of Swift/Ceph, the last component will be different. This patch accounts
for it.

Change-Id: I7ba5545032069509a9c302abe1c21537ccb5ec8a
2022-02-10 18:51:30 +01:00
Zuul
afd3fcea23 Merge "Add idrac-redfish clean steps to not require ramdisk" 2022-02-10 12:03:54 +00:00
Dmitry Tantsur
358b6eac40 Support listening on a Unix socket
When using nginx to terminate TLS (like it's done in Bifrost), it's more
secure to use a Unix socket for communication, so that local users
cannot access plain text communication.

Copies Inspector change I37b762cca035b5855deb92635c29e8eb97a87c20.

Change-Id: If00e5a3537b8fbaae3fa01f71bd515399464da36
2022-02-09 11:32:44 +01:00
Zuul
a4a89d6b20 Merge "Explicit parameter to distinguish partition/whole-disk images" 2022-02-07 20:04:45 +00:00
Zuul
0e3c885a34 Merge "Wait for conductor start before notifying systemd" 2022-02-07 19:45:55 +00:00
Zuul
45325c21ec Merge "Return non-zero exit code on failures" 2022-02-07 19:45:52 +00:00
Zuul
e38ac57b3e Merge "Fix resource_url in the remaining resources" 2022-02-03 17:30:12 +00:00
Zuul
c019dc4429 Merge "Make account prefix of Swift confgurable" 2022-02-03 17:17:34 +00:00
Zuul
f20e3b7378 Merge "Fix redfish RAID failed tasks" 2022-02-03 15:34:36 +00:00
Dmitry Tantsur
a813c769e8 Explicit parameter to distinguish partition/whole-disk images
Using kernel/ramdisk makes no sense with local boot, we need a better
way. We already have an internal image_type instance parameter, let's
make it public.

Glance support will be added in the next patch.

Change-Id: I4ce5f7a2317d952f976194d2022328f4afbb0258
2022-01-28 19:13:13 +01:00
Dmitry Tantsur
2c58ab3703 Wait for conductor start before notifying systemd
Currently, the launcher first notifies systemd, then starts checking the
services (RPC and WSGI). So any failures will be reported, but only
after systemd declares the service ready.

This change adds a polling loop to make sure RpcService.start() finishes
successfully.

Change-Id: Ib460622d69a9cb1cb82e796a6ab294bbbb40c359
2022-01-26 15:18:40 +01:00
Dmitry Tantsur
e841fa0545 Return non-zero exit code on failures
Launcher.wait() does not raise, it returns an integer code. Propagate it
to sys.exit() so that failures are correctly recognized.

Change-Id: I38bf39e4e4845415640b3468e9fb3029f70dcded
2022-01-26 14:39:16 +01:00
Takashi Kajinami
cde42678b9 Make account prefix of Swift confgurable
Account prefix is configurable in Swift and can be different. This
change introduces a configuration parameter to customize the prefix
so that users can customize the prefix consistently.

To allow setting a consistent value in Ironic and Swift, the prefix
value is automatically suffixed by '_' like;
 - AUTH  => AUTH_
 - AUTH_ => AUTH_

Story: 2009778
Task: 44259
Change-Id: I4862efa3af452f89f1dc4e15d2c3cc43b857f86d
2022-01-26 19:28:23 +09:00
Dmitry Tantsur
55144d3bd2 Fix resource_url in the remaining resources
Node history was particularly affected: limit was not converted from
string to integer, so "next" link was never added.

Add some safeguards to the generic API code.

Change-Id: I1328e2f07621bf7e39b96eb4a7ddb66c9a2b65bb
2022-01-24 19:10:29 +01:00
Zuul
16dc23c3c5 Merge "Migrates docs from wiki" 2022-01-24 14:51:11 +00:00
Aija Jauntēva
bfea8f17b0 Add idrac-wsman clean steps to not require ramdisk
For BIOS factory_reset updated to use power interface
as direct REBOOT call fails when system is OFF that
can happen if running without ramdisk.

Change-Id: I9baf13e9a089bc692e8010dc7e291d7791d1f73c
2022-01-21 05:44:06 -05:00
Aija Jauntēva
69e6152ac3 Add idrac-redfish clean steps to not require ramdisk
Includes idrac-redfish RAID and management steps.

Update helper utility to not prepare agent on reboots
if cleaning without it.

Change-Id: I3c06e12f82908fba2b2587d0e3bec4b8bbdeba4b
2022-01-21 05:32:23 -05:00
Zuul
4a2d6098de Merge "ImageCache: respect Cache-Control: no-store" 2022-01-21 03:24:21 +00:00
Zuul
53a38f18d4 Merge "Fix Node Console Duplicate Sol Session" 2022-01-21 00:35:02 +00:00
Zuul
1a5b3eb310 Merge "Update idrac-redfish export configuration step" 2022-01-20 21:01:24 +00:00
taoruizhe
a2160f13af Fix Node Console Duplicate Sol Session
Restart node console may occasionally result in duplicated
sol session. Especially, when a cluster deployed with multi
ironic-conductor backends, stop_console action shutdown
only one console process while another sol session remains.

This patch adds "sol deactivate" action before start node
console. Make sure the current connection always a success.

Story: 2009762
Task: 44233
Change-Id: I5bc8666ff0b4ceab61ed6a8c794d6882783d6bce
2022-01-20 18:42:14 +00:00
Julia Kreger
ce6a28d0d2 Migrates docs from wiki
Moves legacy documentation from the wiki.

Please note, this has stripped out upgrade notes in some links in part
because links are broken, and those versions should have long ago exited
production, meaning this is largely for contextual information retention
by the project.

* https://wiki.openstack.org/wiki/ReleaseNotes/Kilo#OpenStack_Bare_Metal_service_.28Ironic.29
* https://wiki.openstack.org/wiki/Ironic/ReleaseNotes/Juno
* https://wiki.openstack.org/wiki/Ironic/ReleaseNotes/Icehouse

Change-Id: I62016bd6319a612bd0c59f496481cae88a182032
2022-01-20 18:18:24 +00:00
Zuul
c65cbb7aef Merge "Set resource_url when getting all nodes" 2022-01-18 10:46:18 +00:00
Arne Wiebalck
2ac740e09d Set resource_url when getting all ports or portgroups
Since the default value resource_url is None, make sure the
parameter is set to 'ports' when getting all ports.

Change-Id: Id603ae5a4a802dfc8f866b15c8d327d95eba9310
2022-01-17 15:02:32 +01:00
Arne Wiebalck
69227c66c2 Set resource_url when getting all nodes
Since the default value resource_url is None, make sure the
parameter is set to 'nodes' when getting all nodes.

Change-Id: I6cc52eb56c7888a433d24aa79154143d6f35cf83
2022-01-17 14:30:58 +01:00
Aija Jauntēva
7d0af42f94 Add known issue for iDRAC Swift firmware update
Change-Id: I08d899e086b97d527338afe4153f0da93a27aa18
2022-01-17 08:35:25 +00:00
Aija Jauntēva
960f10a902 Add more sources to redfish firmware upgrade
Adds swift and file support for `redfish` management interface
`firmware_update` step.
Adds `source` to step and `[redfish]firmware_source` to config
for setting up if and how files are staged. Support `http`, `local`
and `swift` for staging.
Adds `checksum` to step for checksum verification when file is
staged.

Story: 2008723
Task: 42067
Change-Id: Ibcc7815b32344d67f912d7dcda7283bac3582316
2022-01-17 08:34:57 +00:00
Zuul
097ec2f8ee Merge "Do not fail inspection on invalid MAC" 2022-01-15 02:44:38 +00:00
Zuul
b41e21357a Merge "Automatically configure enabled_***_interfaces" 2022-01-14 23:05:23 +00:00
Zuul
a8a471f27e Merge "Fix validating input for redfish update_firmware" 2022-01-14 23:05:11 +00:00
Aija Jauntēva
89cf1e7f6b Update idrac-redfish export configuration step
Add to ignore destructive settings during export. User can still put
those back during import manually.

Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/816815
Change-Id: I7d4c08082cadec399227ee4546e7353ff6bd2ae8
2022-01-14 11:18:03 +00:00
Dmitry Tantsur
9308c0a0b6 Do not fail inspection on invalid MAC
Some adapters may have addresses that are not MAC. See for example:
https://github.com/metal3-io/ironic-image/issues/314

Change-Id: I0023e0750e372185747ca28cddd2a8dda110dd7f
2022-01-13 11:32:41 +01:00
Aija Jauntēva
b824ea7fa8 Fix validating input for redfish update_firmware
Story: 2009772
Task: 44249

Change-Id: I8e559b3c7e833c361e12d01d744510ac5c8d8cf6
2022-01-13 04:10:47 -05:00
Zuul
cb25103198 Merge "Fix Redfish RAID deploy steps" 2022-01-12 14:10:28 +00:00
Zuul
fc4702439a Merge "Ensure 'port' is up2date after binding:host_id" 2022-01-11 19:39:29 +00:00
Zuul
b392dc19bc Merge "Enable foreign keys in SQLite" 2022-01-11 10:36:32 +00:00
Zuul
bded82a27e Merge "Make bootloader installation failures fatal for whole disk images" 2022-01-10 17:23:51 +00:00
Harald Jensås
c4721da2d8 Add dhcp options for each ip_version once
Currently duplicate DHCP options are added when a port have
multiple address in the same address familiy. The duplicate
entries cause an internal server error in neutron.

This fixes the issue by only adding DHCP options for each
IP-version.

Story: 2009774
Task: 44255
Change-Id: I8bef819dc3101f88f4e04ea986e1039e34d917ed
2022-01-07 16:33:05 +01:00
Dmitry Tantsur
7043a414a8 ImageCache: respect Cache-Control: no-store
Images can be generated on fly, so let us respect the decision of the
server to disable caching.

Also disable caching for file images: it's just waste of space.

Change-Id: I425b1915c73354af90329d5b3a1fb0a616adaa93
2022-01-07 16:28:00 +01:00
Harald Jensås
3404dc913e Ensure 'port' is up2date after binding:host_id
On neutron routed provider networks IP allocation is
deferred until 'binding:host_id' is set. When ironic
creates neutron ports it first creates the port, then
updates the port setting binding information.

When using IPv6 networking ironic adds additional address
allocations to ensure network chain-booting will succeed.
When address allocation is deferred on port create ironic
cannot detect that IPv6 is used and does not add the
required additional addresses.

This change ensures the 'port' object is updated after the
port update setting the port binding required for neutron
to allocate the address. This allows ironic to correctly
detect IPv6 is used, and it will add the required IP
address allocations.

Story: 2009773
Task: 44254
Change-Id: I863dd4ab9615a9ce3b3dcb8798af674ac9966bf2
2022-01-07 15:41:17 +01:00
Mark Goddard
ca6499b62c Make bootloader installation failures fatal for whole disk images
Since I4f2cecdc0af366364b18232dbd8ea4ffdd3165d2, bootloader installation
failures were ignored to facilitate backwards compatibility with older
Ironic Python Agents. However, this means that some genuine failures are
ignored.

We can now rely on having a sufficiently modern IPA, so this patch makes
bootloader installation failures fatal for whole disk images.

Change-Id: Ic280cc3e1a2bb462d5425efd71b336db8c14bb90
2022-01-06 17:11:09 +00:00