Skip to content

Conversation

Nash-123
Copy link

@Nash-123 Nash-123 commented Jun 22, 2025

Add s390x Architecture Support

Changes

  • Added s390x binary build configuration in ODH workflow:

    • Added gcc-s390x-linux-gnu and libc6-dev-s390x-cross dependencies
    • Configured s390x-specific build environment variables
  • Updated platform support in workflows:

    • Added linux/s390x to platforms list in conformance images
    • Added linux/s390x to platforms list in kubectl-delivery image
    • Updated QEMU setup to include s390x architecture

Testing

c.c: @modassarrana89

Summary by CodeRabbit

  • New Features

    • Added support for the linux/s390x architecture in operator and conformance image builds and publishing workflows.
  • Chores

    • Updated workflow configurations to enable multi-architecture builds, now including linux/s390x alongside existing platforms.

z103cb and others added 22 commits March 24, 2025 11:13
README.md update to include Release section

Release includes following:

-warning about not keeping metadata.yaml up to date.

-ODH release tracker information
Copy link

coderabbitai bot commented Jun 22, 2025

Walkthrough

The GitHub workflow configurations were updated to add support for the linux/s390x architecture. This includes building and publishing multi-architecture Docker images and enabling QEMU emulation for s390x in the relevant workflows. No changes were made to exported or public code entities.

Changes

File(s) Change Summary
.github/workflows/odh-build-and-publish-operator-image.yaml Added linux/s390x architecture support to operator image build and publish workflow.
.github/workflows/publish-conformance-images.yaml Included linux/s390x in the list of target platforms for conformance image publishing workflow.
.github/workflows/template-publish-image/action.yaml Enabled QEMU emulation for s390x in the image publishing workflow template.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant GitHub Actions
    participant QEMU
    participant Docker Buildx

    Developer->>GitHub Actions: Push workflow changes
    GitHub Actions->>QEMU: Setup emulation for amd64, arm64, ppc64le, s390x
    GitHub Actions->>Docker Buildx: Build images for amd64, arm64, ppc64le, s390x
    Docker Buildx-->>GitHub Actions: Multi-arch images built
    GitHub Actions->>Registry: Publish multi-arch images
Loading

Poem

🐰
A hop to s390x, so bold and so new,
Now images build for more than a few!
Workflows extended, QEMU joins in,
Multi-arch dreams begin with a spin.
From clouds to the mainframe, the rabbit will cheer—
More platforms supported, let’s all give a hear!


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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Nash-123 Nash-123 force-pushed the nishan/s390x-test branch from 5e22e15 to 137f524 Compare June 22, 2025 15:34
Copy link

@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: 0

🧹 Nitpick comments (1)
.github/workflows/odh-build-and-publish-operator-image.yaml (1)

64-64: Remove trailing whitespace

YAMLlint flagged trailing spaces on this blank line. Removing them will resolve formatting errors.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b27b899 and 5e22e15.

📒 Files selected for processing (4)
  • .github/workflows/odh-build-and-publish-operator-image.yaml (2 hunks)
  • .github/workflows/publish-conformance-images.yaml (1 hunks)
  • .github/workflows/publish-core-images.yaml (2 hunks)
  • .github/workflows/template-publish-image/action.yaml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/odh-build-and-publish-operator-image.yaml

[error] 64-64: trailing spaces

(trailing-spaces)

🔇 Additional comments (7)
.github/workflows/template-publish-image/action.yaml (1)

33-33: Add s390x to QEMU emulation platforms

Including s390x here will enable QEMU to emulate the new architecture for cross-platform builds. This aligns with the other workflows that now target linux/s390x.

.github/workflows/publish-conformance-images.yaml (1)

13-13: Include s390x in the conformance image platforms matrix

Adding linux/s390x here ensures conformance test images are built for the new architecture, matching the operator and core image workflows.

.github/workflows/odh-build-and-publish-operator-image.yaml (2)

64-75: Add s390x operator binary build step

The new cross-compilation step installs gcc-s390x-linux-gnu and libc6-dev-s390x-cross, then builds the operator binary for GOARCH=s390x. This mirrors the existing arm64 flow and correctly extends support.


95-95: Include s390x in multi-architecture image build

Updating platforms: linux/amd64,linux/arm64,linux/s390x ensures the operator container image is built for the new architecture as well.

.github/workflows/publish-core-images.yaml (3)

27-27: Add s390x to training-operator core image platforms

Including linux/s390x ensures the core image supports the new architecture.


31-31: Enable s390x for training-operator-v2 core image

Adding linux/s390x keeps v2 in sync with primary operator support.


43-43: Include s390x for kubectl-delivery core image

Aligns kubectl-delivery component with the newly added architecture support.

@Nash-123 Nash-123 force-pushed the nishan/s390x-test branch from 137f524 to 7a3569f Compare June 22, 2025 15:39
Copy link

@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: 0

🧹 Nitpick comments (1)
.github/workflows/odh-build-and-publish-operator-image.yaml (1)

64-64: Remove trailing whitespace.
The blank line at line 64 contains trailing spaces, which causes a YAML lint error.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5e22e15 and 137f524.

📒 Files selected for processing (4)
  • .github/workflows/odh-build-and-publish-operator-image.yaml (2 hunks)
  • .github/workflows/publish-conformance-images.yaml (1 hunks)
  • .github/workflows/publish-core-images.yaml (2 hunks)
  • .github/workflows/template-publish-image/action.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • .github/workflows/publish-conformance-images.yaml
  • .github/workflows/template-publish-image/action.yaml
  • .github/workflows/publish-core-images.yaml
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/odh-build-and-publish-operator-image.yaml

[error] 64-64: trailing spaces

(trailing-spaces)

🔇 Additional comments (2)
.github/workflows/odh-build-and-publish-operator-image.yaml (2)

65-75: Verify QEMU emulation for s390x builds.
This workflow cross-compiles the operator binary for linux/s390x but doesn’t register QEMU/binfmt support for multi-arch image creation. Please confirm that the runner environment can emulate s390x binaries or add an explicit QEMU setup step (e.g. docker/setup-qemu-action@v3) before the container build.


95-95: Add s390x to target platforms.
Including linux/s390x in the platforms list correctly extends the multi-arch image build.

Copy link

@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: 0

🧹 Nitpick comments (1)
.github/workflows/odh-build-and-publish-operator-image.yaml (1)

64-64: Remove trailing whitespace
The blank line at 64 contains trailing spaces and triggers YAMLlint. Please remove the extra spaces to keep the file clean.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 137f524 and 7a3569f.

📒 Files selected for processing (4)
  • .github/workflows/odh-build-and-publish-operator-image.yaml (2 hunks)
  • .github/workflows/publish-conformance-images.yaml (1 hunks)
  • .github/workflows/publish-core-images.yaml (2 hunks)
  • .github/workflows/template-publish-image/action.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • .github/workflows/publish-conformance-images.yaml
  • .github/workflows/template-publish-image/action.yaml
  • .github/workflows/publish-core-images.yaml
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/odh-build-and-publish-operator-image.yaml

[error] 64-64: trailing spaces

(trailing-spaces)

🔇 Additional comments (2)
.github/workflows/odh-build-and-publish-operator-image.yaml (2)

65-75: Add s390x operator binary build step
This step mirrors the existing amd64/arm64 builds, installs the correct s390x cross-compiler toolchain, and builds the binary with GOARCH=s390x. Ensure that build/images/training-operator/Dockerfile.multiarch is updated accordingly to copy the manager-s390x binary.


95-95: Include linux/s390x in multi-architecture platforms
Adding linux/s390x alongside linux/amd64,linux/arm64 enables multi-arch image builds for the s390x architecture.

@Nash-123 Nash-123 force-pushed the nishan/s390x-test branch from 7a3569f to d07134e Compare June 23, 2025 08:41
Copy link

@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: 0

🧹 Nitpick comments (1)
.github/workflows/odh-build-and-publish-operator-image.yaml (1)

64-64: Remove trailing whitespace.
A blank line (line 64) contains trailing spaces that may trigger lint errors.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7a3569f and d07134e.

📒 Files selected for processing (3)
  • .github/workflows/odh-build-and-publish-operator-image.yaml (2 hunks)
  • .github/workflows/publish-conformance-images.yaml (1 hunks)
  • .github/workflows/template-publish-image/action.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/template-publish-image/action.yaml
  • .github/workflows/publish-conformance-images.yaml
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/odh-build-and-publish-operator-image.yaml

[error] 64-64: trailing spaces

(trailing-spaces)

🔇 Additional comments (2)
.github/workflows/odh-build-and-publish-operator-image.yaml (2)

65-75: Approve s390x cross-compilation step.
The new step installs the s390x-linux-gnu-gcc cross-compiler and libc6-dev-s390x-cross packages, sets GOARCH=s390x, and builds the binary correctly.


95-95: Approve multi-arch platform inclusion.
Adding linux/s390x to the platforms list ensures the operator image is built for s390x alongside amd64 and arm64.

@Nash-123
Copy link
Author

@terrytangyuan could you please help to have a look onto the PR and approve the same!
Thanks!

@abhijeet-dhumal abhijeet-dhumal force-pushed the dev branch 2 times, most recently from b6939ba to 2178ac6 Compare August 5, 2025 09:41
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.