scenarios/shared/terraform/modules/acr/main.tf (40 lines of code) (raw):
resource "azurerm_container_registry" "acr" {
name = var.acrName
resource_group_name = var.spokeResourceGroupName
location = var.location
tags = var.tags
sku = "Premium"
admin_enabled = false
public_network_access_enabled = false
network_rule_bypass_option = "AzureServices"
}
module "containerRegistryPrivateZones" {
source = "../networking/private-zones"
resourceGroupName = var.hubResourceGroupName
vnetLinks = var.vnetLinks
zoneName = local.privateDnsZoneNames
records = var.aRecords
tags = var.tags
}
module "containerRegistryPrivateEndpoints" {
source = "../networking/private-endpoints"
endpointName = var.containerRegistryPep
resourceGroupName = var.spokeResourceGroupName
subnetId = var.subnetId
privateLinkId = azurerm_container_registry.acr.id
privateDnsZoneIds = [module.containerRegistryPrivateZones.privateDnsZoneId]
subResourceNames = local.subResourceNames
location = var.location
tags = var.tags
}
resource "azurerm_user_assigned_identity" "containerRegistryUserAssignedIdentity" {
name = var.containerRegistryUserAssignedIdentityName
resource_group_name = var.spokeResourceGroupName
location = var.location
tags = var.tags
}
resource "azurerm_role_assignment" "containerRegistryPullRoleAssignment" {
scope = azurerm_container_registry.acr.id
role_definition_name = "AcrPull"
principal_id = azurerm_user_assigned_identity.containerRegistryUserAssignedIdentity.principal_id
}