Skip to content

Conversation

Shafi-Hussain
Copy link
Contributor

@Shafi-Hussain Shafi-Hussain commented Oct 9, 2025

Description

Having EPEL repo enabled for ppc64le images raises alerts with Conforma.
The libraries coming from EPEL are needed by Pillow which gets built from source on ppc64le arch.

To avoid installation of libraries from EPEL, we build Pillow and repair the wheel to bundle all the necessary libraries in the wheel itself.

How Has This Been Tested?

Self checklist (all need to be checked):

  • Ensure that you have run make test (gmake on macOS) before asking for review
  • Changes to everything except Dockerfile.konflux files should be done in odh/notebooks and automatically synced to rhds/notebooks. For Konflux-specific changes, modify Dockerfile.konflux files directly in rhds/notebooks as these require special attention in the downstream repository and flow to the upcoming RHOAI release.

Merge criteria:

  • The commits are squashed in a cohesive manner and have meaningful messages.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work

Summary by CodeRabbit

  • New Features

    • Prebuilt Pillow wheel is now included in the Python 3.12 environment, ensuring availability across architectures (including ppc64le).
  • Bug Fixes

    • Improved ppc64le image stability by streamlining base dependencies.
    • Ensured consistent, explicit versioning for PyArrow and Pillow during builds.
  • Chores

    • Updated build pipeline to compile and bundle Pillow before installation.
    • Refined dependency handling and tooling on ppc64le to support wheel repairs and packaging.

@github-actions github-actions bot added the review-requested GitHub Bot creates notification on #pr-review-ai-ide-team slack channel label Oct 9, 2025
@openshift-ci openshift-ci bot added the size/m label Oct 9, 2025
@openshift-ci openshift-ci bot requested review from dibryant and jiridanek October 9, 2025 11:20
Copy link
Contributor

openshift-ci bot commented Oct 9, 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 jesuino 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

Copy link
Contributor

coderabbitai bot commented Oct 9, 2025

Walkthrough

Removed EPEL/lcms-related installs for ppc64le in Dockerfile. Updated devel_env_setup.sh: added build_pillow function, adjusted build_pyarrow to use provided version, installed patchelf on ppc64le, parsed Pillow version from pylock.toml, and built Pillow wheel before installing wheels.

Changes

Cohort / File(s) Summary of changes
CPU base image adjustments
codeserver/ubi9-python-3.12/Dockerfile.cpu
Removed EPEL and image-processing libs installation for ppc64le in cpu-base stage; retained architecture check; unchanged OpenBLAS build step.
Build orchestration and dependencies
codeserver/ubi9-python-3.12/devel_env_setup.sh
Added build_pillow() to clone/build/repair Pillow wheels; build_pyarrow() now uses explicit version arg; on ppc64le installs patchelf; extracts PILLOW_VERSION from pylock.toml; builds Pillow wheel and stages it before wheel installation.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The pull request description follows the required template by including the “Description,” “How Has This Been Tested?” section, and checklists, but it omits any actual testing details or test environment information and leaves all checklist items unchecked, so the key verification information is missing. Please populate the “How Has This Been Tested?” section with specific testing procedures, environments, and results, check off or address each item in the self-check and merge criteria lists, and confirm that automated and manual tests have passed to fully satisfy the template’s requirements.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The title accurately reflects the primary purpose of the changeset by highlighting the removal of EPEL from the Codeserver final image, which is the main modification introduced in this pull request. It is concise and directly related to the key change without introducing unrelated details. While it could drop the phrase “Changes to” for brevity, it still clearly conveys the main update to a reviewer at a glance.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci bot added size/m and removed size/m labels Oct 9, 2025
@Shafi-Hussain
Copy link
Contributor Author

/build-konflux

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5a1395 and c565e11.

📒 Files selected for processing (2)
  • codeserver/ubi9-python-3.12/Dockerfile.cpu (0 hunks)
  • codeserver/ubi9-python-3.12/devel_env_setup.sh (3 hunks)
💤 Files with no reviewable changes (1)
  • codeserver/ubi9-python-3.12/Dockerfile.cpu
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: build (codeserver-ubi9-python-3.12, 3.12, linux/arm64, false) / build
  • GitHub Check: build (codeserver-ubi9-python-3.12, 3.12, linux/amd64, false) / build
  • GitHub Check: Red Hat Konflux / odh-workbench-codeserver-datascience-cpu-py312-ubi9-on-pull-request

Comment on lines +25 to +30
: ================= Fix Pillow Wheel ====================
cd /pillowwheel
uv pip install auditwheel
auditwheel repair pillow*.whl
mv wheelhouse/pillow*.whl ${WHEEL_DIR}

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix Pillow wheel glob (build currently aborts).

auditwheel emits Pillow-...whl (capital P), so mv wheelhouse/pillow*.whl never matches. With set -e, the build stops here and no wheels make it into WHEEL_DIR. Please switch the glob to wheelhouse/Pillow*.whl (or *.whl) so the move succeeds.

🤖 Prompt for AI Agents
In codeserver/ubi9-python-3.12/devel_env_setup.sh around lines 25 to 30, the mv
command uses a lowercase glob that never matches auditwheel's output
(Pillow-*.whl) causing the script to abort; change the move to use a matching
glob such as wheelhouse/Pillow*.whl (or wheelhouse/*.whl) so the files are
actually moved into ${WHEEL_DIR}; ensure the mv line is updated accordingly and
consider leaving the glob broad enough to catch any capitalization variants.

Copy link
Contributor

openshift-ci bot commented Oct 9, 2025

@Shafi-Hussain: The following tests 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/codeserver-ubi9-python-3-12-pr-image-mirror c565e11 link true /test codeserver-ubi9-python-3-12-pr-image-mirror
ci/prow/images c565e11 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
Copy link
Contributor Author

/build-konflux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review-requested GitHub Bot creates notification on #pr-review-ai-ide-team slack channel size/m
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant