1- data "azuread_client_config" "current" {}
2-
3-
41# ## Create a new Azure DevOps project
52resource "azuredevops_project" "this" {
63 name = " python-fastapi"
@@ -110,4 +107,96 @@ resource "azuredevops_serviceendpoint_azurecr" "acr_registry_endpoint" {
110107 credentials {
111108 serviceprincipalid = azurerm_user_assigned_identity. this_uaid . client_id
112109 }
113- }
110+ }
111+
112+ resource "azuredevops_variable_group" "infra_variable_group" {
113+ project_id = azuredevops_project. this . id
114+ name = " Infrastructure Pipeline Variables"
115+ description = " Managed by Terraform"
116+ allow_access = true
117+
118+ variable {
119+ name = " ACR_URL"
120+ value = azurerm_container_registry. this_container_registry . login_server
121+ }
122+
123+ variable {
124+ name = " ACR_SERVICE_CONNECTION"
125+ value = azuredevops_serviceendpoint_azurecr. acr_registry_endpoint . id
126+ }
127+
128+ variable {
129+ name = " AKS_CLUSTER_NAME"
130+ value = azurerm_kubernetes_cluster. this_aks_cluster . name
131+ }
132+
133+ variable {
134+ name = " AZURE_SERVICE_CONNECTION"
135+ value = azuredevops_serviceendpoint_azurerm. arm_sc . id
136+ }
137+
138+ variable {
139+ name = " RESOURCE_GROUP_NAME"
140+ value = azurerm_resource_group. this_resource_group . name
141+ }
142+ }
143+
144+
145+ resource "azurerm_resource_group" "this_resource_group" {
146+ name = var. resource_group_name
147+ location = var. location
148+ }
149+
150+ resource "azurerm_container_registry" "this_container_registry" {
151+ name = var. acr_name
152+ resource_group_name = azurerm_resource_group. this_resource_group . name
153+ location = var. location
154+ sku = " Standard"
155+
156+ depends_on = [azurerm_resource_group . this_resource_group ]
157+ }
158+
159+ resource "azuredevops_serviceendpoint_azurerm" "arm_sc" {
160+ project_id = azuredevops_project. this . id
161+ service_endpoint_name = " Azure ARM Endpoint"
162+
163+ environment = " AzureCloud"
164+ azurerm_spn_tenantid = var. TFC_AZ_TENANT_ID
165+ azurerm_subscription_id = var. TFC_AZ_SUBSCRIPTION_ID
166+ azurerm_subscription_name = " DSB"
167+
168+ service_endpoint_authentication_scheme = " WorkloadIdentityFederation"
169+
170+ credentials {
171+ serviceprincipalid = azurerm_user_assigned_identity. this_uaid . client_id
172+ }
173+ }
174+
175+ resource "azurerm_kubernetes_cluster" "this_aks_cluster" {
176+ name = var. aks_name
177+ location = var. location
178+ resource_group_name = azurerm_resource_group. this_resource_group . name
179+ dns_prefix = " DSB"
180+
181+
182+ default_node_pool {
183+ name = " default"
184+ node_count = 1
185+ vm_size = " Standard_A2_v2"
186+ }
187+
188+ identity {
189+ type = " UserAssigned"
190+ identity_ids = [azurerm_user_assigned_identity . this_uaid . id ]
191+ }
192+
193+ tags = {
194+ Environment = " Production"
195+ }
196+ depends_on = [
197+ azurerm_role_assignment . uaid_contributor ,
198+ azurerm_role_assignment . acr_pull ,
199+ azurerm_role_assignment . acr_push
200+ ]
201+ }
202+
0 commit comments