Options
Every option is a change to inputs.yaml followed by a regenerate, or a small edit to the generated files. This page shows which.
How to change an option
- Edit
inputs.yaml. - Validate:
Test-MLOpsAcceleratorInput -InputFile inputs.yaml. - Regenerate over an existing project (commit first, then review the diff):
Add -Deploy only if you also need to re-run the bootstrap (new repository, environments or identity). Changes to the workload and infrastructure are rolled out by the pipelines after you merge to main.
Warning
Regenerating overwrites files. Anything you edited by hand in the generated project is replaced, so keep local edits small and review the diff.
Options
- Two environments
- Terraform or Bicep
- GitHub or Azure DevOps
- Your own data (ADLS)
- Outbound allow-list
- VNet address space
- Existing platform
- Budget alerts
- Tags
- Compute sizes
- Switch scenario
- Policy mode
- CSV or parquet
All inputs
| Input | Type | Default | Notes |
|---|---|---|---|
project_name | string | required | 3 to 10 lowercase alphanumerics, used in resource names |
location | string | required | Azure region, for example eastus2 |
subscription_id, tenant_id | string | required | |
iac | terraform or bicep | required | |
cicd | github or azdo | required | |
scenario | string | required | See scenarios |
data_source | taxi-csv, taxi-parquet, nyc-taxi-open or adls | taxi-csv | |
environments | list | [dev, test, prod] | Ordered subset |
tags | map | {} | |
github_org, github_repo | string | cicd: github | |
azdo_org_url, azdo_project | string | cicd: azdo | |
workload_type | tabular | tabular | Kind of workload pack. nlp and vision are planned. The old name workload still works and prints a deprecation warning |
vnet_address_space | CIDR | 10.20.0.0/16 | Scenario 4 |
allowed_outbound_fqdns | list | PyPI and conda hosts | Scenario 3 |
policy_mode | audit, deny or none | audit (none for scenario 11) | Azure Policy |
compute_vm_size | string | Standard_DS3_v2 | Training cluster and online endpoint VM size |
compute_max_nodes | integer | 4 | Training cluster maximum nodes |
workloads | list | Single workload | Workload names (not types) sharing the platform; reserved names such as src, data and mlops are rejected; each gets workloads/<name>/ and its own pipelines |
use_private_networking | bool | false | GitHub only, rejected with Azure DevOps: deploy self-hosted ACI runners in a VNet and make the state storage private-endpoint only |
runners_vnet_address_space | string | 10.250.0.0/24 | Runner VNet address space |
runner_label | string | ubuntu-latest | GitHub runs-on label for generated workflows. Must be a self-hosted label when use_private_networking is true |
approvers | list | [] | GitHub usernames that must approve deployments to non-dev environments |
name_suffix | string | derived | exactly 5 lowercase alphanumerics; override to redeploy after a destroy (soft-delete holds names) |
keyvault_retention_days | integer | 7 | Key Vault soft-delete retention (7 to 90 days, fixed at creation) |
budget_amount | number | 500 | Scenarios 9 and 11 |
alert_emails | list | [] | Scenarios 9 and 11 |
existing_platform | object | Scenario 11 | |
adls | object | data_source: adls |
The authoritative definition is schema/inputs.schema.json.
Validation rules
The inputs are checked against the schema and a set of semantic rules before anything is generated.
rag,existing_platformandadlsare accepted only withrag-llmops,existing-platformanddata_source: adls.use_private_networking: trueis rejected withcicd: azdoand needs a self-hostedrunner_label. Labels that start withubuntu-,windows-ormacos-, or end with-latest, are rejected.- Environments are sorted into
dev,test,prodorder whatever order you write.devis optional. Registry promotion scenarios need at least two environments. A warning is printed whenprodis first, or when a non-dev environment has noapproverson GitHub. vnet_address_space(scenario 4) must be a network address in private space (10.0.0.0/8,172.16.0.0/12or192.168.0.0/16) with a prefix from/16to/18.runners_vnet_address_spaceneeds a prefix from/16to/27. The two must not overlap.name_suffixis exactly 5 lowercase letters or digits.