3scale-istio-adapter icon indicating copy to clipboard operation
3scale-istio-adapter copied to clipboard

Enable ppc64le on 3Scale-istio-adapter

Open krishvoor opened this issue 4 years ago • 7 comments

Hi,

Thanks for the wonderful readme/documentation, I could build 3scale-istio-adapter from the source almost instantly, run the tests outlined successfully on ppc64le architecture.

In case, if you are wondering what ppc64le architecture is? It is a RISC Architecture and is IBM's prodigy, IBM has recently made its ISA (Instruction Set Architecture) opensource, doing so they have contributed back to the opensource world. Many of the pioneers of banking, HPC industries today run on ppc64le architecture.

As an ongoing effort to enable open-source projects to which ppc64le architecture can add value, we are trying to enable this project. We have seen absolutely no deviation in build/test instructions. I will soon submit a PR to enable build/testing on ppc64le architecture as well.

So, what would it take from us to enable ppc64le in the CI/CD pipeline? Currently we are enabled/certified on Travis & Jenkins.

krishvoor avatar Apr 27 '21 12:04 krishvoor

Hi @krishvoor,

we currently use CircleCI for the CI pipeline of this project, but AFAICT there is no ppc64le support there for native compilation. If you have a cross compiler running on amd64 targeting ppc64le it should be just a matter of adding the appropriate job for CircleCI in the .circleci configuration.

Alternatively I'm happy to take your PR as well if you add a Travis pipeline with a ppc64le runner, as it can run in parallel with CircleCI.

unleashed avatar Apr 27 '21 12:04 unleashed

Hi @unleashed,

Thanks for your response, I agree with the latter proposal, for now, we can enable the ppc64le architecture via Travis Pipeline. I will work on a PR and submit for your review.

krishvoor avatar Apr 27 '21 20:04 krishvoor

Additionally, are the binaries/ container image published? If so, what will be the location?

krishvoor avatar Apr 27 '21 20:04 krishvoor

Currently the images are automatically built by Quay when tagging releases. I don't know if quay.io supports building ppc64le directly, but if not we can have a script pick up all different architecture builds and push a multiarch image to quay.io.

unleashed avatar Apr 28 '21 07:04 unleashed

Thanks for your review & merge - @unleashed

don't know if quay.io supports building ppc64le directly

AFAIK, we can build the container images on ppc64le architecture and push them to quay.io I can work with you and help you streamline anything that is needed from ppc64le architecture and aim to be available from next GA release.

krishvoor avatar May 01 '21 12:05 krishvoor

Hi @unleashed -

The short answer to this is no -

don't know if quay.io supports building ppc64le directly via the build - trigerrs

For multi-arch, with help of image manifest - we can do something like this -

Travis-CI - https://github.com/razee-io/RemoteResourceS3/blob/master/.travis.yml#L51 Corresponding Quay Repo- https://quay.io/repository/razee/remoteresources3?tag=latest&tab=tags

Let me know your thoughts ( especially on integration of Circle-CI on Travis-CI ), we can work something out.

krishvoor avatar May 14 '21 17:05 krishvoor

@krishvoor that looks just fine, especially when paired with the job to create the multiarch image - https://github.com/razee-io/RemoteResourceS3/blob/c1e29392d4a4fa292f1f9a926ab423fd7e5e003f/.travis.yml#L115. My concern is whether the creation of the multiarch image could fail due to any one of the arches not being built yet by the time it executes (since this is on Travis the only build that could be not yet published would be the amd64 one by Quay), but I think in practice Travis is likely to be slower and we can add some waiting to decrease the odds that the multi-arch image build will fail.

TL;DR: the approach sounds good to me.

unleashed avatar May 14 '21 17:05 unleashed