-
Notifications
You must be signed in to change notification settings - Fork 38.7k
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
Allow fast builds on ppc64le #105399
Allow fast builds on ppc64le #105399
Conversation
On a ppc64le host, fast build was failing: # make KUBE_FASTBUILD=true quick-release +++ [0908 15:56:36] Verifying Prerequisites.... +++ [0908 15:56:36] Building Docker image kube-build:build-fd009aaa81-5-v1.23.0-go1.17-buster.0 +++ [0908 15:56:44] Syncing sources to container +++ [0908 15:56:48] Running build command... +++ [0908 15:56:56] Building go targets for linux/ppc64le: ./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen > non-static build: k8s.io/kubernetes/./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen touch: cannot touch '_output/bin/prerelease-lifecycle-gen': No such file or directory make[2]: *** [Makefile.generated_files:209: _output/bin/prerelease-lifecycle-gen] Error 1 make[1]: *** [Makefile:552: generated_files] Error 2 make: *** [Makefile:512: cross] Error 1 !!! [0908 15:56:58] Call tree: !!! [0908 15:56:58] 1: build/../build/common.sh:476 kube::build::run_build_command_ex(...) !!! [0908 15:56:58] 2: build/release.sh:36 kube::build::run_build_command(...) make: *** [Makefile:454: quick-release] Error 1 This error happened because the _output/bin/ directory didn't exist at the moment the file _output/bin/prerelease-lifecycle-gen was touched, so the path didn't exist. The _output/bin symlink was not created by kube::golang::place_bins() because kube::golang::setup_platforms() assumed KUBE_CLIENT_PLATFORMS=linux/amd64 despite being on a ppc64le host. Fix build error by not assuming host_arch=amd64 when on ppc64le in kube::golang::setup_platforms(). Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com>
Welcome @mopsfelder! |
Hi @mopsfelder. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
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.
looks like arm64 for fast build was added explicitly here:
f719624
unclear if it is desired to add more platforms.
/sig release
looks like this is a missing feature and not a bug. |
@BenTheElder @neolit123 - with https://github.com/kubernetes/release/pull/1853/files - ppc64le should work fine (kube-cross), so i think this ok. /ok-to-test |
/release-note-none |
/approve |
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.
/lgtm
/hold for others to review
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dims, mkumatag, mopsfelder 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 |
yep, for the other platforms, the yard stick would be to ensure |
/retest |
I don't see why we should actively prohibit building on them without a patch though, as opposed to which we choose to ship in our official releases. |
@BenTheElder oh if it works, sure. the use case here was ... doing a build on arm64 or ppc64le (and that would fail on other platforms). if someone can confirm that it works, then sure! |
The build did go through on ppc64le platform and here is the log. -Thanks |
/priority important-longterm |
/hold cancel |
What type of PR is this?
/kind bug
What this PR does / why we need it:
On a ppc64le host, fast build was failing:
This error happened because the _output/bin/ directory didn't exist at
the moment the file _output/bin/prerelease-lifecycle-gen was touched, so
the path didn't exist.
The _output/bin symlink was not created by kube::golang::place_bins()
because kube::golang::setup_platforms() assumed
KUBE_CLIENT_PLATFORMS=linux/amd64 despite being on a ppc64le host.
Fix build error by not assuming host_arch=amd64 when on ppc64le in
kube::golang::setup_platforms().
Which issue(s) this PR fixes:
Fixes #105398
Special notes for your reviewer:
This is a minor fix to allow building fast builds on a ppc64le host. Change does not affect other architectures.
Does this PR introduce a user-facing change?
NONE
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: