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

Support ppc64le OpenSearch distribution for POWER architecture. #3122

Open
SonalMahambrey1 opened this issue Jan 20, 2023 · 60 comments
Open
Assignees
Labels
enhancement New Enhancement ppc64le

Comments

@SonalMahambrey1
Copy link

Opensearch snapshot for X64 is available at https://artifacts.opensearch.org/snapshots/core/opensearch/3.0.0-SNAPSHOT/opensearch-min-3.0.0-SNAPSHOT-linux-x64-latest.tar.gz
As power architecture is supported now, any update when the similar artifacts will be published for ppc64le as well ?

@SonalMahambrey1 SonalMahambrey1 added bug Something isn't working untriaged Issues that have not yet been triaged labels Jan 20, 2023
@dblock
Copy link
Member

dblock commented Jan 20, 2023

I am not sure whether the build team intends to publish these, or whether the team at IBM (cc: @seth-priya) wants to maintain this port, but let's move this into opensearch-build.

@dblock dblock transferred this issue from opensearch-project/OpenSearch Jan 20, 2023
@seth-priya
Copy link

@dblock it would be great if the build team can publish these and we will continue to watch for Power specific issues and fix them, on our side.

@dblock
Copy link
Member

dblock commented Jan 25, 2023

@bbarani @peterzhuamazon what would it take to add those to automation? Maybe @seth-priya can contribute?

@zelinh
Copy link
Member

zelinh commented Feb 3, 2023

[Triages] First step is to have the IBM server in order to move forward. Adding @elfisher and @setiah for discussion.

@zelinh zelinh removed the untriaged Issues that have not yet been triaged label Feb 3, 2023
@seth-priya
Copy link

There are a few places to get access to ppc64le VMs, one of them is https://osuosl.org/services/powerdev/request_hosting/

@Sunidhi-Gaonkar1
Copy link
Contributor

Hi Team, any thoughts on above?

@jordarlu
Copy link
Contributor

jordarlu commented Apr 4, 2023

Adding @bbarani to comment on future supporting PowerPC 64 Little Endian ..thanks!

@seth-priya
Copy link

thanks @jordarlu , we can definitely contribute the changes that are needed for building the artifacts via automation and we can also discuss about the infrastructure that's needed for the same (if needed on a call?). As of now - we already have the Power changes up-streamed for the main opensearch repository and have been able to locally build the images and test them and also have a working build and image for opensearch-dashboards. Currently, we are building/validating all of the opensearch plugins separately on Power to make sure all of them work smoothly (though from what we have seen so far, they should). I am also adding our overall technical lead/architect @gerrith3 here.

@gerrith3
Copy link

gerrith3 commented Apr 5, 2023

Yeah - we would love to help support getting a CI environment set up for ppc64le. I'd love to know what the options are from your side, what we would need to integrate with, etc. We have some challenges with broadly available CI platforms but we do have several solutions, alternatives, and work arounds to integrate with most/many environments.

@Sapana-Khemkar
Copy link

@dblock, @bbarani, @jordarlu and others,
I am from @seth-priya's team. We can help adding/maintaining ppc64le support to CI environment. Let us know how can we
move further on this.

@bbarani
Copy link
Member

bbarani commented Dec 12, 2023

@Sapana-Khemkar Thanks for your support. How do you want to proceed with next steps? Would a kick-off call help to get things started soon? It would be really easy to collaborate via OpenSearch Slack workspace.

@Sapana-Khemkar
Copy link

@Sapana-Khemkar Thanks for your support. How do you want to proceed with next steps? Would a kick-off call help to get things started soon? It would be really easy to collaborate via OpenSearch Slack workspace.

@bbarani joined slack and sent you message on devops channel.

@prudhvigodithi
Copy link
Collaborator

Had an offline sync up with @Sapana-Khemkar, since OpenSearch supports ppc64le, having a Power9 server and running the build and assemble workflow should give us an artifact for ppc64le. While we request for the server and integrate with the CI/CD @Sapana-Khemkar can you please post the results of the steps (manually executing the workflows on your server inside the opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v3 docker) we discussed over the call?
Thank you

@gerrith3
Copy link

Hey for the OpenSearch folks, if you do request a free VM at OSL per the link earlier in this thread, reference my name as your IBM support contact and we will make sure it gets expedited for you. We would love to see this integrated and we encounter more users of OpenSearch on Power all the time, so this would be a great step for all of us!!

@gerrith3
Copy link

And, apologies if this should be in a thread of its own, but does anyone know if OpenSearch is keeping up with Elasticsearch's ability to be used as a vector database? I've been seeing that question come up several times and at the moment, I have no clue. ;) thanks, and apologies for hijacking another thread, although this is really yet another Power use case for us. ;)

@Sunidhi-Gaonkar1
Copy link
Contributor

Hi @prudhvigodithi , I am from @seth-priya and @Sapana-Khemkar's team. I was able to manually execute the build and assemble workflows on Power server and create an artifact for ppc64le.
The docker image opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v3 is not available for power, hence was not able to execute workflows inside the container.
There were a few changes required to be made. I have attached logs of output for execution of build and assemble workflows, also attached the changes that were made to build the artifact.

OpenSearch_assemble.txt
OpenSearch_build.txt
OpenSearch_Patch.txt

@bbarani
Copy link
Member

bbarani commented Dec 15, 2023

And, apologies if this should be in a thread of its own, but does anyone know if OpenSearch is keeping up with Elasticsearch's ability to be used as a vector database? I've been seeing that question come up several times and at the moment, I have no clue. ;) thanks, and apologies for hijacking another thread, although this is really yet another Power use case for us. ;)

OpenSearch indeed has made great strides in Vector DB space. It uses K-NN functionality as documented in this blog to implement vector db functionality. The issues related to Vector DB functionalities are tracked here.

@Sapana-Khemkar
Copy link

Had an offline sync up with @Sapana-Khemkar, since OpenSearch supports ppc64le, having a Power9 server and running the build and assemble workflow should give us an artifact for ppc64le. While we request for the server and integrate with the CI/CD @Sapana-Khemkar can you please post the results of the steps (manually executing the workflows on your server inside the opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v3 docker) we discussed over the call? Thank you

@prudhvigodithi any update from your side? Have you raised request for ppc64le vm?

@prudhvigodithi
Copy link
Collaborator

Hey @Sapana-Khemkar I have the form submitted NAME: OpenSearch Project, support.osuosl.org #33270.
Thank you
@bbarani @peterzhuamazon

@Sapana-Khemkar
Copy link

Hey @Sapana-Khemkar I have the form submitted NAME: OpenSearch Project, support.osuosl.org #33270. Thank you @bbarani @peterzhuamazon

@prudhvigodithi your request 33270 is approved. Please let me know if you face any issue.

@prudhvigodithi
Copy link
Collaborator

prudhvigodithi commented Jan 8, 2024

Thanks, @Sapana-Khemkar what is the next step here? I just got an email as Approved for the request I created. Let me know we can discuss the next steps in public slack on how to securely connect the ppc64le VM as jenkins agent.

@prudhvigodithi prudhvigodithi changed the title Artifacts for ppc64le are not published like linux x64 architecture Support ppc64le OpenSearch distribution for POWER architecture. Jan 8, 2024
@prudhvigodithi prudhvigodithi added enhancement New Enhancement and removed bug Something isn't working labels Jan 8, 2024
@peterzhuamazon
Copy link
Member

Have a discussion with @prudhvigodithi and we need to add a test ci-runner image layer of linux/ppc64le, then try to start it up on the requested server before trying out the built.

If successful, then we will proceed with a manual build, before adding the changes to all the ci-runner images.

I will start on creating the new ci-runner image soon.

@Sapana-Khemkar
Copy link

  1. ml-commons - we are working on this.
  2. Official support from gh-cli

We have raised PR for ppc64le support. But it may take a little time. Meanwhile can you install go v1.21.0 using below steps

wget https://go.dev/dl/go1.21.0.linux-ppc64le.tar.gz
tar -C /usr/local -xzf go1.21.0.linux-ppc64le.tar.gz
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/usr/local/bin
go version
  1. @Sunidhi-Gaonkar1 will raise PR for build.sh and update you. For changes in Jenkins file we will wait for your PR to get merged.
  2. @Sunidhi-Gaonkar1 will be looking into pytest errors due to PyYAML 6.0.1.
  3. For dynamic provision of ppc64le servers, you can raise request with OpenStack Access. While raising vm request select "I'do like to have access to the Openstack GUI/API" option (as highlighted in below image) and use Openstack APIs for dynamically provision ppc64le servers.
image

@peterzhuamazon
Copy link
Member

Thanks @Sapana-Khemkar ,

On 7, @prudhvigodithi has completed the review of my ci-runners changes.

Since building these images takes a lot of time, so I plan to reduce the load if possible.

