Skip to content

osbuild: add support for creating nvidiabluefield images#4476

Open
dustymabe wants to merge 4 commits intocoreos:mainfrom
dustymabe:dusty-nvidiabluefield
Open

osbuild: add support for creating nvidiabluefield images#4476
dustymabe wants to merge 4 commits intocoreos:mainfrom
dustymabe:dusty-nvidiabluefield

Conversation

@dustymabe
Copy link
Member

@dustymabe dustymabe commented Mar 6, 2026

This is to support creating images for the nvidiabluefield platform. See:

This is pulling RPMs from NVIDIA (mellanox.com) because they aren't
currently available in Fedora/CentOS/RHEL repos.

@openshift-ci
Copy link

openshift-ci bot commented Mar 6, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for creating NVIDIA Bluefield images by introducing a new osbuild manifest. While the changes are a good proof of concept, I've found a critical issue that would prevent the manifest from being parsed, along with a few medium-severity issues related to YAML formatting and best practices. Specifically, I've pointed out a trailing comma that breaks YAML syntax, the use of tabs instead of spaces for indentation, and a hardcoded GPG key that would be better referenced by its URL.

@dustymabe dustymabe force-pushed the dusty-nvidiabluefield branch 2 times, most recently from 56df6f7 to 2195c53 Compare March 9, 2026 17:48
The RHCOS builds browser seems to be throwing 504 when the object
doesn't exist:

```
Fetching: <snip>/storage/prod/streams/rhel-10.2/builds/builds.json
Updated builds/builds.json
Traceback (most recent call last):
  File "/usr/lib/coreos-assembler/cmd-buildfetch", line 329, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/lib/coreos-assembler/cmd-buildfetch", line 156, in main
    if fetcher.exists(f'{builddir}/{f}'):
       ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/coreos-assembler/cmd-buildfetch", line 251, in exists
    return self.exists_impl(url)
           ~~~~~~~~~~~~~~~~^^^^^
  File "/usr/lib/python3.14/site-packages/tenacity/__init__.py", line 334, in wrapped_f
    return copy(f, *args, **kw)
  File "/usr/lib/python3.14/site-packages/tenacity/__init__.py", line 473, in __call__
    do = self.iter(retry_state=retry_state)
  File "/usr/lib/python3.14/site-packages/tenacity/__init__.py", line 374, in iter
    result = action(retry_state)
  File "/usr/lib/python3.14/site-packages/tenacity/__init__.py", line 396, in <lambda>
    self._add_action_func(lambda rs: rs.outcome.result())
                                     ~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/concurrent/futures/_base.py", line 443, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/concurrent/futures/_base.py", line 395, in __get_result
    raise self._exception
  File "/usr/lib/python3.14/site-packages/tenacity/__init__.py", line 476, in __call__
    result = fn(*args, **kwargs)
  File "/usr/lib/coreos-assembler/cmd-buildfetch", line 291, in exists_impl
    raise Exception(f"Received rc {r.status_code} for {url}")
Exception: Received rc 504 for <snip>/storage/prod/streams/rhel-10.2/builds/10.2.20260307-0/x86_64/ostree-commit-object
failed to execute cmd-buildfetch: exit status 1
+ rc=1
+ set +x
```
This is to support creating images for the nvidiabluefield platform.See:

- coreos/ignition#2151
- osbuild/osbuild#2349
- https://issues.redhat.com/browse/COS-3469

This is pulling RPMs from NVIDIA (mellanox.com) because they aren't
currently availalbe in Fedora/CentOS/RHEL repos.
Will be used to create the nvidiabluefield buildroot for creating
the BFB image. Backport of osbuild/osbuild#2387
We can't depsolve here because the depsolve happens as part of a
preprocess step and essentially does it from a blank slate, so
it tries to pull in everything needed for a from scratch root.

We already have a tree as our starting point so this doesn't really
work for us IIUC. We just need to install the two RPMs and not consider
deps here (i.e. nodeps: true).
@dustymabe dustymabe force-pushed the dusty-nvidiabluefield branch from 98088b0 to 292c4b2 Compare March 10, 2026 13:30
@dustymabe dustymabe marked this pull request as ready for review March 10, 2026 15:47
Comment on lines +7 to +9
url: https://linux.mellanox.com/public/repo/doca/3.3.0/rhel9.6/arm64-dpu/mlxbf-bfscripts-3.6.0-1.el9.noarch.rpm
sha256:b35ad0f987fd3870e11ad5dbec3340a019a456b7879caa4b82c944c4ff6841b4:
url: https://linux.mellanox.com/public/repo/doca/3.3.0/rhel9.6/arm64-dpu/mlxbf-bootimages-signed-4.14.0-13878.aarch64.rpm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to add an egress rule for that in the build cluster ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably - @marmijo might be able to help us with that

Copy link
Member

@jbtrystram jbtrystram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how pressing this is, but I forsee a potential issue when we switch to bootc install.

@jbtrystram jbtrystram dismissed their stale review March 11, 2026 10:02

Understood later what was going on :)

@dustymabe
Copy link
Member Author

Not sure how pressing this is, but I forsee a potential issue when we switch to bootc install.

we need it for 4.22 - so getting this in soon would be ideal.

We should open an issue for the bootc install move to address then with the details. Can you do that?

@dustymabe dustymabe enabled auto-merge (rebase) March 11, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants