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

Cross build docker images #1865

Closed
mkumatag opened this issue Apr 10, 2018 · 40 comments
Closed

Cross build docker images #1865

mkumatag opened this issue Apr 10, 2018 · 40 comments
Assignees

Comments

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

@mkumatag a few requests:

  1. Can we separate this into 2 issues with a list each? 1 for cross-build, 1 for multi-arch manifest? @caseydavenport and @fasaxc asked to make them separate PRs in each repo, and we already have several done for the first but not the second. Easier to track.
  2. Can we make each item on the list a link to the repo?
  3. Can we add after each item that has a PR (merged or not) a link to the PR?

Is there any way I can edit this list? I don't have edit rights on this repo.

To make life easier, here are the PRs for cross-compile support:

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

Wow, we have done a lot of work!

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

Comment moved to #1866

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented Apr 10, 2018

@mkumatag a few requests:

Can we separate this into 2 issues with a list each? 1 for cross-build, 1 for multi-arch manifest?

okay, np.. I'll create a seperate issue for that..

@caseydavenport and @fasaxc asked to make them separate PRs in each repo, and we already have several done for the first but not the second. Easier to track.
Can we make each item on the list a link to the repo?
Can we add after each item that has a PR (merged or not) a link to the PR?

I'll do this..

Is there any way I can edit this list? I don't have edit rights on this repo.

Not really sure how to give you a write permission to edit same issue, I think only maintainers with enough permissions can edit others issue,

To make life easier, here are the PRs for cross-compile support:

calico/go-build merged
calico/felix merged
calico/typha merged
calico/bird merged
calico/confd one and two still open

@mkumatag mkumatag changed the title Cross build docker images and push manifest Cross build docker images Apr 10, 2018
@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

okay, np.. I'll create a seperate issue for that

Thanks, subscribed to that one too.

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

We can link to and check off felix, typha, bird, go-build.

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 10, 2018

For calicoctl, PR is projectcalico/calicoctl#1838

@djlwilder
Copy link
Collaborator

@djlwilder djlwilder commented Apr 16, 2018

If no one else is working on it I can do the multi arch changes for libnetwork plugin?

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 17, 2018

multi arch changes for libnetwork plugin?

If you mean the cross-compile, then please. Kindly cc me on it?

Can you mark the complete ones in here?

@djlwilder
Copy link
Collaborator

@djlwilder djlwilder commented Apr 17, 2018

Add support to cross-compile architectures: projectcalico/libnetwork-plugin#176

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 18, 2018

@mkumatag can you please mark the complete ones as checked, and add the links for typha and bird and libnetwork-plugin?

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented Apr 23, 2018

@mkumatag can you please mark the complete ones as checked, and add the links for typha and bird and libnetwork-plugin?

I have updated the links to respective github projects, I'm not checking any checkbox as none of the projects are enabled with cross-building docker images yet, correct me if I'm wrong..

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 23, 2018

correct me if I'm wrong.

No, you are not. It turns out there are 3 stages to doing this:

  1. Enable cross-compile
  2. Use cross-compile as a default so CI always builds images for all ARCHs
  3. Use multi-arch manifest
@deitch
Copy link
Collaborator

@deitch deitch commented Apr 30, 2018

confd and calicoctl are both done.

@deitch
Copy link
Collaborator

@deitch deitch commented Apr 30, 2018

FYI, @mkumatag based on my discussion with @fasaxc , the plan is not to do the following, as they are not supported in 3.x going forward:

  • libnetwork-plugin - unsupported in favour of CNI
  • gobgpd - contribution from outside that has not been supported

@fasaxc , did I get that right?

@fasaxc
Copy link
Member

@fasaxc fasaxc commented Apr 30, 2018

@deitch They're not supported for now but may be in future

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented May 5, 2018

FYI, @mkumatag based on my discussion with @fasaxc , the plan is not to do the following, as they are not supported in 3.x going forward:

libnetwork-plugin - unsupported in favour of CNI
gobgpd - contribution from outside that has not been supported
@fasaxc , did I get that right?

@deitch @fasaxc yes they are not supported in 3.x release but these binaries are used in building calico/node image which will disturb the current flow of Makefile, so can we build these projects for not to disturb the flow and for future work.?

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented May 5, 2018

confd and calicoctl are both done.

@deitch @fasaxc @caseydavenport as these projects are done, can we modify samaphore job to push image for all the supported archs?

@deitch
Copy link
Collaborator

