Use Azure Dev/Test subscription pricing (if available)

September 21, 2026 ยท View on GitHub

Note

This guide expands on the Cost Considerations section of the main contributing guide.

Full deployment testing incurs Azure costs. This guide provides cost transparency and optimization strategies.

Note

Cost estimates in this document were captured on 2026-02-03 and are subject to change. Use the Azure Pricing Calculator for current rates.

Testing Budget

Full Deployment Cost Estimate

  • GPU VMs: ~$3.06/hour per Standard_NC24ads_A100_v4 node
  • Managed services: ~$50-100/month (Storage, Key Vault, PostgreSQL, Redis)
  • Total for 8-hour testing session: ~$25-50

Cost by Component

The following historical estimate uses illustrative SKUs, not current deployment defaults. The checked-in example uses Standard_NV36ads_A10_v5 GPU nodes and Standard_D8ds_v5 system nodes. Root defaults use PostgreSQL GP_Standard_D2s_v3 and Azure Managed Redis Balanced_B10, not the Burstable and Basic tiers priced below. Recalculate costs from your selected terraform.tfvars before deployment.

ComponentEstimated CostNotes
AKS Control PlaneFree (tier) or ~$0.10/hour (standard)Standard tier for production
GPU Node Pool$3.06/hour per nodeStandard_NC24ads_A100_v4
System Node Pool~$0.50/hourStandard_D4s_v3
Storage Account~$20-30/monthGeneral Purpose v2
Key Vault~$0.05/month + operationsSecrets storage
PostgreSQL~$15-25/monthFlexible Server, Burstable tier
Redis Cache~$15-20/monthBasic tier
Log Analytics~$5-15/monthBased on ingestion volume

Cost-Effective Testing

Strategies for Minimizing Testing Costs

Use smaller deployments:

Configure the supported root inputs in infrastructure/terraform/terraform.tfvars, then review the plan before applying:

  • In node_pools, limit each autoscaled pool with min_count and max_count. For fixed pools, disable should_enable_auto_scaling and set node_count.
  • Select a workload-appropriate PostgreSQL tier with postgresql_sku_name. Confirm capacity and availability requirements before selecting a cheaper tier.
  • Keep private networking unless a public test environment is approved. should_enable_private_endpoint and should_enable_private_aks_cluster select the network mode; review should_enable_public_network_access separately.

The checked-in single-pool example already caps the A10 pool at one node. Initialize subscription context with source infrastructure/terraform/prerequisites/az-sub-init.sh from the repository root before Terraform operations. Use the same reviewed variable file for plan, apply, and destroy.

Time-bound testing:

# Set auto-shutdown timer
az vm auto-shutdown -g <rg> -n <vm> --time 2200

# Use Azure Dev/Test subscription pricing (if available)
# 40-60% savings on compute resources

Immediate cleanup:

# Destroy all resources after validation
terraform destroy -auto-approve -var-file=terraform.tfvars

# Verify resource deletion
az group list --query "[?starts_with(name,'rg-robotics')].name" -o table
az group delete -n <rg> --yes --no-wait

Cost Tracking

Monitor Spending During Testing

# Check recent usage
az consumption usage list \
  --start-date $(date -d '7 days ago' +%Y-%m-%d) \
  --end-date $(date +%Y-%m-%d) \
  --query "[].{Date:usageStart, Amount:pretaxCost, Currency:currency}" \
  --output table

# Create budget alert
az consumption budget create \
  --budget-name "PR-Testing-Monthly" \
  --amount 100 \
  --time-grain Monthly \
  --category Cost \
  --resource-group <rg>

Cost by Contribution Type

Contribution TypeTypical CostRecommended Testing
Documentation$0Read-through, link check
Shell scripts$0-10ShellCheck, minimal deployment
Terraform modules$10-25Plan validation, short deployment
Training scripts$15-30Single training job
Full infrastructure$25-50Complete deployment cycle
Workflow templates$15-40Workflow execution

Regional Pricing

GPU VM costs vary by region. Use Azure Pricing Calculator to estimate costs for your target region.

RegionStandard_NC24ads_A100_v4 Hourly Cost
East US~$3.06/hour
West US 2~$3.06/hour
West Europe~$3.67/hour

Tip

Test in regions with lower GPU costs when region-specific features are not being validated.