Skip to content
This repository was archived by the owner on Apr 6, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"command": "/bin/bash",
"args": [
"-c",
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform plan -var-file=${input:devCenterExample}"
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform init && terraform plan -var-file=${input:devCenterExample}"
],
"options": {
"cwd": "${workspaceFolder}"
Expand All @@ -24,7 +24,7 @@
"command": "/bin/bash",
"args": [
"-c",
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform apply -auto-approve -var-file=${input:devCenterExample}"
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform init && terraform apply -auto-approve -var-file=${input:devCenterExample}"
],
"options": {
"cwd": "${workspaceFolder}"
Expand All @@ -37,7 +37,7 @@
"command": "/bin/bash",
"args": [
"-c",
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform destroy -auto-approve -var-file=${input:devCenterExample}"
"export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv) && terraform init && terraform destroy -auto-approve -var-file=${input:devCenterExample}"
],
"options": {
"cwd": "${workspaceFolder}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,7 @@ dev_center_dev_box_definitions = { # Standard Windows 11 development environment
image_reference_id = "galleries/default/images/microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2"
sku_name = "general_i_8c32gb256ssd_v2"

hibernate_support = {
enabled = true # Enable hibernate for cost optimization
}
hibernate_support = true # Enable hibernate for cost optimization

tags = {
module = "dev_center_dev_box_definition"
Expand All @@ -96,9 +94,10 @@ dev_center_dev_box_definitions = { # Standard Windows 11 development environment
}
sku_name = "general_i_32c128gb1024ssd_v2" # High-performance SKU

hibernate_support = {
enabled = false # Keep running for long-running AI training
}
hibernate_support = false # Keep running for long-running AI training

# Test osStorageType property
os_storage_type = "ssd_1024gb"

tags = {
module = "dev_center_dev_box_definition"
Expand All @@ -110,53 +109,65 @@ dev_center_dev_box_definitions = { # Standard Windows 11 development environment
auto_delete = "disabled"
}
}
# Linux development environment
ubuntu_development = {
name = "ubuntu-development"
# Specialized environment for data science work
win11_data_science = {
name = "win11-datascience"
dev_center = {
key = "platform"
}
resource_group = {
key = "rg_devbox"
} # Ubuntu development image (using built-in Ubuntu 22.04)
image_reference_id = "galleries/default/images/canonical_0001-com-ubuntu-server-jammy_22_04-lts-gen2"
sku_name = "general_i_16c64gb512ssd_v2"
} # Data science image (using built-in Windows 11 with development tools)
image_reference_id = "galleries/default/images/microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2"

hibernate_support = {
enabled = true
}
# Use simple SKU configuration
sku_name = "general_i_16c64gb512ssd_v2"

hibernate_support = true

# Test osStorageType property
os_storage_type = "ssd_512gb"

tags = {
module = "dev_center_dev_box_definition"
image_type = "ubuntu"
tier = "standard"
purpose = "linux-development"
image_type = "win11"
tier = "specialized"
purpose = "data-science"
tools = "python-r-jupyter"
auto_delete = "enabled"
}
}
# Specialized environment for data science work
win11_data_science = {
name = "win11-datascience"
# Advanced SKU object configuration example
win11_enterprise_advanced = {
name = "win11-enterprise-advanced"
dev_center = {
key = "platform"
}
resource_group = {
key = "rg_devbox"
} # Data science image (using built-in Windows 11 with development tools)
image_reference_id = "galleries/default/images/microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2"
sku_name = "general_i_16c64gb512ssd_v2"
}
# Enterprise development image
image_reference_id = "galleries/default/images/microsoftvisualstudio_visualstudioplustools_vs-2022-pro-general-win11-m365-gen2"

hibernate_support = {
enabled = true
# Advanced SKU object configuration instead of simple sku_name
sku = {
name = "general_i_16c64gb512ssd_v2"
tier = "Standard"
}

hibernate_support = true

# Test osStorageType property
os_storage_type = "ssd_512gb"

tags = {
module = "dev_center_dev_box_definition"
image_type = "win11"
tier = "specialized"
purpose = "data-science"
tools = "python-r-jupyter"
tier = "enterprise"
purpose = "enterprise-development"
sku_type = "advanced_object"
auto_delete = "enabled"
config_type = "advanced"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ dev_center_dev_box_definitions = {
image_reference_id = "galleries/default/images/microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2"
sku_name = "general_i_8c32gb256ssd_v2"

hibernate_support = {
enabled = false
}
hibernate_support = false

tags = {
module = "dev_center_dev_box_definition"
Expand Down
4 changes: 2 additions & 2 deletions modules/dev_center/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,14 @@ For more examples including all possible configurations, see the [Dev Center exa
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.0 |
| <a name="requirement_azapi"></a> [azapi](#requirement\_azapi) | ~> 2.4.0 |
| <a name="requirement_azurecaf"></a> [azurecaf](#requirement\_azurecaf) | ~> 1.2.0 |
| <a name="requirement_azurecaf"></a> [azurecaf](#requirement\_azurecaf) | ~> 1.2.29 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_azapi"></a> [azapi](#provider\_azapi) | 2.4.0 |
| <a name="provider_azurecaf"></a> [azurecaf](#provider\_azurecaf) | 1.2.28 |
| <a name="provider_azurecaf"></a> [azurecaf](#provider\_azurecaf) | 1.2.29 |

## Modules

Expand Down
11 changes: 9 additions & 2 deletions modules/dev_center/module.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
required_providers {
azurecaf = {
source = "aztfmod/azurecaf"
version = "~> 1.2.0"
version = "~> 1.2.29"
}
azapi = {
source = "Azure/azapi"
Expand All @@ -25,7 +25,7 @@ locals {
# Using resource instead of data source to ensure stable naming across plan/apply
resource "azurecaf_name" "dev_center" {
name = var.dev_center.name
resource_type = "general"
resource_type = "azurerm_dev_center"
prefixes = var.global_settings.prefixes
random_length = var.global_settings.random_length
clean_input = true
Expand Down Expand Up @@ -77,6 +77,13 @@ resource "azapi_resource" "dev_center" {
tags = local.tags

response_export_values = ["properties"]

# Ignore changes to system-managed tags that Azure automatically adds
lifecycle {
ignore_changes = [
tags["hidden-title"]
]
}
}

data "azapi_client_config" "current" {}
4 changes: 2 additions & 2 deletions modules/dev_center_catalog/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@ This module implements the [Microsoft.DevCenter/devcenters/catalogs](https://lea
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.0 |
| <a name="requirement_azapi"></a> [azapi](#requirement\_azapi) | ~> 2.4.0 |
| <a name="requirement_azurecaf"></a> [azurecaf](#requirement\_azurecaf) | ~> 1.2.0 |
| <a name="requirement_azurecaf"></a> [azurecaf](#requirement\_azurecaf) | ~> 1.2.29 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_azapi"></a> [azapi](#provider\_azapi) | 2.4.0 |
| <a name="provider_azurecaf"></a> [azurecaf](#provider\_azurecaf) | 1.2.28 |
| <a name="provider_azurecaf"></a> [azurecaf](#provider\_azurecaf) | 1.2.29 |

## Modules

Expand Down
4 changes: 2 additions & 2 deletions modules/dev_center_catalog/module.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ terraform {
required_providers {
azurecaf = {
source = "aztfmod/azurecaf"
version = "~> 1.2.0"
version = "~> 1.2.29"
}
azapi = {
source = "Azure/azapi"
Expand All @@ -21,7 +21,7 @@ locals {

resource "azurecaf_name" "catalog" {
name = var.catalog.name
resource_type = "general"
resource_type = "azurerm_dev_center_catalog"
prefixes = var.global_settings.prefixes
random_length = var.global_settings.random_length
clean_input = true
Expand Down
Loading