diff --git a/.gitignore b/.gitignore index d2f6471c..8f21e32a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ quickstart/101-machine-learning/.terraform.lock.hcl quickstart/101-machine-learning/.terraform/providers/registry.terraform.io/hashicorp/azurerm/2.76.0/windows_amd64/terraform-provider-azurerm_v2.76.0_x5.exe quickstart/101-machine-learning/terraform.tfstate quickstart/101-machine-learning/demo.tfplan +quickstart/201-machine-learning-moderately-secure/demo.tfplan diff --git a/quickstart/201-machine-learning-moderately-secure/compute.tf b/quickstart/201-machine-learning-moderately-secure/compute.tf new file mode 100644 index 00000000..2544c5a6 --- /dev/null +++ b/quickstart/201-machine-learning-moderately-secure/compute.tf @@ -0,0 +1,37 @@ +# Generate random string for unique compute instance name +resource "random_string" "ci_prefix" { + length = 8 + upper = false + special = false + number = false +} + +# Compute instance +resource "azurerm_machine_learning_compute_instance" "compute_instance" { + name = "${random_string.ci_prefix.result}instance" + location = azurerm_resource_group.default.location + machine_learning_workspace_id = azurerm_machine_learning_workspace.default.id + virtual_machine_size = "STANDARD_DS2_V2" + subnet_resource_id = azurerm_subnet.snet-training.id +} + +# Compute cluster +resource "azurerm_machine_learning_compute_cluster" "compute" { + name = "cpu-cluster" + location = azurerm_resource_group.default.location + machine_learning_workspace_id = azurerm_machine_learning_workspace.default.id + vm_priority = "Dedicated" + vm_size = "STANDARD_DS2_V2" + subnet_resource_id = azurerm_subnet.snet-training.id + + identity { + type = "SystemAssigned" + } + + scale_settings { + min_node_count = 0 + max_node_count = 3 + scale_down_nodes_after_idle_duration = "PT15M" # 15 minutes + } + +} \ No newline at end of file diff --git a/quickstart/201-machine-learning-moderately-secure/network.tf b/quickstart/201-machine-learning-moderately-secure/network.tf index c1751545..06010ff7 100644 --- a/quickstart/201-machine-learning-moderately-secure/network.tf +++ b/quickstart/201-machine-learning-moderately-secure/network.tf @@ -82,6 +82,11 @@ resource "azurerm_private_dns_zone_virtual_network_link" "vnetlinkcr" { resource "azurerm_private_dns_zone" "dnsazureml" { name = "privatelink.api.azureml.ms" resource_group_name = azurerm_resource_group.default.name + + depends_on = [ + azurerm_machine_learning_compute_cluster.compute, + azurerm_machine_learning_compute_instance.compute_instance + ] } resource "azurerm_private_dns_zone_virtual_network_link" "vnetlinkml" { @@ -94,6 +99,11 @@ resource "azurerm_private_dns_zone_virtual_network_link" "vnetlinkml" { resource "azurerm_private_dns_zone" "dnsnotebooks" { name = "privatelink.notebooks.azure.net" resource_group_name = azurerm_resource_group.default.name + + depends_on = [ + azurerm_machine_learning_compute_cluster.compute, + azurerm_machine_learning_compute_instance.compute_instance + ] } resource "azurerm_private_dns_zone_virtual_network_link" "vnetlinknbs" { diff --git a/quickstart/201-machine-learning-moderately-secure/readme.md b/quickstart/201-machine-learning-moderately-secure/readme.md index 6c5fbe6e..17bbf831 100644 --- a/quickstart/201-machine-learning-moderately-secure/readme.md +++ b/quickstart/201-machine-learning-moderately-secure/readme.md @@ -43,6 +43,8 @@ This configuration describes the minimal set of resources you require to get sta ## Usage ```bash +terraform init + terraform plan -var name=azureml567 -out demo.tfplan terraform apply "demo.tfplan"