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

feat: Windows HPC base image #3105

Merged
merged 1 commit into from
Nov 12, 2024
Merged

feat: Windows HPC base image #3105

merged 1 commit into from
Nov 12, 2024

Conversation

rbtr
Copy link
Contributor

@rbtr rbtr commented Nov 5, 2024

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 from servercore to nanoserver and observed that the lack of pwsh.exe in nanoserver is manageable (in containerd 1.7+, automatically, and in 1.6, by tweaking the container PATH). 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.

@rbtr
Copy link
Contributor Author

rbtr commented Nov 6, 2024

/azp run Azure Container Networking PR

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@rbtr rbtr added enhancement windows release/latest Change affects latest release train needs-backport Change needs to be backported to previous release trains labels Nov 7, 2024
@jpayne3506
Copy link
Contributor

jpayne3506 commented Nov 7, 2024

Checking if the makefile changes impact other E2E besides PR.

i.e

kubectl set image daemonset/azure-npm-win -n kube-system azure-npm=$IMAGE_REGISTRY/azure-npm:windows-amd64-ltsc2022-${{ parameters.tag }}

@jpayne3506
Copy link
Contributor

/azp list

@jpayne3506
Copy link
Contributor

/azp

Copy link

Supported commands
  • help:
    • Get descriptions, examples and documentation about supported commands
    • Example: help "command_name"
  • list:
    • List all pipelines for this repository using a comment.
    • Example: "list"
  • run:
    • Run all pipelines or specific pipelines for this repository using a comment. Use this command by itself to trigger all related pipelines, or specify specific pipelines to run.
    • Example: "run" or "run pipeline_name, pipeline_name, pipeline_name"
  • where:
    • Report back the Azure DevOps orgs that are related to this repository and org
    • Example: "where"

See additional documentation.

@jpayne3506
Copy link
Contributor

/azp run NPM Conformance Tests, NPM Scale Test, CNI Release Test

Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@rbtr
Copy link
Contributor Author

rbtr commented Nov 8, 2024

/azp run Azure Container Networking PR

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@rbtr
Copy link
Contributor Author

rbtr commented Nov 8, 2024

/azp run NPM Conformance Tests, NPM Scale Test, CNI Release Test

Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@rbtr
Copy link
Contributor Author

rbtr commented Nov 11, 2024

cc @tyler-lloyd @paulgmiller for viz

@timraymond
Copy link
Member

timraymond commented Nov 12, 2024

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.

@rbtr
Copy link
Contributor Author

rbtr commented Nov 12, 2024

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) 🪄

@rbtr rbtr added this pull request to the merge queue Nov 12, 2024
github-merge-queue bot pushed a commit that referenced this pull request Nov 12, 2024
feat: windows hpc base image

Signed-off-by: Evan Baker <[email protected]>
Merged via the queue into master with commit 6a53d5d Nov 12, 2024
235 checks passed
@rbtr rbtr deleted the hpc branch November 12, 2024 19:47
rbtr added a commit that referenced this pull request Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement needs-backport Change needs to be backported to previous release trains release/latest Change affects latest release train windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants