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

Build multi-arch images #74

Closed
jukie opened this issue Apr 29, 2021 · 19 comments
Closed

Build multi-arch images #74

jukie opened this issue Apr 29, 2021 · 19 comments
Labels
enhancement New feature or request

Comments

@jukie
Copy link
Contributor

jukie commented Apr 29, 2021

Would like to use images that support multiple architectures for mixed clusters or at least additional images per architecture.

I'd like to contribute this but would need to understand the CI system for this repo.

More info here - https://docs.docker.com/engine/reference/commandline/manifest/

@jukie
Copy link
Contributor Author

jukie commented Apr 29, 2021

I found it under workflows, can use c694efc as a guide and submit a PR later.

@WanzenBug WanzenBug added the enhancement New feature or request label Apr 29, 2021
@WanzenBug
Copy link
Member

Hi!

Thanks for taking the initiative. Don't hesitate to ask here if you have any questions.

One problem you'll likely encounter is that we currently use the Linstor and DRBD packages distributed by LINBIT, which are only free to download on x86_64

@rck
Copy link
Member

rck commented Apr 29, 2021

also see #71

@jukie
Copy link
Contributor Author

jukie commented Apr 29, 2021

Ah damn, so I guess this isn't even possible then right?

@jukie
Copy link
Contributor Author

jukie commented Apr 29, 2021

Unless you mean only the pre-built packages are an issue. Is the source code still available somewhere? I could alternatively use multi-stage builds.
Looks like it is - https://github.com/LINBIT/linstor-client
This has turned into more of an endeavor than expected but I'll still work on it haha

@rck
Copy link
Member

rck commented Apr 29, 2021

after some internal discussion we decided that we want to open up Piraeus for multiple architectures. Which one would be the one you would want to work on? Then we can add the packages for that to the public repos and then you/we can work on the rest

@jukie
Copy link
Contributor Author

jukie commented Apr 29, 2021

Do you mean the architecture or docker image?
If the former it'd be nice to add support for all the "typical" architectures used in other public repos.
K8s dashboard for example supports amd64, arm, arm64, ppc64le, and s390x. I personally would only have a use for the first three but could validate all. I imagine the majority of users were already covered by amd64, and the next biggest subset would be covered with arm/arm64 support so that'd be a good starting point.
If the latter, I can start with the piraeus-client but initially planned on adding a PR for all anyways.

@rck
Copy link
Member

rck commented Apr 30, 2021

I meant the architecture(s). I'd say we open them up gradually, starting with arm64, as I'd assume this is the one most people are interested in. If we have that one, adding new ones is trivial.

After we put the packages in the repos I'd assume the PR is small and easy enough to review, so perfectly fine it is then just one PR. Speaking of the packages we need to put in place: For $reasons this has to wait till Monday. I will ping you as soon as they are there. The only challenging container will be drbd-driver-loader, as we need one container per supported distribution and I'm not sure if all the base images exist for all architectures. But that is fine as well, the drbd-driver-loader is not strictly necessary and having only a subset of distributions it can be used with on non-amd64 is fine as well.

@jukie
Copy link
Contributor Author

jukie commented Apr 30, 2021

Sounds reasonable, thanks for the update!

@rck
Copy link
Member

rck commented May 4, 2021

@jukie We now have the packages in place. I did successful arm64 test builds for piraeus-{server,client} on one of my arm64 boxes. Guess you can now start adding this architecture.

@jukie
Copy link
Contributor Author

jukie commented May 4, 2021

Awesome, thanks for the update!

@jukie
Copy link
Contributor Author

jukie commented May 4, 2021

@rck please take a look at #76

@toelke
Copy link

toelke commented Aug 18, 2021

I added #84 to keep this going forward.

@WanzenBug
Copy link
Member

WanzenBug commented Aug 18, 2021

@toelke
Copy link

toelke commented Aug 18, 2021

I am currently looking at piraeus-operator -- that's the next image that fails on my cluster. Is that a reasonable next step?

A local build is now running and creating a number of further pods that fail; I will debug that in the next hours.

@WanzenBug
Copy link
Member

See above: I think that are all the core images required for piraeus.

@WanzenBug
Copy link
Member

@toelke I think that's it 🥳

Thank you so much for your efforts!

@toelke
Copy link

toelke commented Aug 30, 2021

Sure thing.
My cluster (hybrid amd64+arm64) is running.

@WanzenBug
Copy link
Member

I think we forgot to close this issue. piraeus-init isn't used anymore. So all done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants