)
Rebased from: #250
This pull request introduces support for provisioning Azure Linux nodes
in the GPU Provisioner and updates related functionality across
documentation, implementation, and testing. Key changes include adding
configuration options for Azure Linux in KAITO workloads, modifying the
logic for determining the OS SKU, and expanding test coverage to ensure
compatibility.
### Documentation Updates:
* Added Azure Linux examples under `examples/`:
* `azure-linux-nodeclaim.yaml`
* `azure-linux-annotation-nodeclaim.yaml`
* `azure-linux-examples.md`
### Implementation Enhancements:
* `pkg/providers/instance/instance.go`: determine OSSKU from NodeClaim
labels/annotations (labels
take precedence; default to Ubuntu).
### Testing Improvements:
* Added unit test `TestNewAgentPoolObjectWithImageFamily` in
`pkg/providers/instance/instance_test.go`.
* Updated e2e suite in `test/e2e/suites/suite_test.go`:
* Added Azure Linux e2e coverage.
### Validation:
* Manual validation in addition to e2e: created an AKS cluster with
H100/A100, built and pushed an AzureLinux‑enabled gpu‑provisioner image
to ACR, configured managed identity with contributor on the cluster RG,
deployed the gpu‑provisioner via Helm, then created a Workspace with
AzureLinux + GPU + the phi‑3‑mini model and verified the full flow
worked).
---------
Signed-off-by: miz060 <mitchzhu@microsoft.com>
This pull request introduces support for provisioning Azure Linux nodes in the GPU Provisioner and updates related functionality across documentation, implementation, and testing. Key changes include adding configuration options for Azure Linux in KAITO workloads, modifying the logic for determining the OS SKU, and expanding test coverage to ensure compatibility.
Documentation Updates:
docs/azure-linux-support.md, detailing the configuration, supported image families, migration steps, and benefits of using Azure Linux with the GPU Provisioner. This includes examples for bothNodeClaimandWorkspacespecifications.Implementation Enhancements:
func newAgentPoolObjectinpkg/providers/instance/instance.goto determine the OS SKU based onNodeClaimlabels or annotations, defaulting to Ubuntu if unspecified or invalid. Labels take precedence over annotations.Testing Improvements:
TestNewAgentPoolObjectWithImageFamily, inpkg/providers/instance/instance_test.goto validate the OS SKU determination logic for various scenarios, including label precedence, unknown image families, and default behavior.