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

Design for multi-arch build and windows build #8459

Merged
merged 3 commits into from
Dec 3, 2024

Conversation

Lyndon-Li
Copy link
Contributor

For issue #8429. Add the design for multi-arch build and windows build

@github-actions github-actions bot added the Area/Design Design Documents label Nov 26, 2024
@Lyndon-Li Lyndon-Li force-pushed the design-for-windows-build branch from bf75223 to 6ac48c4 Compare November 26, 2024 08:06
@Lyndon-Li Lyndon-Li marked this pull request as ready for review November 26, 2024 08:07
@Lyndon-Li Lyndon-Li force-pushed the design-for-windows-build branch from 6ac48c4 to 6bddad2 Compare November 26, 2024 08:11
Copy link

codecov bot commented Nov 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.00%. Comparing base (af85b7d) to head (298b497).
Report is 14 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8459      +/-   ##
==========================================
+ Coverage   58.98%   59.00%   +0.02%     
==========================================
  Files         368      368              
  Lines       39000    39015      +15     
==========================================
+ Hits        23004    23022      +18     
+ Misses      14532    14530       -2     
+ Partials     1464     1463       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

kaovilai
kaovilai previously approved these changes Nov 26, 2024
Copy link
Member

@kaovilai kaovilai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense to me.

@kaovilai
Copy link
Member

For reference, we had done something with manifest lists earlier here. Note that we had disabled Travis-CI but .travis.yml here was last working for us.

velero/.travis.yml

Lines 64 to 77 in fe3907e

docker manifest create \
${IMAGE1}:${TAG} \
${IMAGE1}:${TAG}-amd64 \
${IMAGE1}:${TAG}-ppc64le \
${IMAGE1}:${TAG}-s390x \
${IMAGE1}:${TAG}-aarch64
docker manifest create \
${IMAGE2}:${TAG} \
${IMAGE2}:${TAG}-amd64 \
${IMAGE2}:${TAG}-ppc64le \
${IMAGE2}:${TAG}-s390x \
${IMAGE2}:${TAG}-aarch64
docker manifest push ${IMAGE1}:${TAG}
docker manifest push ${IMAGE2}:${TAG}

@kaovilai
Copy link
Member

Will the linux manifest list cover s390x? #2622

@Lyndon-Li
Copy link
Contributor Author

Will the linux manifest list cover s390x? #2622

It is not in the plan. Supporting a new platform not only means support of build, but also installation and running. There is no plan to support all of these for s390.

@kaovilai
Copy link
Member

The manifest list already work with that. There's no code change at all to install or run when image is a manifest list containing Linux/s390x

@Lyndon-Li
Copy link
Contributor Author

The manifest list already work with that. There's no code change at all to install or run when image is a manifest list containing Linux/s390x

By running, I mean have Velero running on the specific platform, we need to test to identify the gaps and make fixes. For s390 we have no plan nor env to do this.

design/multiple-arch-build-with-windows.md Outdated Show resolved Hide resolved
design/multiple-arch-build-with-windows.md Outdated Show resolved Hide resolved
design/multiple-arch-build-with-windows.md Outdated Show resolved Hide resolved
kaovilai
kaovilai previously approved these changes Nov 28, 2024
@Lyndon-Li Lyndon-Li force-pushed the design-for-windows-build branch from 9744ca7 to 3723033 Compare December 2, 2024 05:42
@Lyndon-Li Lyndon-Li requested a review from kaovilai December 2, 2024 07:02
@Lyndon-Li
Copy link
Contributor Author

Lyndon-Li commented Dec 2, 2024

Made some further changes:

  1. Removed BUILDX_TAG_GCR input parameter in design
  2. Added build to tar for Local Build

Copy link
Contributor

@reasonerjt reasonerjt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks!

For the same reason, a new input parameter is added, `BUILD_WINDOWS_VERSION`. The default value is `ltsc2022`. Windows server 2022 is the only base image we will deliver officially, Windows server 2019 is not supported. In future, we may need to support Windows server 2025 base image.
For local build to tar, the Windows OS version is also added to the name of the tarball, e.g., `_output/velero-main-windows-ltsc2022-amd64.tar`.

At present, Windows container image only supports `amd64` as the architecture, so `BUILD_ARCH` is ignored for Windows.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want to note that nanoserver insider has arm. There are not yet GA Windows base images with arm that I can see however.
https://hub.docker.com/r/microsoft/windows-nanoserver-insider
https://mcr.microsoft.com/v2/windows/nanoserver/insider/tags/list

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned here, we will consider to support arm for Windows until it is officially supported by Windows container and other major components like Hyper-V, .Net, etc. The build of arm based client or image itself is not a problem

@Lyndon-Li Lyndon-Li merged commit 7e80d8f into vmware-tanzu:main Dec 3, 2024
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants