780cf3615dffe02f0a2810c8b37449875d503f4d
Commit Graph

2685 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Zuul
780cf3615d Merge "Fix missing [mdns] options" 2025年07月16日 01:56:13 +00:00
Zuul
c3ef9a563d Merge "Fix software RAID creation on different physical devices" 2025年07月15日 18:29:00 +00:00
Zuul
a7d8afde40 Merge "Trivial: avoid root logger in modules" 2025年07月13日 17:23:29 +00:00
Zuul
4b0a3c162d Merge "Log efibootmgr output as part of the system logs" 2025年07月13日 02:31:43 +00:00
Zuul
943cb8afff Merge "Graceful way for hardware managers to ignore certain devices" 2025年07月11日 17:45:25 +00:00
Zuul
d86923e7ff Merge "Split hardware manager initialize out of evaluate_hardware_support" 2025年07月11日 14:19:27 +00:00
kubajj
46af01c82f Log efibootmgr output as part of the system logs
Create a file efibootmgr with the verbose output of the efibootmgr command
when collecting the system logs. This can be used for debugging of boot order.
Change-Id: Ic957024d19bb01a45a3014dc2a5e4492d087e893
Signed-off-by: Jakub Jelinek <vilouskubajj@gmail.com>
2025年07月10日 09:02:36 +00:00
Julia Kreger
f9ae319fdd docs: remove tinyipa references
We have started down the path of eradicating tinyipa usage and testing
because it was bifrucating our contirbutor resources and focus now that
we have also been able to fix some of the CI jobs to be a bit more
scalable.
This does mean we're doing more with dib based images and they are larger,
but we're willing ot pay that tax as a project for consistency and
CI job stability.
Change-Id: I8f96d106a85f6ab4493785e88955196da08af8e9
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025年07月09日 09:53:19 -07:00
Dmitry Tantsur
1840e987d5 Trivial: avoid root logger in modules
Change-Id: I1eb8c9637c38496b5d4dd6493be43f414f35680c
Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com>
2025年07月07日 15:16:35 +02:00
Takashi Kajinami
cf621eb6cd Fix missing [mdns] options
Make sure these options are added to the sample config file generated
by oslo-config-generator.
Change-Id: I09dc6ace0725140bf3542d053e4c941ce190c0df
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025年07月06日 11:20:07 +09:00
Dmitry Tantsur
9db3cd1e4d Graceful way for hardware managers to ignore certain devices
My use case for this feature is to exclude network devices that use
the cdc_ether driver. These USB network interfaces often cause all sorts
of issues. For example, some models have the same hardcoded MAC address,
which breaks inspection.
Currently, to exclude a certain device, a hardware manager must override
the entire listing function (in my case, list_interfaces). Not only is
it tedious, but it also requires constantly updating the hardware
managers to match the implementation in GenericHardware. Realistically,
it will cause hardware manager authors to inherit GenericHardware, which
is the opposite of how hardware managers should be written.
Note that the node-level skip list only affects root device selection
and cleaning for block devices. This feature affects everything that
uses list_block_devices and is applied before the node-level skip list.
This change adds a new hardware manager call filter_device. For each
network, block or USB device, it allows a hardware manager to do either
of four things:
1. Delegate the decision to a lower level hardware manager by raising
 IncompatibleHardwareMethodError
2. Remove the device by returning None
3. Change the device by returning a modified instance
4. Return the device unchanged to keep it in the listing.
Note that I'm removing debug logging when IncompatibleHardwareMethodError
is raised. Not only the log message is incorrect (the error does not
necessarily mean that the method is not implemented at all), it already
noticeable space in the logs, and with this change will become very
noisy.
Change-Id: I5437343af6c6157882bcf0600dd89bd20478c948
Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com>
2025年07月04日 16:31:02 +02:00
Dmitry Tantsur
9426df9ab3 Split hardware manager initialize out of evaluate_hardware_support
The current code in GenericHardware.evaluate_hardware_support ends up
using hardware manager calls, which then use partly initialized hardware
manager list and can even cause a recursion.
This change introduces a new optional call initialize() which is
guaranteed to run:
1) After all hardware managers have been evaluated
2) After the hardware manager cache is populated
3) In the order of the support level of hardware managers
Change-Id: I068d3d73483c161062aa3b48f3154a2d99941382
Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com>
2025年07月04日 16:30:40 +02:00
Dmitry Tantsur
521811cbcc Fix software RAID creation on different physical devices
When creating multiple software RAID logical disks that use different
sets of physical devices, the partition indices were incorrectly shared
across all devices. This caused the second RAID array creation to fail
because it tried to use partition indices that didn't exist on those
specific devices.
This change fixes the issue by tracking partition indices separately for
each physical device, ensuring that each device's partitions are numbered
correctly starting from their first available index.
Closes-Bug: #2115211
Change-Id: I440db4654f3d1d54274d1eee8c4b21c2b0a18d22
Signed-off-by: Mohammed Naser <mnaser@vexxhost.com>
2025年06月25日 16:15:14 +00:00
Julia Kreger
883e3cf057 Remove unused tinyipa CI job
The use of job ipa-tempest-bios-ipmi-direct-tinyipa-src was
already removed in https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/950235
Change-Id: Ib67d8d502fbc0f77282ea0e01a68334ec464acb3
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
11.0.0
2025年06月02日 12:30:42 -07:00
Julia Kreger
2e35dfc7bc Remove TinyIPA jobs
Depends-On: https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/950235
Change-Id: I44fd4cd6e9cc52f884d14a5c8d0478d02d5b57ee
2025年05月16日 13:36:06 -07:00
Zuul
b64a41372d Merge "trivial: Fix missing extra space in logging" 2025年05月16日 17:34:11 +00:00
Zuul
b51cc75ff3 Merge "netutils: Use ethtool ioctl to get permanent mac address" 2025年05月07日 21:53:20 +00:00
Nicolas Belouin
48422a532f netutils: Use ethtool ioctl to get permanent mac address
Fetching the permanent MAC address of the interface instead of the
default one allows to get the right one in case it got changed during
setup (likely with a bonding setup).
In order to fetch the permanent MAC address of a given interface, one
can either use Netlink (either rtnetlink or ethtool), or use ethtool
ioctl.
The use of ioctl feels simpler and requires no additional dependency.
The implementation falls back to older behavior should an error occur.
Closes-Bug: #2103450
Change-Id: I54151990e396ddcf775128ca24d3db08e45c256d
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025年04月25日 12:06:29 +02:00
cid
c03021fee2 Remove eventlet from Ironic Python Agent
This change removes several usages of eventlet from IPA:
- Upgrades all requirements on oslo library versions to new ones that
 support non-eventlet use.
- Removes use of the eventlet wsgi server (via oslo_service.wsgi) and
 replaces it with the cheroot wsgi server.
- Removes explicit patching of python modules with eventlet
Note that due to some oslo libraries still using ``eventlet`` to detect
and workaround it's use. This means that it is still installed in
environments alongside IPA, even if it's not used or patched into any
modules.
Depends-On: https://review.opendev.org/c/openstack/requirements/+/947727
Change-Id: I9accab2d5e9529a88ef5d3db85e76901f14114eb
2025年04月23日 11:01:10 -07:00
Zuul
a15680f51e Merge "Base standalone job on redfish standalone" 2025年04月18日 00:53:34 +00:00
Zuul
b20ed83d78 Merge "Remove unnecessary +x mode" 2025年04月16日 10:31:06 +00:00
Takashi Kajinami
9b03ca7d52 Remove unnecessary +x mode
These files are not actually executable.
Change-Id: Id4208a91c005b8199d62320882c4f14dcd7f7761
2025年04月16日 12:07:58 +09:00
Julia Kreger
f359c81c28 trivial: Fix missing extra space in logging
Change-Id: Id85563015b3ea9e2802baa7b8ab1ca1d858568d5
2025年04月15日 06:57:35 -07:00
Zuul
53349cc7cf Merge "Remove agent_token_required upgrade knob" 2025年04月08日 20:38:18 +00:00
Zuul
88b6e914ad Merge "Run UT of metricis_lib" 2025年04月08日 20:02:36 +00:00
Jay Faulkner
a709e6fbb5 Base standalone job on redfish standalone
The non-redfish standalone job is pending removal from Ironic.
Change-Id: I2b6d542ce7af3eeeff23f06e43e82de5d7b09701
2025年04月07日 21:11:14 +00:00
satoshi-sh
7e6bc5cb85 Implement manual cleaning for ContainerHardwareManager
- Implemented manual cleaning
- Refactored the code
Change-Id: I301aaf9dfd6aff90f505148b65e75033f5043553
2025年04月07日 11:14:10 +00:00
satoshi-sh
c3e9266f92 Ironic Config Intergration for IPA
Update container-based cleaning hardware manager to use ironic
conductor config.
Note:
- Moved conf variables from __init__ and evaluate_hardware_support
 as the config overwritten after those process
- Utilized getattr instead of making methods beforehand. The methods
 created don't stick for a new instance.