@deitch deitch commented May 6, 2018

can we modify samaphore job to push image for all the supported archs?

We will. There are two steps here:

  1. Create a PR with make push and make push-all targets. I am waiting for this felix PR to be approved and merged. It is the first test case with make push and make push-all. I don't want multiple PRs on different projects doing the same thing until we agree that it is done "the right way". Once the felix PR is merged in, I will open PRs for make push and make push-all for all of the other projects.
  2. Create a PR with make ci which will incorporate all of the Semaphore activities, so that the repo encapsulates everything, rather than needing to manage tests and pushes in the repo and in Semaphore separately. This is at the request of @fasaxc .

Then, it is complete!

@deitch
Copy link
Collaborator

@deitch deitch commented May 7, 2018

CNI PR is available here

@deitch
Copy link
Collaborator

@deitch deitch commented May 7, 2018

calico-bgp-daemon is here

@deitch
Copy link
Collaborator

@deitch deitch commented May 7, 2018

kube-controllers is here

@deitch
Copy link
Collaborator

@deitch deitch commented May 7, 2018

@mkumatag would you please add the PRs to the list at the beginning of this PR?

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented May 7, 2018

@deitch you are showering with so many PRs man.! Welcome back.. :) will update it.

@deitch
Copy link
Collaborator

@deitch deitch commented May 22, 2018

@mkumatag felix 1746 was merged. Can mark it off.

@deitch
Copy link
Collaborator

@deitch deitch commented May 23, 2018

@mkumatag :

  • kube-controller was merged. Can mark it off.
  • cni-plugin was merged, can mark it off.
@deitch
Copy link
Collaborator

@deitch deitch commented May 24, 2018

@mkumatag for typha, please add projectcalico/typha#156

@deitch
Copy link
Collaborator

@deitch deitch commented May 24, 2018

@mkumatag for routereflector please add projectcalico/routereflector#20

@deitch
Copy link
Collaborator

@deitch deitch commented May 24, 2018

When those get merged in, we can hit node finally.

@caseydavenport
Copy link
Member

@caseydavenport caseydavenport commented Sep 24, 2018

I believe this is all done now, shout if there's a reason to leave this open.

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented Sep 25, 2018

I believe some of those tasks are still open:

calico/test
calico/upgrade

@caseydavenport
Copy link
Member

@caseydavenport caseydavenport commented Sep 25, 2018

Right. We can reopen to track those.

I'd suggest at least removing calico/test from that list - it's long since stopped being used AFAIK.

@jpds
Copy link

@jpds jpds commented Jan 1, 2019

Any chance images for arm could be added? Currently only flannel and weavenet are supported CNIs on that.

@deitch
Copy link
Collaborator

@deitch deitch commented Jan 2, 2019

@jpds wrote:

Any chance images for arm could be added? Currently only flannel and weavenet are supported CNIs on that.

I don't understand. Calico has images for arm64 for everything, including multi-arch images.

Or did you mean other earlier arm archs?

@jpds
Copy link

@jpds jpds commented Jan 2, 2019

@deitch Yes, armv7/armhf are still a thing, a la Raspberry Pi's.

@deitch
Copy link
Collaborator

@deitch deitch commented Jan 2, 2019

Yeah, it just needs to be done. Someone needs to go through each project, add the necessary config (usually a Dockerfile, as the Makefile normally picks it up), test that each component builds, and then get a PR in.

@alexcarman
Copy link

@alexcarman alexcarman commented Feb 11, 2019

Can the arm64 images not run on a Pi 3b+?

@caseydavenport
Copy link
Member

@caseydavenport caseydavenport commented Apr 5, 2019

I think we can close this now? calico-upgrade is not really relevant here either since it is for v2.6, which doesn't have multi-arch :)

I suggest further work be raised in separate issue. Thanks for all of the hard work everyone put into this!

@mkumatag
Copy link
Contributor Author

@mkumatag mkumatag commented Apr 6, 2019

I think we can close this now? calico-upgrade is not really relevant here either since it is for v2.6, which doesn't have multi-arch :)

I suggest further work be raised in separate issue. Thanks for all of the hard work everyone put into this!

Thanks for the whole support @caseydavenport @tomdee @deitch @djlwilder

@REBELinBLUE
Copy link

@REBELinBLUE REBELinBLUE commented May 2, 2019

@alexcarman Doesn't look like it

docker run --rm calico/cni:release-v3.7-arm64
standard_init_linux.go:207: exec user process caused "exec format error"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants