Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(ci): add s390x arch support #12750

Closed
wants to merge 11 commits into from

Conversation

Repana-Chowdappa
Copy link

Summary

Checklist

  • The Pull Request has tests
  • A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
  • There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Issue reference

Fix #[issue number]

@CLAassistant
Copy link

CLAassistant commented Mar 18, 2024

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added core/pdk build/bazel cherry-pick kong-ee schedule this PR for cherry-picking to kong/kong-ee labels Mar 18, 2024
@team-eng-enablement team-eng-enablement added the author/community PRs from the open-source community (not Kong Inc) label Mar 18, 2024
@hanshuebner hanshuebner requested a review from fffonion March 18, 2024 10:39
@hanshuebner
Copy link
Contributor

Thank you for this contribution! Please address the failures found the in the check run. We're going to provide additional feedback once we have reviewed.

@fffonion
Copy link
Contributor

fffonion commented Mar 18, 2024

It feels easier to do with a cross-compile, then you don't need to wait for nfpm etc to release s390x artifacts. Just duplicate what exist for aarch64 to s390x would work.

I created a WIP at s390x branch. You will then do

$ sudo apt install crossbuild-essential-s390x
$ bazel build //build:kong --platforms=//:generic-crossbuild-s390x --//:wasmx=False

$ file bazel-bin/external/openssl/openssl/lib/libssl.so.3
bazel-bin/external/openssl/openssl/lib/libssl.so.3: ELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=118e62dcbce58617a9d64728959e15294b2937de, with debug_info, not stripped

$ file bazel-out/k8-fastbuild/bin/build/kong-dev/openresty/nginx/sbin/nginx
bazel-out/k8-fastbuild/bin/build/kong-dev/openresty/nginx/sbin/nginx: ELF 64-bit MSB pie executable, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=8754d1623249bf073dc0fabde5555bd3769fc18d, for GNU/Linux 3.2.0, with debug_info, not stripped

@chronolaw chronolaw changed the title s390x arch support for kong chore(ci): add s390x arch support Mar 18, 2024
@ADD-SP
Copy link
Contributor

ADD-SP commented Mar 19, 2024

Internal discussion is ongoing, I converted this to a draft until we make a decision.

@ADD-SP ADD-SP marked this pull request as draft March 19, 2024 05:59
@hanshuebner
Copy link
Contributor

At this point, we do not have the hardware to verify that the changes actually work. @Repana-Chowdappa Are you running this anywhere? Do you have any idea how we could include the architecture into our CI testing?

@hanshuebner hanshuebner added the pending author feedback Waiting for the issue author to get back to a maintainer with findings, more details, etc... label Mar 19, 2024
@SriramaSharma
Copy link

At this point, we do not have the hardware to verify that the changes actually work. @Repana-Chowdappa Are you running this anywhere?

@hanshuebner , with the changes @Repana-Chowdappa has proposed, we have been able to build kong on s390x VM and we have been able to get it up and running.

Do you have any idea how we could include the architecture into our CI testing?

There is a process through which we can extend a s390x VM instance installed with Linux which can then be plugged into the community CI testing. I can share more details regarding this. Meanwhile, Could you please share info or point me to details of the community CI/CD and what would be the minimum requirement for a build node (presumably Linux) to include it into community CI/CD ?

@hanshuebner
Copy link
Contributor

Could you please share info or point me to details of the community CI/CD and what would be the minimum requirement for a build node (presumably Linux) to include it into community CI/CD ?

Our basic concern is that we don't have in-house knowledge or experience with s390x. For the mainstream architectures, we're confident enough that the CI testing based on ubuntu-22.04 on amd64 for the open source version of Kong Gateway sufficiently covers testing requirements for ARM based systems as well. In our enterprise offering, we're also running CI tests with arm64.

Given our lack of experience, we're not going to be able to provide s390x platform support for the community, but we may be able to include the platform as community supported. For that, we'll need to have a separate README markdown file that describes the status of support and contains any additional information that'd be useful to people using that platform. The document should also describe how the CI test suite can be run manually to verify that s390x support works. The basic prerequisite for making that work is that GitHub Action runners based on the s390x platform will be needed.

We're open to discussing other approaches. Basically, we don't have commercial interest in the port so the amount of resources that we can put into supporting it is limited. At this point, we like the idea of having s390x support for its geek value.

@Repana-Chowdappa Repana-Chowdappa marked this pull request as ready for review April 16, 2024 06:00
Copy link
Contributor

This PR is marked as stale because it has been open for 14 days with no activity.

@github-actions github-actions bot added the stale label May 28, 2024
@Repana-Chowdappa
Copy link
Author

@hanshuebner - We are working on bazel team to get dependency Buildifier binary for s390x. Once this available this CI failures will get resolve. Then we will try to provide s390x Infra (VM) to get tested on platform.

@hanshuebner hanshuebner removed the stale label Jun 27, 2024
Copy link
Contributor

This PR is marked as stale because it has been open for 14 days with no activity.

@github-actions github-actions bot added the stale label Jul 12, 2024
@github-actions github-actions bot removed the stale label Jul 26, 2024
Copy link
Contributor

This PR is marked as stale because it has been open for 14 days with no activity.

@github-actions github-actions bot added stale and removed stale labels Aug 20, 2024
Copy link
Contributor

This PR is marked as stale because it has been open for 14 days with no activity.

@github-actions github-actions bot added the stale label Sep 21, 2024
Copy link
Contributor

Dear contributor,

We are automatically closing this pull request because it has not seen any activity for three weeks.
We're sorry that we could not merge it. If you still want to pursure your patch, please feel free to
reopen it and address any remaining issues.

Your contribution is greatly appreciated!

Please have a look
our pledge to the community
for more information.

Sincerely,
Your Kong Gateway team

@github-actions github-actions bot closed this Sep 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author/community PRs from the open-source community (not Kong Inc) build/bazel cherry-pick kong-ee schedule this PR for cherry-picking to kong/kong-ee core/pdk pending author feedback Waiting for the issue author to get back to a maintainer with findings, more details, etc... size/S stale
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants