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

Adding support for linux/ppc64le in github actions for training-operator #1692

Merged

Conversation

amitmukati-2604
Copy link
Contributor

@amitmukati-2604 amitmukati-2604 commented Nov 18, 2022

What this PR does / why we need it:

I have added support for Linux/ppc64le architecture in GitHub actions. using QEMU. It enables the CI for Linux/ppc64le. Please review and merge.

Which issue(s) this PR fixes (optional, in Fixes #<issue number>, #<issue number>, ... format, will close the issue(s) when PR gets merged):
Fixes #1664

Checklist:

  • Docs included if any changes are user facing

@google-cla
Copy link

google-cla bot commented Nov 18, 2022

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

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

Can you test it in your fork and show the result?

@johnugeorge
Copy link
Member

Add arm64 as well

/cc @tenzen-y

@johnugeorge
Copy link
Member

Ref: #1664

@amitmukati-2604

Copy link
Member

@tenzen-y tenzen-y left a comment

Choose a reason for hiding this comment

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

Seems to look good about the configuration file for gh-actions.
As @ terrytangyuan says, can you share with us the result of the operation for the platform ppc64le since I don't have the environment to test for that platform?

@amitmukati-2604
Copy link
Contributor Author

The below link has the test result on my fork and the published images for amd64,ppc64le, and arm64.
Link for fork test:- https://github.com/amitmukati-2604/training-operator/actions/runs/3582114019
Link for published image:- https://hub.docker.com/r/amitmukati2604/training-operator/tags
cc:- @tenzen-y , @terrytangyuan , @johnugeorge

Seems to look good about the configuration file for gh-actions. As @ terrytangyuan says, can you share with us the result of the operation for the platform ppc64le since I don't have the environment to test for that platform?

Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

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

LGTM

@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amitmukati-2604, terrytangyuan

The full list of commands accepted by this bot can be found here.

The pull request process is described 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

@coveralls
Copy link

coveralls commented Nov 30, 2022

Pull Request Test Coverage Report for Build 3583403173

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.2%) to 39.617%

Totals Coverage Status
Change from base Build 3493524878: 0.2%
Covered Lines: 2692
Relevant Lines: 6795

💛 - Coveralls

@tenzen-y
Copy link
Member

tenzen-y commented Nov 30, 2022

I tested the amitmukati2604/training-operator:latest@sha256:92aef729372a7743c9fb45fa5442f39af5374c80e80726ef79e57eed9b44e33e image for platform arm64 using my M1 Mac in the following.
As a result, the image works fine.

$ # Create a cluster
$ kind create cluster
$ # Deploy training-operator
$ kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone"
# Update the image
$ kubectl patch deployment -n kubeflow training-operator --type='json' -p '[{"op":"replace","path":"/spec/template/spec/containers/0/image", "value": "docker.io/amitmukati2604/training-operator:latest@sha256:92aef729372a7743c9fb45fa5442f39af5374c80e80726ef79e57eed9b44e33e"}]'
$ # Verify the image
$ kubectl get pods -n kubeflow training-operator-7fbb69d76d-7sdgx -ojsonpath='{.spec.containers[0].image}{"\n"}'
docker.io/amitmukati2604/training-operator:latest@sha256:92aef729372a7743c9fb45fa5442f39af5374c80e80726ef79e57eed9b44e33e
$ # Deploy a sample
$ kubectl apply -f https://raw.githubusercontent.com/kubeflow/training-operator/master/examples/tensorflow/simple.yaml
$ kubectl get pods -n kubeflow
NAME                                 READY   STATUS    RESTARTS   AGE
tfjob-simple-worker-0                1/1     Running   0          59s
tfjob-simple-worker-1                1/1     Running   0          59s
training-operator-7fbb69d76d-7sdgx   1/1     Running   0          5m16s
$ # Show logs
$ kubectl logs -n kubeflow training-operator-7fbb69d76d-7sdgx
...
time="2022-11-30T18:45:49Z" level=info msg="TFJob tfjob-simple is created."
time="2022-11-30T18:45:49Z" level=info msg="Reconciling for job tfjob-simple"
time="2022-11-30T18:45:49Z" level=info msg="Need to create new pod: worker-0" job=kubeflow.tfjob-simple uid=394243e5-d80b-4113-8550-57529cdf1b95
time="2022-11-30T18:45:49Z" level=info msg="Controller tfjob-simple created pod tfjob-simple-worker-0" job=.tfjob-simple pod=.tfjob-simple-worker-0 uid=
time="2022-11-30T18:45:49Z" level=info msg="Need to create new pod: worker-1" job=kubeflow.tfjob-simple uid=394243e5-d80b-4113-8550-57529cdf1b95
1.669833949520026e+09	DEBUG	events	Created pod: tfjob-simple-worker-0	{"type": "Normal", "object": {"kind":"TFJob","namespace":"kubeflow","name":"tfjob-simple","uid":"394243e5-d80b-4113-8550-57529cdf1b95","apiVersion":"kubeflow.org/v1","resourceVersion":"1203"}, "reason": "SuccessfulCreatePod"}
...

@amitmukati-2604 Thanks!

Copy link
Member

@tenzen-y tenzen-y left a comment

Choose a reason for hiding this comment

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

/lgtm
/hold for maintainers

/assign @johnugeorge

@johnugeorge
Copy link
Member

/hold cancel

Thanks @amitmukati-2604 for your first contribution! Welcome to the community!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for multiplatform container imege (amd64 and arm64)
5 participants