@@ -6,11 +6,27 @@ resource "azurerm_virtual_network" "default" {
66 resource_group_name = azurerm_resource_group. default . name
77}
88
9- resource "azurerm_subnet" "mlsubnet " {
10- name = " mlsubnet "
9+ resource "azurerm_subnet" "training-subnet " {
10+ name = " training-subnet "
1111 resource_group_name = azurerm_resource_group. default . name
1212 virtual_network_name = azurerm_virtual_network. default . name
13- address_prefixes = var. subnet_address_space
13+ address_prefixes = var. training_subnet_address_space
14+ enforce_private_link_endpoint_network_policies = true
15+ }
16+
17+ resource "azurerm_subnet" "aks-subnet" {
18+ name = " aks-subnet"
19+ resource_group_name = azurerm_resource_group. default . name
20+ virtual_network_name = azurerm_virtual_network. default . name
21+ address_prefixes = var. aks_subnet_address_space
22+ enforce_private_link_endpoint_network_policies = true
23+ }
24+
25+ resource "azurerm_subnet" "ml-subnet" {
26+ name = " ml-subnet"
27+ resource_group_name = azurerm_resource_group. default . name
28+ virtual_network_name = azurerm_virtual_network. default . name
29+ address_prefixes = var. ml_subnet_address_space
1430 enforce_private_link_endpoint_network_policies = true
1531}
1632
@@ -87,3 +103,110 @@ resource "azurerm_private_dns_zone_virtual_network_link" "vnetlinknbs" {
87103 private_dns_zone_name = azurerm_private_dns_zone. dnsnotebooks . name
88104 virtual_network_id = azurerm_virtual_network. default . id
89105}
106+
107+ # Network Security Groups
108+
109+ resource "azurerm_network_security_group" "training-NSG" {
110+ name = " training-NSG"
111+ location = azurerm_resource_group. default . location
112+ resource_group_name = azurerm_resource_group. default . name
113+
114+ security_rule {
115+ name = " BatchNodeManagement"
116+ priority = 100
117+ direction = " Inbound"
118+ access = " Allow"
119+ protocol = " Tcp"
120+ source_port_range = " *"
121+ destination_port_range = " 29876-29877"
122+ source_address_prefix = " BatchNodeManagement"
123+ destination_address_prefix = " *"
124+ }
125+ security_rule {
126+ name = " AzureMachineLearning"
127+ priority = 110
128+ direction = " Inbound"
129+ access = " Allow"
130+ protocol = " Tcp"
131+ source_port_range = " *"
132+ destination_port_range = " 44224"
133+ source_address_prefix = " AzureMachineLearning"
134+ destination_address_prefix = " *"
135+ }
136+ }
137+
138+ resource "azurerm_subnet_network_security_group_association" "training-NSG-link" {
139+ subnet_id = azurerm_subnet. training-subnet . id
140+ network_security_group_id = azurerm_network_security_group. training-NSG . id
141+ }
142+
143+ resource "azurerm_network_security_group" "aks-NSG" {
144+ name = " aks-NSG"
145+ location = azurerm_resource_group. default . location
146+ resource_group_name = azurerm_resource_group. default . name
147+
148+
149+ }
150+
151+ resource "azurerm_subnet_network_security_group_association" "aks-NSG-link" {
152+ subnet_id = azurerm_subnet. aks-subnet . id
153+ network_security_group_id = azurerm_network_security_group. aks-NSG . id
154+ }
155+
156+ # User Defined Routes
157+
158+ # UDR for Compute instance and compute clusters
159+ resource "azurerm_route_table" "training-UDR" {
160+ name = " training-UDR"
161+ location = azurerm_resource_group. default . location
162+ resource_group_name = azurerm_resource_group. default . name
163+ }
164+
165+ resource "azurerm_route" "training-Internet-Route" {
166+ name = " Internet"
167+ resource_group_name = azurerm_resource_group. default . name
168+ route_table_name = azurerm_route_table. training-UDR . name
169+ address_prefix = " 0.0.0.0/0"
170+ next_hop_type = " Internet"
171+ }
172+
173+ resource "azurerm_route" "training-AzureMLRoute" {
174+ name = " AzureMLRoute"
175+ resource_group_name = azurerm_resource_group. default . name
176+ route_table_name = azurerm_route_table. training-UDR . name
177+ address_prefix = " AzureMachineLearning"
178+ next_hop_type = " Internet"
179+ }
180+
181+ resource "azurerm_route" "training-BatchRoute" {
182+ name = " BatchRoute"
183+ resource_group_name = azurerm_resource_group. default . name
184+ route_table_name = azurerm_route_table. training-UDR . name
185+ address_prefix = " BatchNodeManagement"
186+ next_hop_type = " Internet"
187+ }
188+
189+ resource "azurerm_subnet_route_table_association" "training-UDRlink" {
190+ subnet_id = azurerm_subnet. training-subnet . id
191+ route_table_id = azurerm_route_table. training-UDR . id
192+ }
193+ # Inferencing (AKS) Route
194+
195+ resource "azurerm_route_table" "aks-UDR" {
196+ name = " aks-UDR"
197+ location = azurerm_resource_group. default . location
198+ resource_group_name = azurerm_resource_group. default . name
199+ }
200+
201+ resource "azurerm_route" "aks-Internet-Route" {
202+ name = " Internet"
203+ resource_group_name = azurerm_resource_group. default . name
204+ route_table_name = azurerm_route_table. aks-UDR . name
205+ address_prefix = " 0.0.0.0/0"
206+ next_hop_type = " Internet"
207+ }
208+
209+ resource "azurerm_subnet_route_table_association" "aks-UDR-link" {
210+ subnet_id = azurerm_subnet. aks-subnet . id
211+ route_table_id = azurerm_route_table. aks-UDR . id
212+ }
0 commit comments