Skip to content
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

Request: add arm64 machine to CI (jenkins) #6280

Closed
afbjorklund opened this issue Jan 11, 2020 · 18 comments
Closed

Request: add arm64 machine to CI (jenkins) #6280

afbjorklund opened this issue Jan 11, 2020 · 18 comments
Assignees
Labels
area/testing kind/process Process oriented issues, like setting up CI priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@afbjorklund
Copy link
Collaborator

afbjorklund commented Jan 11, 2020

In order to test multi-arch support, we need a non-amd64 worker for CI testing.
I'm thinking s390x might be hard to find, easier to set up an arm64 server ?

The qemu-system-aarch64 support is a little buggy, so has to be hardware.
It needs to have enough memory (4G) and needs to have a 64-bit processor.

This desktop setup works, if on a budget:

But it runs really hot (85°C), so it needs to have a passive / active cooling.
So probably better off with a server model, several providers offer ARMv8...

@afbjorklund afbjorklund added area/testing kind/process Process oriented issues, like setting up CI labels Jan 11, 2020
@afbjorklund
Copy link
Collaborator Author

@afbjorklund
Copy link
Collaborator Author

Here is my new Raspberry Pi 4:
rpi4

Open, showing the PiCoolFAN 4:
fan4

On my RIGGAD desktop lamp, for scale.

Shopping list, https://www.pishop.us/

  • Raspberry Pi 4 Model B/4GB ($55) - I have the Raspberry Pi 4 Model B/2GB $45
  • Raspberry Pi 15W Power Supply, US, White ($8) - I have the matching EU model
  • Aluminum Heatsink for Raspberry Pi 4B ($2)
  • MicroSD Card - 16/32 GB - Class 10 ($8)
  • Some kind of regular Ethernet Cable ($2)
    Case and extra cooling if required:
  • Raspberry Pi 4 Case, Red/White ($5)
  • I instead got the excellent PiCoolFAN4 (£11 = $15)

Should come in well under $100 in total, like $75+case ?

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Jan 11, 2020

Eventually it will also be possible to run Fedora on the RPi4, but currently it has some issues.

https://fedoraproject.org/wiki/Architectures/ARM/Raspberry_Pi#Raspberry_Pi_4

There was some details about running Fedora on the RPi3, in the other issue created earlier.

#5667 (comment)

@medyagh medyagh added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label Jan 22, 2020
@medyagh
Copy link
Member

medyagh commented Jan 22, 2020

we could probably add a jenkins agent, if we have a remote arm64 server ... or I wonder if we could use a public cloud for that?

@edmondsw
Copy link

edmondsw commented Feb 6, 2020

Travis CI now supports multiple architectures, including not only arm64 but also ppc64le and s390x: https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z

@afbjorklund
Copy link
Collaborator Author

Travis only tests the basics (unit tests and such) for us, we need a Jenkins slave to do the full integration testing...

@tstromberg
Copy link
Contributor

I have a rockpro64 that I can see about donating to the effort.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 19, 2020
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 18, 2020
@medyagh
Copy link
Member

medyagh commented Sep 16, 2020

now we have AWS account ( I mailed the creds to all minikube maintainers), please feel free to add setup a arm64 machine and I will hook it up to github actions or jenkins

@tstromberg tstromberg added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. labels Sep 23, 2020
@kevinzs2048
Copy link

Hi Guys, this is Kevin from Linaro and we can offer the Arm64 bare metal machines as the builder. Could you tell me how to proceed with this topic?

@afbjorklund
Copy link
Collaborator Author

@kevinzs2048 : hello, I think we are past the jenkins-under-the-desk stage for the project that this post originally described (and that I have at home), and we are now using GitHub Actions with custom runners. hopefully @medyagh can tell you more about it?

The actually build is done with cross-compilation, so that part works fine. The main need is for doing regression testing, with the various drivers (mostly one VM and one container, but we have various hypervisors and various engines if there are resources...)

@kevinzs2048
Copy link

@afbjorklund Thanks for that info. Looks that on Arm64 we can enable none/docker/kvm2 drivers. And for KVM2 driver, the testing machine should be a bare metal, since on Arm64 there is no nested virtualization support.

@afbjorklund
Copy link
Collaborator Author

Currently we don't have any OS images for testing the docker (#9227) or kvm2 (#9228) driver on arm64.
There are partial proof-of-concept implentations, but nothing is available for public testing at the moment.

The basic operating systems (ubuntu for KIC, buildroot for ISO) does have ARM (arm32/arm64) support.
But we need to complete the packaging for minikube. The main reason for supporting armv7 is Raspbian.

@kevinzs2048
Copy link

@afbjorklund Thanks, I see.
Is there anything I can help to accelerate the process? I'm from Linaro so that contributing anything for Arm64 is my mission.

@spowelljr
Copy link
Member

/assign @ilya-zuyev

@sharifelgamal sharifelgamal added this to the v.1.19.0-candidate milestone Feb 17, 2021
@medyagh medyagh changed the title Request: add arm64 machine to CI Request: add arm64 machine to CI (jenkins) Mar 2, 2021
@ilya-zuyev
Copy link
Contributor

aws linux-arm64 runner added to mk Jenkins CI

@medyagh
Copy link
Member

medyagh commented Mar 29, 2021

done

@medyagh medyagh closed this as completed Mar 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/testing kind/process Process oriented issues, like setting up CI priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

No branches or pull requests

10 participants