Skip to content

Conversation

@NickLarsenNZ
Copy link
Member

@NickLarsenNZ NickLarsenNZ commented Nov 21, 2025

Resolves #1349.

Description

Caution

This is WIP. Still fixing things locally

todo: add bit about daemontools

Definition of Done Checklist

Note

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant.

Please make sure all these things are done and tick the boxes

  • Changes are OpenShift compatible
  • All added packages (via microdnf or otherwise) have a comment on why they are added
  • Things not downloaded from Red Hat repositories should be mirrored in the Stackable repository and downloaded from there
  • All packages should have (if available) signatures/hashes verified
  • Add an entry to the CHANGELOG.md file
  • Integration tests ran successfully
TIP: Running integration tests with a new product image

The image can be built and uploaded to the kind cluster with the following commands:

boil build <IMAGE> --image-version <RELEASE_VERSION> --strip-architecture --load
kind load docker-image <MANIFEST_URI> --name=<name-of-your-test-cluster>

See the output of boil to retrieve the image manifest URI for <MANIFEST_URI>.

Note: This required an adjustment to the opa daemonset patch, otherwise compilation fails due to gcc-15 requirements.
Along the road to fixing this, we found some relevant links which might be useful in future:
- [Github Repo](https://github.com/daemontools/daemontools) (shows daemontools 0.76 is 12 years old)
- [daemontools Homepage](https://cr.yp.to/daemontools.html)
- [Debian bug report](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066623)
  - [Debian patches)(https://salsa.debian.org/debian/daemontools/-/tree/debian/latest/debian/patches?ref_type=heads)
  - [Reverted patch and GCC-15 fix](https://salsa.debian.org/debian/daemontools/-/commit/3e20831dfabe9dac4c5b6de3ae3945491280c80b#8756c63497c8dc39f7773438edf53b220c773f67)
@NickLarsenNZ NickLarsenNZ self-assigned this Nov 21, 2025
@NickLarsenNZ
Copy link
Member Author

Previously we installed nodejs:${VERSION} via DNF modules. DNF modules are obsolete.
Now we have these options:

  • Install the latest available node package
  • Install a specific node package via the full name
  • Install a version manager (eg: nvm) to set the version that the version of the product requires.

In a similar vein, python3.11 is no available, but I see python3-3.12.11. So we have these options:

  • Install the latest available python package
  • Install a specific python package via the full name
  • Install a version manager (eg: uv venv --python 3.11) to set the version that the version of the product requires.

@NickLarsenNZ
Copy link
Member Author

Well

[root@c9e4e15b7e89 /]# npm install -g nvm
npm warn deprecated nvm@0.0.4: This is NOT the correct nvm. Visit https://nvm.sh and use the curl command to install it.

@NickLarsenNZ
Copy link
Member Author

NickLarsenNZ commented Nov 21, 2025

nvm appears to be a script or set of scripts), so I think we either need to:

  • Upload (via script) the latest archive to Nexus, or
  • Leverage patchable (and create a fork) to do all of this withing the repo without having to interact with Nexus.

…thon version using it

WIP: Still need to fix the build layers, but this appears to work fine (tested the oldest and newest versions via the getting_started guide)
WIP: We might not need this, but I made it and it works.
@NickLarsenNZ
Copy link
Member Author

I pushed my WIP commits since we have the on-site and I might lose track of where I was at.

I think we should use uv to completely manage the python version being used during the build and in the resulting image.

Per 538b3ba, I have tested oldest and newest airflow (via getting_started) and it ran fine. The build stage needs similar treatment as the final stage.

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.

feat(ubi): Add and use UBI10 base image

2 participants