dotnet / dnceng

.NET Engineering Services
MIT License
24 stars 19 forks source link

Create Arm64 1ES Hosted Pool(s) in dnceng #2072

Open lbussell opened 9 months ago

lbussell commented 9 months ago

There are currently no Arm64 1ES Hosted Pools with pipeline template support available in dnceng: https://helix.dot.net/#1esPools

The .NET Docker and .NET Source-build projects (and potentially others) need arm64 1ES hosted pools in order to fully adopt 1ES pipeline templates. 1ES Pipeline Templates support arm64 on Azure Linux/CBL Mariner 2.0: https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/onboarding/arm64-support

Related: https://github.com/dotnet/dnceng/issues/1953, https://github.com/dotnet/dotnet-docker-internal/issues/4475

/cc @MichaelSimons @ilyas1974

Release Note Category

riarenas commented 7 months ago

@lbussell

riarenas commented 7 months ago

I think these are the workloads you want to move off the Docker-Linux-Arm-Internal pool, so I will start off using the same configuration as this pool.

Do let me know if we need any other considerations here.

lbussell commented 7 months ago

@riarenas

FYI this is no longer blocking 1ES PT conversion for the .NET Containers team - however this would still be nice to have when dnceng is ready to re-evaluate all of the agent pools post-1ESPT.

  • Where are you currently running the workloads that need this?

Both public and internal

  • How many machines do you think you need?
  • Any requirement for which machine SKU?

I would expect this pool to be configured similarly to the 1es-ubuntu-2204 pool that we currently have. i.e. a fully supported default option that anyone can choose when they want a build to run on arm64. We would like to be less "special" and reduce the number of places where we need custom build images. Having an arm64 image available would mean we no longer need any special treatment for Linux builds.

riarenas commented 7 months ago

Alright, then I'll use the same basic premise that we use for our other pools, and we will have a new public and internal generic pool that has the 1es mariner image as its only image. We will use similar configurations as our existing pools:

riarenas commented 7 months ago

I'm keeping this one assigned to me so I remember to attach this to the resulting epic from https://github.com/dotnet/dnceng/issues/2488

DrewScoggins commented 1 month ago

The .NET Perf team needs 1ES Arm64 pools for our conversion of the dotnet-optimization repo over to using 1ES templates. What would be the work required for this, and what would you need from us?