-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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 support for arm images for hyperkube, kubeadm and cni_binary #4261
Conversation
@lwolf thank you for your contribution. Great to see more ARM support, do you mind sharing the tests you did around this? Which HW platform did you use etc...? ci check this |
As a test, I run an upgrade of my current multiarch cluster from v1.12.3 to v1.12.5 with changes from this PR and #4176 backported to the 2.8 branch. Arm nodes are based on https://www.hardkernel.com/shop/odroid-hc1-home-cloud-one/
To be clear, this PR is not enough to install kubespray on arm nodes, but it reduces number of hacks needed to do that. Let me know if there are any specific tests I can run |
I'll run more or less clean deploy in the next few days and try to collect all the issues I'll have in a ticket. Regarding etcd, unfortunately there is no arm build available. |
There is a preview/unofficial version of Debian Buster for Raspberry which enables arm64 @lwolf do you think it can reduce the issues that you have faced using arm64 instead of 32 bit? |
@laimison I'm not sure how exactly arm64 debian will help in arm32 setup. |
So, if I'm not mistaken, RPI3 (actually a 64bit CPU) is being wrongly identified in older OS/kernel, which will be fixed in newer version of OS. @b23prodtm thanks for linking related issue |
I have mentioned 64 bit solution because etcd binary is available at https://github.com/etcd-io/etcd/releases/download/v3.3.12/etcd-v3.3.12-linux-arm64.tar.gz and Raspberry itself is capable to run Buster. So the question is whether other Kubernetes binaries are missed and if Buster is ready/worth to try. Am I missing something especially about that etcd binary? |
@laimison It seems that you have an assumption that Raspberry PI 3 is the only existing ARM hardware, or at least the only one, people will use with kubespray, therefore upgrading it to Buster and running arm64 binaries will solve all the problems. This PR is about adding support for truly 32 bit ARM hardware, therefore, the only way I see to solve the issue with etcd is by compiling it accordingly. Let me know if I misunderstood or missing something. |
When I try to run in on the worker node:
Somewhere in |
@nmiculinic is this on a |
yes, that's right. Adding dummy etcd for arm kinda fixes things (( at least this bug for me )) |
@lwolf is it possible to add something (document or an assert) to gracefully fail if someone tries to do etcd on arm32? |
When I run this playbook. For arm etcd I put some dummy hash so the dict doesn't crash and burn.
|
@Miouge1 I was thinking about adding a dummy value, but assert sounds like a better option. Will update the PR |
This big error I c/p is result of armv7 having "\n" at the end and misconfiguring kubelet systemd service. |
@nmiculinic yeah, I mentioned this issue and workaround I use in #4065 (comment) |
Oh I missed it, I had a pause of a couple of weeks while I was doing other stuff, and now I'm back at this. |
@Miouge1 added dummy etcd checksum and a comment as a workaround for the "no attribute error" for now. // I'll be away for 2 weeks with very limited connection. |
@Miouge1 I added assert check for etcd and a new checksums. For some reason CI is not happy about |
I've managed to install it now. (( only had to apply patched I provided few comments earlier )) |
Thanks, I added dummy checksums for the |
CI is broken in master, once it's fixed in master you can rebase to get CI to run. |
This commit adds dummy etcd checksum for arm to avoid "no attribute" error during setup.
1295039
to
ab12c34
Compare
what's the right way to restart failed builds (for not code related reasons) - amend last commit or ask somebody to trigger restart? |
@Miouge1 could you please advice. If I set If I set |
@lwolf special access is required to As we are trying to improve CI coverage, there has been significant changes in CI in the past few weeks. |
I see, thanks. I wasn't sure that amending is the right way to do it. |
@Miouge1 what do you think of this? |
@woopstar this looks good to me /lgtm |
/approve @lwolf can you do a new PR where we add the latest ARM checksums for 1.14.1 and 1.14.2 etc. There is also some for 1.13 missing |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: lwolf, woopstar 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 |
…ernetes-sigs#4261) * Add support for arm images for hyperkube, kubeadm and cni_binary * Add dummy etcd checksum for arm This commit adds dummy etcd checksum for arm to avoid "no attribute" error during setup. * Add etcd host assert check * Add 1.13.4 checksums of kubeadm and hyperkube for arm * Update checksums of kubeadm and hyperkube for arm * Add dummy checksums for calicoctl_binary_checksums dict * disable gather_facts because it causes tests to fail * Remove architecture check for etcd, due to unable to run tests
…ernetes-sigs#4261) * Add support for arm images for hyperkube, kubeadm and cni_binary * Add dummy etcd checksum for arm This commit adds dummy etcd checksum for arm to avoid "no attribute" error during setup. * Add etcd host assert check * Add 1.13.4 checksums of kubeadm and hyperkube for arm * Update checksums of kubeadm and hyperkube for arm * Add dummy checksums for calicoctl_binary_checksums dict * disable gather_facts because it causes tests to fail * Remove architecture check for etcd, due to unable to run tests
This adds support for
arm
checksums for hyperkube, kubeadm and cni images.Related to #4065