-
Notifications
You must be signed in to change notification settings - Fork 1.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 windows containers to the docker multiarch manifest #1864
Conversation
Great stuff. |
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.
@wcs1only Thanks a lot for this change. this change is pretty big. for validation, you can fork this repo and validate it on your fork.
https://github.com/dapr/dapr/blob/master/docs/development/setup-ci.md
Yes, I did this and included a link in the description to the produced artifacts. https://github.com/wcs1only/dapr/runs/930062942?check_suite_focus=true |
Cool. Thanks for the validation! :) |
5e16e53
to
18aeff0
Compare
/ok-to-test |
Found the available test cluster - dapr-aks-e2e-01. Please wait until test is done. |
Congrats! All end-to-end tests have passed. Thanks for your contribution! |
I have also updated tests/docs/running-e2e-test.md and run the procedure manually start to finish. Everything is working on linux. |
/ok-to-test |
Found the available test cluster - dapr-aks-e2e-01. Please wait until test is done. |
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.
Thanks!
Congrats! All end-to-end tests have passed. Thanks for your contribution! |
Description
It turns out, you can build a docker multiplatfrom image across both windows and linux. This means we can deliver a cross platform sidecar injector simply by creating a daprd windows container and letting docker automatically pull the right one based on the os/architecture of the kubernetes node the user app happens to be deployed to.
Prior to this change, we would build each set of binaries separately, then copy them all to one job to do a docker buildx to create the multiplatform images. Since buildx does not support windows, we'll now build docker containers on their respective host types (linux/amd64 linux/arm windows/amd64), tag them with the suffix version-os-arch and push them. Then, another job will come along and do a dapr manifest build version version-linux-amd64 version-windows-amd64 ...
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #1746
Manual testing
You'll find some sample images here: https://hub.docker.com/layers/wcs1only/daprd/edge/images/sha256-c253bb3bfaf91416e5556ed418569481ab36cfbc676198ff9a6168c8d14158c4?context=explore
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list: