-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat: enable multi-arch builds with ARM compatibility #4290
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing this! ❤️
6196645 to
d248483
Compare
ashwinb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
leseb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good thanks! I believe the next step is to publish a build and take inspiration from .github/workflows/build-distributions.yml in the ops repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build never ran. https://github.com/llamastack/llama-stack/actions/runs/20277364473 there is an issue with the matrix.
d248483 to
78adce0
Compare
|
Good catch, I see the issue now. I've updated this PR with a new commit. The tests have passed again, and the build now completes: https://github.com/llamastack/llama-stack/actions/runs/20313646963. |
|
Might need a maintainer to remove that |
Signed-off-by: Doug Edgar <dedgar@redhat.com>
Signed-off-by: Doug Edgar <dedgar@redhat.com>
Signed-off-by: Doug Edgar <dedgar@redhat.com>
leseb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a follow-up, can we do a build for starter distro on UBI arm64? Thanks!
|
Thank you! Sure, I'll look into that next. |
# What does this PR do? Adds the new workflow `build-starter-ubi9-arm64-container` which validates building the starter distribution on UBI9 using ARM64 architecture. Follows up on a comment in PR #4290, which added multi-arch ARM64 build support. <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> @leseb for awareness ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
# What does this PR do? Follows up on #4474 and #4290, making the ARM64 builds only run on a nightly cadence, instead of on every PR. This was done because the ARM64 builds take significantly longer to complete than the others. @leseb for awareness <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
# What does this PR do? Follows up on #4474 and #4290, making the ARM64 builds only run on a nightly cadence, instead of on every PR. This was done because the ARM64 builds take significantly longer to complete than the others. @leseb for awareness <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com> (cherry picked from commit a5c44a0) # Conflicts: # .github/workflows/providers-build.yml
|
is this build intentionally not used in releases?
I don't see arm64 in the 0.4.1 maybe because .github/workflows/build-distributions.yml seems to hard-code I got excited but I guess this PR was about making it possible, but not running the build? Do we need another issue to run the build on release? |
# What does this PR do? Adds the new workflow `build-starter-ubi9-arm64-container` which validates building the starter distribution on UBI9 using ARM64 architecture. Follows up on a comment in PR llamastack#4290, which added multi-arch ARM64 build support. <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> @leseb for awareness ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
# What does this PR do? Follows up on llamastack#4474 and llamastack#4290, making the ARM64 builds only run on a nightly cadence, instead of on every PR. This was done because the ARM64 builds take significantly longer to complete than the others. @leseb for awareness <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
@codefromthecrypt Hi, I opened llamastack/llama-stack-ops#44 to address this. I'll see about getting reviews and branch access sorted out next. |
# What does this PR do? Adds the new workflow `build-starter-ubi9-arm64-container` which validates building the starter distribution on UBI9 using ARM64 architecture. Follows up on a comment in PR llamastack#4290, which added multi-arch ARM64 build support. <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> @leseb for awareness ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
# What does this PR do? Follows up on llamastack#4474 and llamastack#4290, making the ARM64 builds only run on a nightly cadence, instead of on every PR. This was done because the ARM64 builds take significantly longer to complete than the others. @leseb for awareness <!-- If resolving an issue, uncomment and update the line below --> <!-- Closes #[issue-number] --> ## Test Plan Commit hooks pass and builds complete without error on a PR in my fork. Signed-off-by: Doug Edgar <dedgar@redhat.com>
What does this PR do?
Enables lllama-stack multi-architecture builds for ARM. The result is an image index, that will point to the image associated with the calling user's architecture.
On Kubernetes for example, with these changes, images are still referred to in the same manner, but will resolve to the architecture that is relevant to the node where it is to be run.
In practice, referring to the usual
docker.io/llamastack/distribution-starter:latestshould resolve to the image with the requesting user's relevant architecture, without any additional configuration on the user's side.Closes #406
Test Plan
Tested container builds on an
amd64architecture host, and deployed the starter distribution image via llama-stack-k8s-operator to anarm64architecture OpenShift cluster. The deployment ran and the operator's e2e test suite completed as expected.Arm64-specific build tests run and pass on GitHub.