-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Build powerpc (ppc64le) distroless base and static images #622
Build powerpc (ppc64le) distroless base and static images #622
Conversation
5c932be
to
e4a8037
Compare
bf75c7f
to
b90eca3
Compare
@chanseokoh Can you please take a look? |
Signed-off-by: Davanum Srinivas <[email protected]>
Signed-off-by: Davanum Srinivas <[email protected]>
b90eca3
to
11739c8
Compare
This still LGTM. Can you please confirm things work with a GCB dry run? |
@@ -3,54 +3,66 @@ | |||
# TO GENERATE THIS RUN: ./updateWorkspaceSnapshots.sh | |||
|
|||
BASE_ARCHITECTURES = ["amd64", "arm64"] | |||
ARCHITECTURES = BASE_ARCHITECTURES + ["s390x"] | |||
ARCHITECTURES = BASE_ARCHITECTURES + ["s390x", "ppc64le"] |
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.
Why can't this be in BASE_ARCHITECTURES
?
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.
@chanseokoh i was just following the pattern set by the s390x :) we can revisit this in a subsequent PR.
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.
I think that like s390x
this is a starting point to get base & static in place?
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.
I believe the only reason that we distinguish BASE_ARCHITECTURES
and ARCHITECTURES
is to include or exclude libunwind8
because Debian doesn't have the library package on s390x.
So, the consequence of this would be that, Distroless won't be able to build ppc64le dotnet images (dotnet requires libunwind8
, as it seems).
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.
Not that this is a major issue. We just need to be clear on why we have both BASE_ARCHITECTURES
and ARCHITECTURES
for what reason.
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.
Yeah, but s390x
doesn't publish python, node, or other images yet, so practically I think the "base" signifies what we publish //base
for, but this may be back-filling the naming a bit 😅
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.
Yeah, but I do think ppc64le
(basically any arch that doesn't need special handling such as x390x) should be in BASE_ARCHITECTURES
. I can tolerate a brief transition state if this is to be fixed in a subsequent PR.
@mattmoor thanks for the tip on running GCB by hand to verify stuff trying it now - |
|
@mattmoor got a clean run on GCB. This is now ready to merge.
|
Thanks for checking. Merging it now. |
I was trying the base image on power ppc64le arch machine and it fails with exec error as show below [ ~]# uname -m The busybox binary that is getting used is from https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-powerpc64 which is for big endian power arch and not little endian - https://bugs.busybox.net/show_bug.cgi?id=13491 Further, it seems that debian repo has the required power little endian arch binary & that seems to be working fine - https://travis-ci.com/github/Siddhesh-Ghadi/busybox-binary/builds/219571877#L175. So for this image to work properly on ppc64le the binary should be installed from debian repos. |
@bahetiamit I have no experience with powerpc, so bear with me. Why should distroless target big-endian arch and not little-endian? Is little-endian defunct, and no one is using the CPU? |
@chanseokoh It is actually other way around. This PR is for ppc64le (le stands for little endian) as per the PR title. But this PR added big endian busybox binary which obviously fails to run on ppc64le arch machines. I understand that binary is getting downloaded from busybox.net & unfortunately they just release big endian binary. That is why I think the image should take the binary from debian repos (as they have LE arch binary for busybox) |
@chanseokoh Will it make more sense to file an issue for better tracking of this issue? |
To support k8s use case
Signed-off-by: Davanum Srinivas [email protected]