e40984c084c47c71011a80b3bd146fb9cf6f0783
Commit Graph

884 Commits

Author SHA1 Message Date
Zuul
e40984c084 Merge "Fix default disk label with partition images" 2020年12月17日 22:41:25 +00:00
Zuul
9ae99506c0 Merge "Correctly decode error messages from ironic API" 2020年12月16日 13:43:07 +00:00
Zuul
94b0e97e8b Merge "Generate TLS certificates with validity time in the past" 2020年12月15日 20:08:09 +00:00
Zuul
13cfa68974 Merge "Copy any configuration from the virtual media" 2020年12月14日 18:01:06 +00:00
Julia Kreger
cb6c0059b5 Fix default disk label with partition images
Partition images through the agent have the unfortunate
side effect of being executed without full node context
by default. Luckilly we've had a similar problem and
cache the node.
This patch changes the lookup from a default of msdos
partitions to use the cached node object.
Change-Id: I002816c9372fdf1cc32f3c67f420073551479fd9
2020年12月14日 06:36:18 -08:00
Dmitry Tantsur
557293ca6a Generate TLS certificates with validity time in the past
Otherwise a slight clock skew may prevent them from working, see
e.g. https://bugzilla.redhat.com/show_bug.cgi?id=1906448.
Change-Id: Icea103af06edef16c0dc4578877dc04cd6ec3b0c
2020年12月10日 16:22:13 +01:00
Julia Kreger
7a83773fbc Option to enable bootloader config failure bypass
Some hardware is very well intentioned. However this intention
can result in the UEFI NVRAM table being full which prevents us
from adding new records to the table. We can't be sure what to
delete, so in this case some operators just need the ability to
tell ironic "it is okay if this fails, it will still work."
The added ``ignore_bootloader_failure`` option adds
this capability which can be set per-node either in the agent
configuation via the ramdisk image, or in the pxe_append_params
configuration parameter for the node itself with a
``ipa-ignore-bootloader-failure`` option in order to prevent
the failure from being raised.
Change-Id: If3c83fb2ea2025fce092d495a64f32077c70d2d6
Story: 2008386
Task: 41309
2020年12月10日 06:42:48 -08:00
Dmitry Tantsur
53dbc87a35 Correctly decode error messages from ironic API
Knowing a status code is simply not enough for debugging.
Change-Id: If1d3f182ab028948ff05aea7e8024d4e7bc3d53c
2020年12月07日 18:59:08 +01:00
Zuul
1a9491e651 Merge "Bring up VLAN interfaces and include in introspection report" 2020年12月02日 13:59:28 +00:00
Zuul
22985da710 Merge "Make mdadm a soft requirement" 2020年11月23日 19:37:59 +00:00
Dmitry Tantsur
b9b67fad77 Copy any configuration from the virtual media
For ramdisk TLS (and other potential future enhancements) we need
to be able to inject configuration and certificates into the ramdisk.
Since we cannot pass files through kernel parameters, we need to
put them on the generated ISO or (in the future) config drive.
This change detects IPA configuration and copies it into the ramdisk
early enough for any configuration files to get picked.
Changed /dev/disk/by-label to blkid since the former may not exist
on all ramdisks (e.g. tinyIPA).
Change-Id: Ic64d7842a59795bbf02f194221dedc07c6b56e8c
2020年11月23日 16:04:45 +01:00
Dmitry Tantsur
ab8dee0386 Make mdadm a soft requirement
No point in requiring it for deployments that don't use software RAID.
Change-Id: I8b40f02cc81d3154f98fa3f2cbb4d3c7319291b8
2020年11月20日 17:07:00 +01:00
Bob Fournier
6e3f28d720 Bring up VLAN interfaces and include in introspection report
Add the ability to bring up VLAN interfaces and include them in the
introspection report. A new configuration field is added -
``ipa-enable-vlan-interfaces``, which defines either the VLAN interface
to enable, the interface to use, or 'all' - which indicates all
interfaces. If the particular VLAN is not provided, IPA will
use the lldp info for the interface to determine which VLANs should
be enabled.
Change-Id: Icb4f66a02b298b4d165ebb58134cd31029e535cc
Story: 2008298
Task: 41183
2020年11月20日 10:17:00 -05:00
Zuul
4762aca077 Merge "Add clean step 'erase_pstore'" 2020年11月18日 17:38:00 +00:00
Arne Wiebalck
92e26b01e9 Add clean step 'erase_pstore'
Add an automatic clean step to clean the Linux kernel's pstore.
The step is disabled by default.
Story: #2008317
Task: #41214
Change-Id: Ie1a42dfff4c7e1c7abeaf39feca956bb9e2ea497
2020年11月17日 18:00:16 +01:00
Vladyslav Drok
3761a44800 Fix vendor info retrieval for some versions of lshw
There is one more place that relies on lshw json output being a dict,
so let's fix the function that gets the dict rather than places it is
being used in.
Change-Id: Ia1c2c2e6a32c76ac0249e6a46e4cced18d6093a9
Task: 39527
Story: 2007588
2020年11月16日 15:25:12 +01:00
Zuul
37dc11fcc1 Merge "Log configuration options on start-up" 2020年11月12日 17:39:23 +00:00
Zuul
c33b3fff66 Merge "Add UUID to BlockDevice object" 2020年11月11日 21:42:51 +00:00
Vladyslav Drok
c7858d3cc8 Add UUID to BlockDevice object
It'd allow for example custom ansible playbooks to use UUIDs of the
introspected node's disks. In future it might also enable agent
to use UUID (or by_path value) to refer to a device instead of
name, as it happens currently.
Change-Id: Id00437d2295c39fb12f3c25a92b30b56a58eef13
2020年11月11日 17:25:59 +00:00
Dmitry Tantsur
c585603ee6 Log configuration options on start-up
This is very convenient for debugging and is something ironic and
ironic-inspector already do.
Register SSL options earlier so that they're accounted for.
Change-Id: I56aca8eec1dfeb065ac657452a7076a9e3d17cc3
2020年11月11日 16:38:10 +01:00
Zuul
1f590ea382 Merge "Support using LABEL as identifier for rootfs" 2020年11月10日 17:56:09 +00:00
Vladyslav Drok
448ded43fe Fix physical memory calculation with new lshw
It seems that fix Id5a30028b139c51cae6232cac73a50b917fea233 was
dealing with a different issue. According to the description
in the story, and the linked commit there, the problem is the
fact that output is changed from dictionary to a list (with just
one value supposedly?). This commit changes the isinstance call
to check if an output of lshw is a list, and if so, we just use
the first element of the list.
Story: 2007588
Task: 39527
Change-Id: I87d87fd035701303e7d530a47b682db84e72ccb9
2020年11月06日 19:09:28 +01:00
Zuul
f52863a4d8 Merge "Updated Implementation of string interpolation delay on LOG messages" 2020年11月04日 10:45:32 +00:00
ebagakis
35d412e9d5 Updated Implementation of string interpolation delay on LOG messages
This is a follow up to https://review.opendev.org/#/c/756300/
Change-Id: Ifba8a57b58d61ede169c60f6d51f224d134c7708
2020年11月03日 15:27:27 +01:00
Fedor Tarasenko
694ea7425d Support using LABEL as identifier for rootfs
Add possibility to use disk LABEL to identify rootfs uuid for
Software RAID deployment
Change-Id: I77f36e70ddc539af0190db1c1abe0fb2c66f34b4
Story: 2008303
Task: 41188
2020年11月03日 13:03:34 +03:00
Zuul
f356356486 Merge "Follow-up to API version setting" 2020年11月02日 11:48:22 +00:00
Zuul
d84e88769e Merge "Don't run os-prober from grub2-mkconfig" 2020年11月01日 12:27:07 +00:00
Julia Kreger
066a96a926 Follow-up to API version setting
Follow-up on Ib96a1057792f45f2e4554671e32c436140463ee8 to
improve some of the wording and review feedback by
Dmitry Tantsur.
Change-Id: Id77b0d72f3d78e5befd05fbdb6b21bc780f4ddfe
2020年10月30日 08:28:54 -07:00
Jay Faulkner
80575566b1 Allow manual setting of Ironic API Version
Typically, the Ironic API client in IPA will autodetect the API version
based on the output of a GET of the root of the API. If for some reason
this API endpoint is restricted, or the operator wishes to limit the
Ironic API version IPA uses, they can now set CONF.ironic_api_version to
avoid autodetection and force a version.
Change-Id: Ib96a1057792f45f2e4554671e32c436140463ee8
2020年10月23日 15:38:42 +00:00
Julia Kreger
6542a9cb04 Don't run os-prober from grub2-mkconfig
By default, grub2-mkconfig scans everything to look for other
environments and then load those into the grub configuration.
It makes sense, but on newer versions of grub2 in distribution
images, os-prober is taking an exceptionally long time in some
cases where more than one storage device exists with other
filesystems.
As a result, of the os-prober execution by grub2-mkconfig, the
bootloader installation can completely time out and fail the
deployment. This is presently experienced with metalsmith on
centos8.
There are numerous sporatic reports of issues like this issue
where grub2-mkconfig hangs for some period of time, and this is
observable on Centos8.2 in our CI. While one report[0] mentions
this issue, Another bug [1] has the dialog that actually helps us
frame the context as to what we likely should do.
Also, fixes the unit testing so we actually test if we're running
with grub2. :\
[0]: https://bugzilla.redhat.com/show_bug.cgi?id=1744693
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1709682
Depends-On: https://review.opendev.org/#/c/748315
Change-Id: I14bf299afef3a1ddb2006fe5f182d7f0d249e734
2020年10月22日 22:28:07 +00:00
Arne Wiebalck
c7f6baf7f4 [trivial] Remove redundant list conversion
Follow-up to https://review.opendev.org/#/c/756300/
Change-Id: Ibc6c044e24dde82928f19a9b9a7eaf68be53fb0e
2020年10月13日 08:29:53 +02:00
Zuul
80b0a9a132 Merge "Software RAID: Re-add missing devices" 2020年10月12日 12:24:24 +00:00
Dmitry Tantsur
420ebc0d73 Do not silently swallow errors in the write_image deploy step
Calling join() does not raise, we need to explicitly check the result.
Change-Id: I81d3d727af220c2b50358edab8139f07874611f0
Story: #2008240
Task: #41083 
2020年10月09日 11:24:12 +02:00
Zuul
bd127d193b Merge "Reduce the duration of retries in the inspector tests" 2020年10月08日 23:04:24 +00:00
Zuul
35d2292aa4 Merge "Log a warning of target_boot_mode does not match current boot mode" 2020年10月07日 17:01:51 +00:00
Dmitry Tantsur
62672de131 Reduce the duration of retries in the inspector tests
Currently the test takes 5*5=25 seconds. Re-arrange the code so
that it's possible to change the retry delay in tests.
Change-Id: Ia559dad4bc656f8ad6b2cb8cb0137a97e2614db7
2020年10月07日 12:39:01 +02:00
Dmitry Tantsur
1a67dddde7 Log a warning of target_boot_mode does not match current boot mode
This is not a normal situation and is likely to cause problems.
Change-Id: Id0668fd160ac0539d85997e985f8c43d9da75c90
2020年10月07日 12:30:23 +02:00
Dmitry Tantsur
fc4e0eed6a Don't try to call GRUB when root UUID is not provided
We don't have a really working way to detect root UUID for whole
disk images at the moment, which results in an ignored traceback
every time install_bootloader is called with whole disk images in
UEFI mode. Avoid it by skipping GRUB2 if root UUID is unknown.
Change-Id: I84245538f59c664b72d1cafbca8d61be0978f489
2020年10月07日 12:06:42 +02:00
Zuul
abd9f91813 Merge "Add basic retries for inspection" 2020年10月06日 17:07:20 +00:00
Arne Wiebalck
253b4887d5 Software RAID: Re-add missing devices
Upon md device creation, component devices are sometimes removed
immediately again due to a "disk failure". The disks seem healthy,
though. This patch re-adds compoenent devices in such cases to
prevent that the md device will remain in a degraded state (which
would cause issues later, e.g. during ESP creation).
Story: #2008164
Task: #40914
Change-Id: I2ac7cb4a546de84686d5c3435e850c14b3f6c1d7
2020年10月06日 14:00:57 +02:00
Zuul
99dee5067e Merge "Software RAID: Get component devices by md UUID" 2020年09月30日 18:30:56 +00:00
Zuul
faeb9441d3 Merge "Simplify heartbeating by removing use of select()" 2020年09月29日 15:47:08 +00:00
Arne Wiebalck
044c64dbc0 Software RAID: Get component devices by md UUID
Scanning the output of mdadm commands for RAID members will
miss component devices which are currently not part of the
RAID. For proper cleaning it is better to scan block devices
for a signature of the md device for which we would like to
get the components.
Story: #2008186
Task: #40947
Change-Id: Ib46612697851e36a16d272ccaeb0115106253863
2020年09月29日 17:08:40 +02:00
Arne Wiebalck
c7aec775ff Software RAID: Don't delete partitions too early
Partions on the holder disk should only be deleted after
all RAID devices have been deleted. Otherwise, super blocks
on partitions which reside on the same disks cannot be cleaned.
Story: #2008199
Task: #40979
Change-Id: I19293f5b992cd1fa68957d6f306dcec8f3b7a820
2020年09月28日 10:35:12 +02:00
Zuul
5e61ad18e3 Merge "When reporting that agent is busy, report the executed command" 2020年09月23日 22:00:15 +00:00
Zuul
c7ff931fe6 Merge "Fix: make Intel CNA hardware manager none generic" 2020年09月23日 14:57:40 +00:00
Zuul
11a87365fb Merge "Generate a TLS certificate and send it to ironic" 2020年09月23日 12:14:38 +00:00
Qianbiao.NG
4b0ef13d08 Fix: make Intel CNA hardware manager none generic
Currently, IntelCnaHardwareManager inherits GenericHardwareManager
which makes it a new "GenericHardwareManager" with "MAINLINE" priority.
This causes all other hardware-managers with lower priority than
"MAINLINE" never be used. To fix this, make IntelCnaHardwareManager
inherit basic HardwareManager.
Change-Id: I28b665d8841b0b2e83b132e1f25df95e03e7ba10
Story: 2008142
Task: 40882
2020年09月23日 18:24:26 +08:00
Jay Faulkner
a01646f56b Simplify heartbeating by removing use of select()
Heartbeating in IPA has used select.poll() for years to workaround
a bug where changing the time in the ramdisk could cause heartbeats
to stop and never resume.
Now that IPA syncs time at start and exit, this workaround is no
longer needed. So instead, we'll revert to using threading.Event()
in order to make the code simpler and easier to understand.
Since we need this to be an eventlet-event, and not a standard-thread
event, also monkey_patch threading.
Additionally, there were a few completely unused backoff interval
values set, that were never applied. In respect of maintaining the
5+ years old behavior of not doing error backoffs, that code was
removed instead of being made to work.
Change-Id: Ibcde99de64bb7e95d5df63a42a4ca4999f0c4c9b
2020年09月22日 16:59:47 +00:00
Dmitry Tantsur
fe6b687968 When reporting that agent is busy, report the executed command
Also make this API return a proper HTTP code (409 instead of 500).
Change-Id: I5d86878b5ed6142ed2630adee78c0867c49b663f
2020年09月18日 17:52:49 +02:00