2665 Commits

Author SHA1 Message Date
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
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
Dmitry Tantsur
3968715908 Revert "Add token validation to GET command endpoints"
This reverts commit 6f860995c64d5143d8684a175e3b043bc3bf1f54.

Reason for revert: the change has broken virtually everyone who
has not updated Ironic before IPA. To make the matter worse, the
attached release note is not descriptive and does not explain
the upgrade impact.

The reverted change should be reworked to allow a graceful period.

Change-Id: I2a2a03dd8409af900b938494ceafd45a89e0c197
2025-02-17 13:40:19 +00:00
Zuul
3261052f5d Merge "follow-up: update release note for bootable container work" 2025-02-14 22:46:58 +00:00
Zuul
2e9964e126 Merge "Add token validation to GET command endpoints" 2025-02-14 22:46:56 +00:00
Zuul
7a70cc87fc Merge "Ensure IPA is locked down in rescue mode" 2025-02-14 22:46:52 +00:00
cid
a42980a016 Ensure IPA is locked down in rescue mode
Securely handle state transition by locking down IPA at the final
stage of rescue operation to prevent restarts on tenant networks.

Closes-Bug: #2086865
Change-Id: I8e1be8da93a8c3fdf3cff7ad386c702d970d15f1
2025-02-14 18:18:50 +01:00
cid
6f860995c6 Add token validation to GET command endpoints
Currently, we only validate authentication tokens for POST but not
for GET requests which could mean anyone can retrieve command results
without authentication. Adding that uniformly across all command-related
endpoints.

Closes-Bug: #2086866
Depends-On: https://review.opendev.org/c/openstack/ironic/+/941607
Change-Id: Ib7f58b1694273beeb25314984c6e049376244d86
2025-02-13 23:28:56 +00:00
Julia Kreger
c4998fc584 oci: permit an 'unknown' but valid image
One of the "fun" aspects of accessing OCI images, is we have no way
to realistically gain awareness of the underlying disk format in the
OCI model, at least unless it is hinted at in the data model.

Where we're unable to really figure that out is when a user
supplies a specific digest URL. Ironic recognizes this and "right sizes"
the process and data discovery and explicitly notes the disk format it
believe to be 'unknown'.

In order for IPA to be able to stream, and appropriately check
this data format, IPA has be "okay" with 'unknown'. Everything else
appears good to get to this point. This doesn't prohibit the image
safety checking, just allows for the perception mismatch when the
format is 'unknown'

Change-Id: Ibe38245e906c659057a3c5ea7d8a0e474599ff5c
2025-02-12 17:16:41 -08:00
Julia Kreger
a132e167f4 oci: Enable embedded authentication passing
For the OCI artifact retrieval case, to enable authentication to be
passed from the conductor (in the form of a bearer token), we need to
be able to handle the case where this data is present, and then
initiate the connection with the appropriate token.

Change-Id: I380b32671cbc3a640bc5012ac241a7244750d117
2025-02-12 16:54:56 -08:00
cid
ced6f3a02a Trivial:Remove codespell job (moved to pre-commit)
Change-Id: I938eaaf29e3bc803155baa11b450d4d92e349d58
2025-02-12 15:59:59 +01:00
Julia Kreger
c8763bba06 follow-up: update release note for bootable container work
Updates the release note for the bootable container work to
clarify the existence of the configuration option which can
be utilized to disable bootable container deployments in the
ramdisk.

Change-Id: I5b269947884c015db38cf98ac782472a62858455
2025-02-12 06:39:47 -08:00
Zuul
a6d1921056 Merge "Bootable container support" 2025-02-10 19:26:34 +00:00
Riccardo Pittau
fe55bee475 Revert "Configure ipa bugfix 10.1"
This reverts commit 412c8f3f4dd11d9eddf378e9ec92902195e14306.

Reason for revert: This landed in the wrong branch!

Change-Id: Ia4729c01e3e07f368fe691f91c3a1648a94c6d30
2025-02-10 11:05:12 +00:00
Julia Kreger
1508cc4cd0 Bootable container support
Adds support for bootable containers to be deployed by the agent.

Related: https://review.opendev.org/c/openstack/ironic/+/937897
Change-Id: I66cb37d117d2afc335f015fb1fc31bdbd5c3cee5
2025-02-07 15:59:48 -08:00
Riccardo Pittau
412c8f3f4d Configure ipa bugfix 10.1
Pin upper-constraints

Change-Id: Ideaf6a27ff01ed3f0dedba6df89202c5d7936817
2025-02-06 17:22:25 +01:00
Zuul
8dacfa611f Merge "Collect bus and driver for interfaces" 10.1.0 2025-02-03 20:15:14 +00:00
cid
a8b7b75e72 Trivial: Fix config help text about clock syncing
Closes-Bug: #2091593
Change-Id: I9798359b12de8c427263e8fc25f79b6f033211c4
2025-02-01 08:41:45 +01:00
Kaifeng Wang
96bf1ef012 Collect bus and driver for interfaces
It's useful to have pci bus address/driver collected, the operator can
use the information to configure portgroup in a consistent way.

Change-Id: I432bca881ad881bae6d5e67c9b6fb52fe55b4e1e
2025-02-01 15:22:26 +08:00
Doug Goldstein
b612bde7fa
migrate lints to pre-commit
Migrated the existing lints to pre-commit and switched some over to ruff
to follow the changes that have landed in the ironic repo.

Change-Id: I361ca1b8d4ac9738f9c45ba6a87c377f5aca22a8
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-01-29 17:30:18 -05:00
Zuul
0c35e7e2da Merge "Add support for burnin-gpu" 2025-01-29 19:20:10 +00:00
Zuul
234bc70f12 Merge "fix sphinx errors with incorrect backticks" 2025-01-29 17:15:59 +00:00