mirror of
				https://github.com/bartvdbraak/keyweave.git
				synced 2025-10-31 00:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bicep
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bicep
		
	
	
	
	
	
| targetScope = 'subscription'
 | |
| 
 | |
| /*
 | |
|   Parameters
 | |
| */
 | |
| 
 | |
| @allowed([
 | |
|   'D' // Development
 | |
|   'T' // Test
 | |
|   'A' // Acceptance
 | |
|   'P' // Production
 | |
| ])
 | |
| param environment string = 'T'
 | |
| param location string = 'westeurope'
 | |
| param name object = {
 | |
|   tenantId: 'BVDB'
 | |
|   projectId: 'KEYWEAVE'
 | |
|   region: 'WEU'
 | |
| }
 | |
| 
 | |
| /*
 | |
|   Variables
 | |
| */
 | |
| 
 | |
| var tags = {
 | |
|   project: 'keyweave'
 | |
| }
 | |
| var nameFormat = '${name.tenantId}-${name.projectId}-${environment}-${name.region}-{0}-{1:N0}'
 | |
| 
 | |
| /*
 | |
|   Resource Group
 | |
| */
 | |
| 
 | |
| resource ResourceGroup 'Microsoft.Resources/resourceGroups@2024-03-01' = {
 | |
|   name: format(nameFormat, 'RG', 1)
 | |
|   location: location
 | |
|   tags: tags
 | |
| }
 | |
| 
 | |
| /*
 | |
|   Module for Log Analytics Workspace
 | |
| */
 | |
| 
 | |
| module LogAnalyticsWorkspace 'modules/law.bicep' = {
 | |
|   name: 'LogAnalyticsWorkspace'
 | |
|   scope: ResourceGroup
 | |
|   params: {
 | |
|     nameFormat: nameFormat
 | |
|     location: location
 | |
|     tags: tags
 | |
|   }
 | |
| }
 | |
| 
 | |
| /*
 | |
|   Module for Managed Identities
 | |
| */
 | |
| 
 | |
| module ManagedIdentities 'modules/id.bicep' = {
 | |
|   name: 'ManagedIdentities'
 | |
|   scope: ResourceGroup
 | |
|   params: {
 | |
|     nameFormat: nameFormat
 | |
|     location: location
 | |
|     tags: tags
 | |
|   }
 | |
| }
 | |
| 
 | |
| /*
 | |
|   Module for KeyVault
 | |
| */
 | |
| 
 | |
| module KeyVault 'modules/kv.bicep' = {
 | |
|   name: 'KeyVault'
 | |
|   scope: ResourceGroup
 | |
|   dependsOn: [
 | |
|     LogAnalyticsWorkspace
 | |
|   ]
 | |
|   params: {
 | |
|     nameFormat: nameFormat
 | |
|     location: location
 | |
|     tags: tags
 | |
| 
 | |
|     identities: ManagedIdentities.outputs.identities
 | |
|   }
 | |
| }
 |