Partial-Bug: #2100556
Change-Id: I53d5a4f112fbed455d5574840611ef6ea2db3eae
2025年04月06日 19:23:36 +00:00
satoshi-sh
7efe3dfc04 Fix test_timeout on Python3.13
- Python 3.13 uses time.time_ns for logging
https://github.com/python/cpython/blob/main/Lib/logging/__init__.py#L303
Change-Id: I3de44cc0fda662f3d5b1c6ea8add973cf2ed3bd9
2025年04月03日 18:06:46 +00:00
luocanhui
228033e9b6 Run UT of metricis_lib
Change-Id: I54dc23d8e8cec12a4685a82c4807ddd6a2267533
2025年04月03日 16:31:51 +08:00
Zuul
c4f62beedb Merge "Remove eventlet greendns patching" 2025年03月31日 17:38:34 +00:00
Zuul
60deb16ccc Merge "Add ContainerHardwareManager" 2025年03月27日 19:23:34 +00:00
Jay Faulkner
5d3192e93a Remove eventlet greendns patching
Eventlet patches two things in socket, effectively:
- create_connection
- various greendns things
By adding this environment variable, we're going to disable a large portion of the greened module code in IPA, which will be a boost to our migration off.
Change-Id: I1f94238c8d83f9e7cb0f7e096172ffb7c20c862b
2025年03月26日 22:11:09 +00:00
satoshi-sh
a3a2b83594 Add ContainerHardwareManager
Implement container-based cleaning process
Partial-Bug: #2100556
Change-Id: I39b92462d1454df888fc413e0aac439b9df199f7
2025年03月26日 19:21:11 +00:00
Zuul
3be946aedb Merge "Missing 'interface' in Clean Step" 2025年03月20日 19:27:40 +00:00
Satoshi-Sh
aa65b8c127 Missing 'interface' in Clean Step
Add 'interface': 'deploy' to the clean step configuration to avoid the error
Change-Id: Ie2297fc3375f6e0a389fa19789506a72fcf967e7
2025年03月18日 17:47:53 +00:00
ac85195b7a Update master for stable/2025.1
Add file to the reno documentation build to show release notes for
stable/2025.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2025.1.
Sem-Ver: feature
Change-Id: I259249774c39e95b214e77b2ae632c7278e78754
2025年03月18日 17:14:28 +00:00
cid
91f520356d Doc: Fix incorrect function in example code
The referenced bug looks mostly fixed. This patch is basically
closing it.
Closes-Bug: #2039072
Change-Id: I22b80f2c995c365e9f19c3a06c80656cb6ce8922
10.2.0
2025年03月07日 15:44:00 +01:00
Zuul
1e73cba5cb Merge "Remove pre-victoria cycle agent token transition upgrade support" 2025年03月05日 17:05:19 +00:00
Zuul
03afbfe4bc Merge "Fix the way qemu-img is called with prlimits" 2025年03月05日 12:31:50 +00:00
Zuul
20e75c2480 Merge "Missing __init__.py file" 2025年03月05日 07:33:48 +00:00
Zuul
0067239074 Merge "Lockout agent command results if a token is received" 2025年03月05日 07:33:46 +00:00
Thomas Goirand
14009b994f Missing __init__.py file
Change-Id: I916fe8187fb9d8513852b620df133309fbc92af1
2025年03月03日 14:11:04 +01:00
Dmitry Tantsur
fd8032b360 Fix the way qemu-img is called with prlimits
Using prlimits is incompatible with passing arguments as a list:
oslo.concurrency ends up executing something like:
/opt/ironic-python-agent/bin/python3 -m oslo_concurrency.prlimit \
 --as=2147483648 -- ['env', 'LC_ALL=C', 'LANG=C', 'qemu-img', 'info', \
 '/tmp/cirros-0.6.2-x86_64-disk.img', '--output=json']
Which obviously fails. I don't understand how our CI has worked so far,
but the Metal3 BMO suite fails on this.
Change-Id: I46dbcb0f73bcbe09bb89b5c7195259570412698e
2025年02月25日 14:26:10 +01:00
Zuul
badcd94f9d Merge "oci: permit an 'unknown' but valid image" 2025年02月19日 23:36:53 +00:00
Zuul
173c754c61 Merge "oci: Enable embedded authentication passing" 2025年02月18日 19:22:06 +00:00
Julia Kreger
94fde4b3b4 Remove agent_token_required upgrade knob
To help ease upgrades to Victoria, IPA had a knob added
to enable operators to express if agent tokens were required
in their deployment. Since then, the feature is required, however
we left the logic enabling the fun upgrade case handling.
At this point, this knob serves no further use, and can be removed.
Change-Id: I202f06e1b6598a802c9853fb99201c55e7a40cb1
2025年02月18日 14:36:18 +00:00
Julia Kreger
6c22ab2d39 Remove pre-victoria cycle agent token transition upgrade support
In order to support a state of mid-cluster upgrades, IPA had logic
to permit the case of getting a call where we didn't have a token
but got token, which could happen in a deployment which is mid-upgrade.
The code now explicitly lacks that permissive logic because, at this
point, upgrades no longer need to be supported from the pre-victoria
clusters by current IPA.
Related-Bug: #2086865
Related-Bug: #2086866
Change-Id: Ia4c459158098f48cde4a6f6f9c96b25431a88081
2025年02月18日 14:35:48 +00:00
Julia Kreger
a6ca65201a Lockout agent command results if a token is received
This is a second attempt at securing the get command output endpoint
which could have data such as logs which could potentially have
sensitive details and information after the agent has completed
one or more actions.
Now, if a token is receieved, the agent locks out the command results
endpoint, and requires all future calls to include it.
This allows for the agent to be backwards compatible.
Special thanks go to cid for his first attempt at this, which I took
for the basis of some of the testing required.
Closes-Bug: #2086866
Co-Authored-By: cid@gr-oss.io
Change-Id: Ia39a3894ef5efaffd7e1d22cc6244059a32175ff
2025年02月18日 06:32:48 -08:00
Zuul
8ab0bfbd9b Merge "Revert "Add token validation to GET command endpoints"" 2025年02月17日 18:35:53 +00:00