This PR is in review to add gh cli ppc64le support, and I will give it a few days to see gh team reply.

If their review and support takes a lot of time, I will merge #4336 and start building the images next week.

Thanks.

@peterzhuamazon
Copy link
Member

On 6, I am still a bit confused as that seems like still manual approaches to request servers, without internally connect through EC2 APIs.

Or is there is any plugin that can directly connect Jenkins provision agents with openstack, we still need to look into that in details.

@seth-priya
Copy link

Or is there is any plugin that can directly connect Jenkins provision agents with openstack, we still need to look into that in details.

@peterzhuamazon yes, there is an openstack plugin for jenkins that can help with dynamic provisioning of VMs once you have openstack access - https://plugins.jenkins.io/openstack-cloud/ , https://plugins.jenkins.io/openstack-cloud/releases/

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Jan 29, 2024

Sent OpenStack Request.

@peterzhuamazon
Copy link
Member

Due to #4241 #4370, we will delay the image generation for ppc64le, to unblock 2.12 release issues with IntegTests.

@Sunidhi-Gaonkar1
Copy link
Contributor

@peterzhuamazon, I was able to resolve the pytest errors faced for #4348. The errors were thrown due to code linting issue. The sorting order was fixed after running command pipenv run isort . as mentioned in https://github.com/opensearch-project/opensearch-build/blob/main/DEVELOPER_GUIDE.md#code-linting.

@peterzhuamazon
Copy link
Member

@peterzhuamazon, I was able to resolve the pytest errors faced for #4348. The errors were thrown due to code linting issue. The sorting order was fixed after running command pipenv run isort . as mentioned in https://github.com/opensearch-project/opensearch-build/blob/main/DEVELOPER_GUIDE.md#code-linting.

Hi @Sunidhi-Gaonkar1 if you resolve the sort issue and actually run pipenv run pytest you will see new issues. The isort issues is expected and not related to the pytest issues.

Thanks.

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Feb 2, 2024

Receive credentials on accessing to OpenStack and its endpoints. Will work on connecting to Jenkins.

@Sunidhi-Gaonkar1
Copy link
Contributor

Raised PR #4413 to fix pytests and update build.sh to add ppc64le build target.
Please review, Thank you.

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Feb 28, 2024

Use package manager for go installation for easier setups.
Move gh to https://github.com/cli/cli/releases/tag/v2.32.1 since that is the last version using go < 1.21.

Update: Not possible:

go install github.com/cli/cli/v2/cmd/gh@v2.32.1
go: downloading github.com/cli/cli/v2 v2.32.1
go: github.com/cli/cli/v2/cmd/gh@v2.32.1 (in github.com/cli/cli/v2@v2.32.1):
	The go.mod file for the module providing named packages contains one or
	more replace directives. It must not contain directives that would cause
	it to be interpreted differently than if it were the main module.

@peterzhuamazon
Copy link
Member

Only possible when manually checkout the repo then make:

make install prefix=/path/to/gh

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Feb 29, 2024

The 1st docker ci images with ppc64le layer is up online: https://hub.docker.com/r/opensearchstaging/ci-runner/tags?page=1&ordering=last_updated&name=ci-runner-centos7-opensearch-build-v3.8

Screenshot 2024-02-29 at 4 36 17 PM

More to come.

@peterzhuamazon
Copy link
Member

More issues:

Rockylinux8:

ERROR: failed to solve: rockylinux:8: no match for platform in manifest: not found

@peterzhuamazon
Copy link
Member

We might need to change to almalinux from rockylinux due to version 8 is not having ppc64le layer for rockylinux.

@peterzhuamazon
Copy link
Member

@peterzhuamazon
Copy link
Member

All build and test ci images now support ppc64le and have gh installed with go modules.
However, docker release images will not support ppc64le unless AmazonLinux 2023 image start supporting it.

@Sapana-Khemkar
Copy link

All build and test ci images now support ppc64le and have gh installed with go modules. However, docker release images will not support ppc64le unless AmazonLinux 2023 image start supporting it.

Thanks @peterzhuamazon please go ahead with this part and release tar for power. We will work with you on docker images separately.

@peterzhuamazon
Copy link
Member

We will continue with the Almalinux switch after 2.13.0 release.

@Sunidhi-Gaonkar1
Copy link
Contributor

We will continue with the Almalinux switch after 2.13.0 release.

Hi @peterzhuamazon , Any updates on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New Enhancement ppc64le
Projects
Status: ⌛ On Hold
Development

No branches or pull requests