-
Notifications
You must be signed in to change notification settings - Fork 38.9k
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
Add build support for riscv64 arch #86011
Conversation
Hi @carlosedp. 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. |
/assign @BenTheElder |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: carlosedp The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
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.
/ok-to-test
Waiting for K8s to adopt go1.14 that supports riscv64 architecture the I'll proceed with the PR. |
@carlosedp As this deals with building/releasing artifacts and supporting additional architectures, a KEP (https://git.k8s.io/enhancements/keps/README.md) via sig-release should be needed. This hasn't had any movement, primarily because the Kubernetes project hasn't decided to take on any additional architectures. I'm going to go ahead and close this change for now, but if a KEP is accepted, we can look at re-opening this PR. /close |
@cblecker: Closed this PR. In response to this:
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. |
/sig architecture @carlosedp please review this WIP document on guidance kubernetes/community#5014 |
@dims: Reopened this PR. In response to this:
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. |
i've a WIP for the guidance kubernetes/community#5014 |
Thanks @dims. I'll revisit this now as Go for RISCV has been upstreamed and most pre-reqs are already upstream as well! |
@carlosedp: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. I understand the commands that are listed here. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-sig cloud-provider |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closed this PR. In response to this:
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. |
if i want to build Kubernetes binaries for riscv64 architecture, which branch should i git clone? !!! [1029 07:47:14] Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le.
!!! [1029 07:47:52] Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le.
!!! [1029 07:49:06] Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le.
!!! [1029 07:49:10] Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le.
!!! [1029 07:50:08] Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le.
+++ [1029 07:50:14] Building go targets for linux/riscv64:
./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[1]: *** [Makefile.generated_files:209: _output/bin/prerelease-lifecycle-gen] Error 1
make: *** [Makefile:553: generated_files] Error 2 |
@jiangxiaobin96 unfortunately building for a new platform requires patching the bash scripts to allow this platform. see: |
I succeeded in build Kubernetes binaries for riscv64. But how to install it? I used executable file directly like [kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
Unfortunately, an error has occurred:
timed out waiting for the condition
This error is likely caused by:
- The kubelet is not running
- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
- 'systemctl status kubelet'
- 'journalctl -xeu kubelet'
Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.
Here is one example how you may list all Kubernetes containers running in docker:
- 'docker ps -a | grep kube | grep -v pause'
Once you have found the failing container, you can inspect its logs with:
- 'docker logs CONTAINERID'
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster Because i didn't know how to install it, so i can not find the |
if you wish to use kubeadm build from source (without apt, rpm package managers) you can check here: tab: "Without a package manager..." |
I found where is my problem. I just run [root@master0 riscv64]# ls -l
total 1166682
-rwxr-xr-x 1 root root 41711688 Nov 4 21:22 apiextensions-apiserver
-rwxr-xr-x 1 root root 6227408 Nov 2 14:15 conversion-gen
-rwxr-xr-x 1 root root 5961136 Nov 2 14:09 deepcopy-gen
-rwxr-xr-x 1 root root 5944720 Nov 2 14:12 defaulter-gen
-rwxr-xr-x 1 root root 107038704 Nov 4 21:23 e2e.test
-rwxr-xr-x 1 root root 116796584 Nov 4 21:22 e2e_node.test
-rwxr-xr-x 1 root root 38709064 Nov 4 21:23 gendocs
-rwxr-xr-x 1 root root 129439752 Nov 4 21:24 genkubedocs
-rwxr-xr-x 1 root root 135353224 Nov 4 21:22 genman
-rwxr-xr-x 1 root root 3285672 Nov 4 21:22 genswaggertypedocs
-rwxr-xr-x 1 root root 38704744 Nov 4 21:24 genyaml
-rwxr-xr-x 1 root root 7187536 Nov 4 21:21 ginkgo
-rwxr-xr-x 1 root root 1900544 Nov 2 14:26 go-bindata
-rwxr-xr-x 1 root root 1801424 Nov 4 21:22 go-runner
-rwxr-xr-x 1 root root 3366768 Nov 2 14:09 go2make
-rwxr-xr-x 1 root root 102367232 Nov 4 21:24 kube-apiserver
-rwxr-xr-x 1 root root 95092736 Nov 4 21:22 kube-controller-manager
-rwxr-xr-x 1 root root 33816576 Nov 4 21:21 kube-proxy
-rwxr-xr-x 1 root root 37289984 Nov 4 21:24 kube-scheduler
-rwxr-xr-x 1 root root 35192832 Nov 4 21:24 kubeadm
-rwxr-xr-x 1 root root 39321600 Nov 4 21:23 kubectl
-rwxr-xr-x 1 root root 96825128 Nov 4 21:22 kubelet
-rwxr-xr-x 1 root root 95325544 Nov 4 21:23 kubemark
-rwxr-xr-x 1 root root 4674000 Nov 4 21:23 linkcheck
-rwxr-xr-x 1 root root 1572864 Nov 4 21:22 mounter
-rwxr-xr-x 1 root root 9751176 Nov 2 14:22 openapi-gen But don't release the kubernetes. I try to [pkg_rpm_for_goarch(
name = "kubeadm",
changelog = "//:CHANGELOG.md",
data = [
"10-kubeadm.conf",
"50-kubeadm.conf",
"kubeadm.conf",
"kubelet.env",
"//cmd/kubeadm",
],
goarch = arch,
spec_file = "kubeadm.spec",
tags = ["manual"],
version_file = "//build:os_package_version",
) for arch in NODE_PLATFORMS["linux"]] If I want to use k8s correctly, where can i refer to to place all config files? |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Adds support to build Kubernetes binaries for riscv64 architecture by using makefiles as:
Output dir:
Special notes for your reviewer:
Ginkgo has been bumped after PR onsi/ginkgo#632 was merged to be able to build on riscv64.
Does this PR introduce a user-facing change?: