-
Notifications
You must be signed in to change notification settings - Fork 240
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
feat: Windows HPC base image #3105
Conversation
b81c2b2
to
ecb6a4e
Compare
/azp run Azure Container Networking PR |
Azure Pipelines successfully started running 1 pipeline(s). |
Checking if the makefile changes impact other E2E besides PR. i.e
|
/azp list |
/azp |
Supported commands
See additional documentation. |
/azp run NPM Conformance Tests, NPM Scale Test, CNI Release Test |
Azure Pipelines successfully started running 3 pipeline(s). |
Signed-off-by: Evan Baker <[email protected]>
/azp run Azure Container Networking PR |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run NPM Conformance Tests, NPM Scale Test, CNI Release Test |
Azure Pipelines successfully started running 3 pipeline(s). |
cc @tyler-lloyd @paulgmiller for viz |
I'm going to say LGTM, but only in that there's nothing obviously wrong here to my eye. I don't know all the fiddly SKUs and IDs for Windows (and I trust that @rbtr probably found the right ones), so I'll let others with more specific knowledge of those judge that aspect of this PR. |
I figured out all the fiddly Windows SKUs way back when I originally set up multiplat image builds... this removes them because it turns out we don't need them (or any OS in our Windows base images at all, really) 🪄 |
feat: windows hpc base image Signed-off-by: Evan Baker <[email protected]>
Signed-off-by: Evan Baker <[email protected]>
Windows HPC are special.
They explicitly do not run in a
chroot
or similar execution sandbox, and their filesystem is a merged view of the hostfs and their shipped containerfs. This means that we don't need to ship a filesystem: we recently moved fromservercore
tonanoserver
and observed that the lack ofpwsh.exe
innanoserver
is manageable (in containerd 1.7+, automatically, and in 1.6, by tweaking the containerPATH
). We can go further and remove the rest of the OS since, as HPC, we don't need it and can escape to the hostfs for dependencies like powershell.Further, HPC do not have the same Windows OS version compatibility requirements (the "os-version") as regular Windows containers - any Windows HPC may run on any Windows Server Host (given the executables are compatible with that Host).
In some of the testing with WS25 we have seen that this may happen - it was observed that containerd on WS25 inconsistently fetched the WS25 CNI image specified in our multiplatform manifest but was able to run other WS images without any issue.
Containerd >= 1.6 should have compatibility for Windows HPC without an
os-version
set, so we don't need to build separate Windows images for all of our target WS variants and can simply build one without that extra metadata.