Skip to content

Conversation

Nash-123
Copy link

Summary

Follow UP PR: opendatahub-io#2568

Enable s390x architecture support for TrustyAI Jupyter notebook Targeted for 3.0 Release while preserving existing functionality for amd64, arm64, and ppc64le.


Changes Made

Dockerfile.cpu && Dockerfile.konflux.cpu

  • Add s390x to pre-built wheel installation: Include s390x alongside ppc64le in the condition that installs pre-built PyTorch and PyArrow wheels from whl-cache
  • Install runtime dependencies: Add openblas, openblas-threads, libimagequant, and libraqm packages for s390x/ppc64le runtime
  • Create OpenBLAS symlink: Link libopenblas.so.0 → libopenblasp.so.0 to fix library name mismatch (RHEL provides libopenblasp.so.0 but PyTorch/NumPy expect libopenblas.so.0)
  • Update LD_LIBRARY_PATH: Add /usr/lib64 to library search path for OpenBLAS discovery for Z
  • Update comments: Clarify that devel_env_setup.sh handles both ppc64le and s390x

devel_env_setup.sh

  • Install s390x build dependencies: gcc, cmake, ninja-build, python3-devel, openblas-devel, and other compilation tools
  • Install Rust: Required for building Python packages with Rust components (cryptography, etc.)
  • Set Python alternatives: Configure python3.12 as default Python for s390x
  • Build PyTorch from source: Clone and compile PyTorch v2.7.1 with s390x-optimized build flags
  • Build PyArrow from source: Clone and compile PyArrow v20.0.0 with s390x-specific CMake configuration

Testing Validated

image image image

Signed-off-by: Nishan Acharya <[email protected]>
@Nash-123 Nash-123 self-assigned this Oct 12, 2025
@openshift-ci openshift-ci bot requested review from atheo89 and dibryant October 12, 2025 14:47
Copy link

openshift-ci bot commented Oct 12, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign atheo89 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Nash-123
Copy link
Author

/build-konflux

Copy link

openshift-ci bot commented Oct 12, 2025

@Nash-123: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/images 6af9709 link true /test images

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Shafi-Hussain pushed a commit to odh-on-pz/notebooks-downstream that referenced this pull request Oct 13, 2025
…/usr/share/container-scripts/nginx/common.sh` and duplicates of thereof (red-hat-data-services#1628)

* fix(nginx/common.sh) fix shell script that was not POSIX-complaint

Let's rather add the `#!/usr/bin/env bash` and just use bash

---------

Co-authored-by: Jiri Daněk <[email protected]>
Shafi-Hussain pushed a commit to odh-on-pz/notebooks-downstream that referenced this pull request Oct 13, 2025
…/usr/share/container-scripts/nginx/common.sh` and duplicates of thereof (red-hat-data-services#1628)

* fix(nginx/common.sh) fix shell script that was not POSIX-complaint

Let's rather add the `#!/usr/bin/env bash` and just use bash

---------

Co-authored-by: Jiri Daněk <[email protected]>
Shafi-Hussain pushed a commit to odh-on-pz/notebooks-downstream that referenced this pull request Oct 13, 2025
* RHOAIENG-34309: fix(jupyterlab-extension): remove gio command call and use custom code to clean trashed files (opendatahub-io#2510)

* opendatahub-io#1271: fix(scripts): posix noncompliance in `nginx/root/usr/share/container-scripts/nginx/common.sh` and duplicates of thereof (red-hat-data-services#1628)

* fix(nginx/common.sh) fix shell script that was not POSIX-complaint

Let's rather add the `#!/usr/bin/env bash` and just use bash

---------

Co-authored-by: Jiri Daněk <[email protected]>

* update all runtimes imagestreams name to reflect to the new naming format

* RHAIENG-1186: chore(dockerfile): bump code-server version to v4.104.0 in UBI9 Python 3.12 image

* RHAIENG-1186: chore(dockerfile): remove custom patch, change is already in code-sever

* coder/code-server#7418

Revert "increase available memory for the nodejs javascript vm (opendatahub-io#2356)"

This reverts commit e3f47c1.

* RHAIENG-1186: chore(code-server): update nodejs to a compatible version

Choosing 2.24 because we're building for RHOAI 2.25 EUS.

```
> [email protected] preinstall
> node build/npm/preinstall.js

*** Please use Node.js v22.15.1 or later for development.
/root/code-server/lib/vscode/build/npm/preinstall.js:14
```

* RHAIENG-1186: chore(code-server): update to gcc-toolset-14 with CXXFLAGS="-std=c++20"
```
npm error /root/.cache/node-gyp/24.8.0/include/node/v8config.h:13:2: error: #error "C++20 or later required."
npm error    13 | #error "C++20 or later required."
```

* RHAIENG-1186: chore(code-server): the build is unhappy about nodejs 24, so use 22.19.0

```
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '[email protected]',
npm warn EBADENGINE   required: { node: '22' },
npm warn EBADENGINE   current: { node: 'v24.8.0', npm: '11.6.0' }
npm warn EBADENGINE }
```

* RHAIENG-1186: chore(code-server): it looks like there may be a justification for installing node 22.18

When I had 22.19.0, the build downloaded 22.18.0 at one point.

```
  [18:37:46] Starting node-linux-x64 ...
  [18:37:46] Downloading node.js 22.18.0 linux x64 from https://nodejs.org...
```

* RHAIENG-1186: chore(code-server): disable the getting started override about deploying code-server for the team

https://github.com/coder/code-server/blob/v4.104.0/patches/getting-started.diff

* RHAIENG-1023: fix(rstudio): update the esbuild inside of rstudio's installation as it was done in the poc (opendatahub-io#2513)

* Fix typos

* Issue opendatahub-io#1789: chore(repo): set up lfs for vscode extensions vendored into the repo (opendatahub-io#2516)

For now, only move existing extensions already on main into lfs. Will not rewrite history to remove the previously added versions.

This means that repository size is not decreased by this commit. But it should not grow so much any more every time code-server is updated.

```
❯ brew install git-lfs
❯ git lfs track "*.vsix"
Tracking "*.vsix"
❯ cat .gitattributes
ci/secrets/** filter=git-crypt diff=git-crypt
*.vsix filter=lfs diff=lfs merge=lfs -text
❯ git add .gitattributes
```

Issue opendatahub-io#1789: chore(repo): update docs with git-lfs instructions for codeserver in Extensions.md

* Issue opendatahub-io#1789: chore(repo): convert the ``*.vsix` files on main into git-lfs (opendatahub-io#2516)

codeserver/ubi9-python-3.12/utils/[email protected],codeserver/ubi9-python-3.12/utils/ms-python.python-2025.2.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-2025.2.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-keymap-1.1.2.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-renderers-1.1.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.vscode-jupyter-cell-tags-0.1.9.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.vscode-jupyter-slideshow-0.1.6.vsix: convert to Git LFS

```
❯ git lfs migrate import --no-rewrite codeserver/ubi9-python-3.12/utils/*.vsix
override changes in your working copy?  All uncommitted changes will be lost! [y/N] y
changes in your working copy will be overridden ...
Checkout: ..., done.
```

* Issue opendatahub-io#1789: chore(repo): add a conditional git-lfs checkout in github actions when needed (opendatahub-io#2516)

```
[4/6] STEP 13/33: RUN mkdir -p /opt/app-root/extensions-temp &&     code-server --install-extension /opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp &&     code-server --install-extension /opt/app-root/bin/utils/ms-toolsai.jupyter-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp
[2025-09-19T08:59:44.572Z] info  Wrote default config file to /opt/app-root/src/.config/code-server/config.yaml
Installing extensions...
Error: End of central directory record signature not found. Either not a zip file, or file is truncated.
    at k8 (file:///usr/lib/code-server/lib/vscode/out/server-main.js:48:2239)
    at file:///usr/lib/code-server/lib/vscode/out/server-main.js:48:3567
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:40:7
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:190:5
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:712:5
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/fd-slicer.js:33:7
    at FSReqCallback.wrapper [as oncomplete] (node:fs:671:5) {
  code: 'Extract',
  name: 'Extract'
}
Failed Installing Extensions: file:///opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix
```

I'll locate the workflow template and the code paths that determine when a codeserver image is being built, then update the checkout step to use LFS conditionally.

[2 tools called]

I'll open the workflow template to see the checkout step and the job matrix to identify how to detect codeserver builds, then edit it to set checkout lfs conditionally.

[1 tool called]

I’m going to update the workflow template to set the checkout action’s LFS option conditionally: enabled when `inputs.target` contains `codeserver`, disabled otherwise, for both the normal and pull_request_target checkout steps.

[2 tools called]

- I found the workflow template and updated the checkout steps to toggle LFS based on whether we’re building a codeserver image.

Changes made in `.github/workflows/build-notebooks-TEMPLATE.yaml`:
- For both checkout steps, added `with.lfs: ${{ contains(inputs.target, 'codeserver') }}`.
- This sets LFS to true when `inputs.target` contains `codeserver`, and false otherwise, including the `pull_request_target` case.

Example of the updated blocks:
```12:16:.github/workflows/build-notebooks-TEMPLATE.yaml
      - uses: actions/checkout@v5
        if: ${{ fromJson(inputs.github).event_name != 'pull_request_target' }}
        with:
          lfs: ${{ contains(inputs.target, 'codeserver') }}
```
```66:71:.github/workflows/build-notebooks-TEMPLATE.yaml
      - uses: actions/checkout@v5
        if: ${{ fromJson(inputs.github).event_name == 'pull_request_target' }}
        with:
          ref: "refs/pull/${{ fromJson(inputs.github).event.number }}/merge"
          lfs: ${{ contains(inputs.target, 'codeserver') }}
```

Summary:
- Conditional LFS checkout implemented in the workflow template for codeserver builds; no lints reported.

* RHAIENG-286: 2025b images package upgrade (opendatahub-io#2414)

* Upgrade CodeServer packages for 2025b

* Upgrade Jupyter DataScience packages for 2025b

* Upgrade Jupyter Minimal packages for 2025b

* Upgrade Jupyter PyTorch LLMCompressor packages for 2025b

* Upgrade Jupyter PyTorch packages for 2025b

* Upgrade Jupyter ROCm PyTorch packages for 2025b

* Upgrade Jupyter ROCm TensorFlow packages for 2025b

* Upgrade Jupyter TensorFlow packages for 2025b

* Upgrade Jupyter TrustyAI packages for 2025b

* Upgrade RStudio packages for 2025b

* Upgrade Runtime images for 2025b

* Update Makefile's RELEASE flag to `2025b` version

* Change build-args to use CUDA 12.8 instead of CUDA 12.6

* Fix tests, manifests and try to ensure consistency between packages and images

* Fix minor package version check and ruff linter issues

* Add missing comma to tuples on tests

* Ignore RUFF's COM819 about commas and lists

* Use RUFF format to fix minor indentation issues

* Update wrong CodeFlare SDK version on packages to standardize them

* Update build-args for ROCm-based images to use ROCm v6.4 instead of ROCm v6.2

* RHAIENG-1193: codeserver(repo): update vscode extensions for 2025b release from Open VSX Registry (opendatahub-io#2518)

---------

Co-authored-by: William Antônio Siqueira <[email protected]>
Co-authored-by: satnam72 <[email protected]>
Co-authored-by: Jiri Daněk <[email protected]>
Co-authored-by: dibryant <[email protected]>
Co-authored-by: Daniel Lutz <[email protected]>
Shafi-Hussain pushed a commit to odh-on-pz/notebooks-downstream that referenced this pull request Oct 13, 2025
* RHOAIENG-34309: fix(jupyterlab-extension): remove gio command call and use custom code to clean trashed files (opendatahub-io#2510)

* opendatahub-io#1271: fix(scripts): posix noncompliance in `nginx/root/usr/share/container-scripts/nginx/common.sh` and duplicates of thereof (red-hat-data-services#1628)

* fix(nginx/common.sh) fix shell script that was not POSIX-complaint

Let's rather add the `#!/usr/bin/env bash` and just use bash

---------

Co-authored-by: Jiri Daněk <[email protected]>

* update all runtimes imagestreams name to reflect to the new naming format

* RHAIENG-1186: chore(dockerfile): bump code-server version to v4.104.0 in UBI9 Python 3.12 image

* RHAIENG-1186: chore(dockerfile): remove custom patch, change is already in code-sever

* coder/code-server#7418

Revert "increase available memory for the nodejs javascript vm (opendatahub-io#2356)"

This reverts commit e3f47c1.

* RHAIENG-1186: chore(code-server): update nodejs to a compatible version

Choosing 2.24 because we're building for RHOAI 2.25 EUS.

```
> [email protected] preinstall
> node build/npm/preinstall.js

*** Please use Node.js v22.15.1 or later for development.
/root/code-server/lib/vscode/build/npm/preinstall.js:14
```

* RHAIENG-1186: chore(code-server): update to gcc-toolset-14 with CXXFLAGS="-std=c++20"
```
npm error /root/.cache/node-gyp/24.8.0/include/node/v8config.h:13:2: error: #error "C++20 or later required."
npm error    13 | #error "C++20 or later required."
```

* RHAIENG-1186: chore(code-server): the build is unhappy about nodejs 24, so use 22.19.0

```
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '[email protected]',
npm warn EBADENGINE   required: { node: '22' },
npm warn EBADENGINE   current: { node: 'v24.8.0', npm: '11.6.0' }
npm warn EBADENGINE }
```

* RHAIENG-1186: chore(code-server): it looks like there may be a justification for installing node 22.18

When I had 22.19.0, the build downloaded 22.18.0 at one point.

```
  [18:37:46] Starting node-linux-x64 ...
  [18:37:46] Downloading node.js 22.18.0 linux x64 from https://nodejs.org...
```

* RHAIENG-1186: chore(code-server): disable the getting started override about deploying code-server for the team

https://github.com/coder/code-server/blob/v4.104.0/patches/getting-started.diff

* RHAIENG-1023: fix(rstudio): update the esbuild inside of rstudio's installation as it was done in the poc (opendatahub-io#2513)

* Fix typos

* Issue opendatahub-io#1789: chore(repo): set up lfs for vscode extensions vendored into the repo (opendatahub-io#2516)

For now, only move existing extensions already on main into lfs. Will not rewrite history to remove the previously added versions.

This means that repository size is not decreased by this commit. But it should not grow so much any more every time code-server is updated.

```
❯ brew install git-lfs
❯ git lfs track "*.vsix"
Tracking "*.vsix"
❯ cat .gitattributes
ci/secrets/** filter=git-crypt diff=git-crypt
*.vsix filter=lfs diff=lfs merge=lfs -text
❯ git add .gitattributes
```

Issue opendatahub-io#1789: chore(repo): update docs with git-lfs instructions for codeserver in Extensions.md

* Issue opendatahub-io#1789: chore(repo): convert the ``*.vsix` files on main into git-lfs (opendatahub-io#2516)

codeserver/ubi9-python-3.12/utils/[email protected],codeserver/ubi9-python-3.12/utils/ms-python.python-2025.2.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-2025.2.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-keymap-1.1.2.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.jupyter-renderers-1.1.0.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.vscode-jupyter-cell-tags-0.1.9.vsix,codeserver/ubi9-python-3.12/utils/ms-toolsai.vscode-jupyter-slideshow-0.1.6.vsix: convert to Git LFS

```
❯ git lfs migrate import --no-rewrite codeserver/ubi9-python-3.12/utils/*.vsix
override changes in your working copy?  All uncommitted changes will be lost! [y/N] y
changes in your working copy will be overridden ...
Checkout: ..., done.
```

* Issue opendatahub-io#1789: chore(repo): add a conditional git-lfs checkout in github actions when needed (opendatahub-io#2516)

```
[4/6] STEP 13/33: RUN mkdir -p /opt/app-root/extensions-temp &&     code-server --install-extension /opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp &&     code-server --install-extension /opt/app-root/bin/utils/ms-toolsai.jupyter-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp
[2025-09-19T08:59:44.572Z] info  Wrote default config file to /opt/app-root/src/.config/code-server/config.yaml
Installing extensions...
Error: End of central directory record signature not found. Either not a zip file, or file is truncated.
    at k8 (file:///usr/lib/code-server/lib/vscode/out/server-main.js:48:2239)
    at file:///usr/lib/code-server/lib/vscode/out/server-main.js:48:3567
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:40:7
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:190:5
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/index.js:712:5
    at /usr/lib/code-server/lib/vscode/node_modules/yauzl/fd-slicer.js:33:7
    at FSReqCallback.wrapper [as oncomplete] (node:fs:671:5) {
  code: 'Extract',
  name: 'Extract'
}
Failed Installing Extensions: file:///opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix
```

I'll locate the workflow template and the code paths that determine when a codeserver image is being built, then update the checkout step to use LFS conditionally.

[2 tools called]

I'll open the workflow template to see the checkout step and the job matrix to identify how to detect codeserver builds, then edit it to set checkout lfs conditionally.

[1 tool called]

I’m going to update the workflow template to set the checkout action’s LFS option conditionally: enabled when `inputs.target` contains `codeserver`, disabled otherwise, for both the normal and pull_request_target checkout steps.

[2 tools called]

- I found the workflow template and updated the checkout steps to toggle LFS based on whether we’re building a codeserver image.

Changes made in `.github/workflows/build-notebooks-TEMPLATE.yaml`:
- For both checkout steps, added `with.lfs: ${{ contains(inputs.target, 'codeserver') }}`.
- This sets LFS to true when `inputs.target` contains `codeserver`, and false otherwise, including the `pull_request_target` case.

Example of the updated blocks:
```12:16:.github/workflows/build-notebooks-TEMPLATE.yaml
      - uses: actions/checkout@v5
        if: ${{ fromJson(inputs.github).event_name != 'pull_request_target' }}
        with:
          lfs: ${{ contains(inputs.target, 'codeserver') }}
```
```66:71:.github/workflows/build-notebooks-TEMPLATE.yaml
      - uses: actions/checkout@v5
        if: ${{ fromJson(inputs.github).event_name == 'pull_request_target' }}
        with:
          ref: "refs/pull/${{ fromJson(inputs.github).event.number }}/merge"
          lfs: ${{ contains(inputs.target, 'codeserver') }}
```

Summary:
- Conditional LFS checkout implemented in the workflow template for codeserver builds; no lints reported.

* RHAIENG-286: 2025b images package upgrade (opendatahub-io#2414)

* Upgrade CodeServer packages for 2025b

* Upgrade Jupyter DataScience packages for 2025b

* Upgrade Jupyter Minimal packages for 2025b

* Upgrade Jupyter PyTorch LLMCompressor packages for 2025b

* Upgrade Jupyter PyTorch packages for 2025b

* Upgrade Jupyter ROCm PyTorch packages for 2025b

* Upgrade Jupyter ROCm TensorFlow packages for 2025b

* Upgrade Jupyter TensorFlow packages for 2025b

* Upgrade Jupyter TrustyAI packages for 2025b

* Upgrade RStudio packages for 2025b

* Upgrade Runtime images for 2025b

* Update Makefile's RELEASE flag to `2025b` version

* Change build-args to use CUDA 12.8 instead of CUDA 12.6

* Fix tests, manifests and try to ensure consistency between packages and images

* Fix minor package version check and ruff linter issues

* Add missing comma to tuples on tests

* Ignore RUFF's COM819 about commas and lists

* Use RUFF format to fix minor indentation issues

* Update wrong CodeFlare SDK version on packages to standardize them

* Update build-args for ROCm-based images to use ROCm v6.4 instead of ROCm v6.2

* RHAIENG-1193: codeserver(repo): update vscode extensions for 2025b release from Open VSX Registry (opendatahub-io#2518)

---------

Co-authored-by: William Antônio Siqueira <[email protected]>
Co-authored-by: satnam72 <[email protected]>
Co-authored-by: Jiri Daněk <[email protected]>
Co-authored-by: dibryant <[email protected]>
Co-authored-by: Daniel Lutz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant