Using PlantUML.
Created boundaries for components Cloud Native MG & connectivity MG.
Now trying to create a relationship between components in two groups –
In the code the line 94 has been commented out. Intention is to be able to have a call from Mngt_PE to Management_Subscription.
@startuml tech-design
skinparam linetype polyline
skinparam defaultTextAlignment center
title PoC for Architecture as Code
'LIBRARIES
!include <C4/C4_Component>
!include <C4/C4_Deployment>
!include <azure/AzureCommon>
!include <azure/AzureSimplified>
!include <azure/Compute/AzureAppService>
!include <azure/Management/AzurePolicy>
!include <azure/Networking/AzurePrivateLink>
!include <azure/Networking/AzureVirtualNetwork>
!include <azure/Security/AzureKeyVault>
AddRelTag("updated", $textColor="grey", $lineColor="orange", $lineStyle = SolidLine())
AddRelTag("new", $textColor="grey", $lineColor="green", $lineStyle = SolidLine())
AddRelTag("existing", $textColor="grey", $lineColor="grey", $lineStyle = SolidLine())
AddElementTag("sample", $fontColor=$NODE_FONT_COLOR, $borderColor="#7EC8E3", $bgColor=$NODE_BG_COLOR, $borderThickness=2)
AddElementTag("backendOutline", $borderColor=Green, $borderThickness=2)
AddElementTag("subscriptionOutline", $borderColor=blue, $borderThickness=1, $bgColor="lightgrey")
AddElementTag("newSubscriptionBorder", $borderColor=green, $borderThickness=2)
AddElementTag("updatedSubscriptionBorder", $borderColor=orange, $borderThickness=2)
AddElementTag("azureColor", $bgColor="gold", $borderColor=blue, $borderThickness=1)
AddElementTag("backEnd", $bgColor="#7EC8E3")
SetDefaultLegendEntries("")
'AddBoundaryTag("azureColor", $bgColor="green", $fontColor="white", $borderColor="white", $shadowing="true", $shape = RoundedBoxShape(), $type="GitHub repository")
AddBoundaryTag("azureColor", $bgColor="lightblue", $borderStyle="solid")
Boundary(azureCloud, "Azure Cloud", $tags="azureColor"){
Boundary(cloud-natives_MG, "Cloud Natives MG"){
AzurePolicy(amp, "Policyn", "Global")
Deployment_Node(Data_Subscription, "Data Subscription", $tags="newSubscriptionBorder") {
AzureKeyVault(keyvault5, "", "")
Deployment_Node(Data_Subscription_Infr, "Data Subscription Infr", $tags="backEnd") {
}
}
Deployment_Node(Work_Subscription, "Work Subscription", $tags="newSubscriptionBorder") {
AzureKeyVault(keyvault6, "", "")
Deployment_Node(Work_Subscription_Infr, "Work Subscription Infr", $tags="backEnd") {
}
}
Deployment_Node(Management_Subscription, "Management Subscription", $tags="updatedSubscriptionBorder") {
AzureKeyVault(keyvault7, "", "")
Deployment_Node(Management_Subscription_Infr, "Management Subscription Infr", $tags="backEnd") {
}
}
Deployment_Node(PlatformManagementServices, "Platform Management Services", $tags="subscriptionOutline") {
AzureKeyVault(keyvault8, "", "")
AzureAppService(appServices, "App Services", "")
}
}
Boundary(connectivity_MG, "connectivity MG"){
Deployment_Node(HUBSubscription, "HUB Subscription", $tags="subscriptionOutline") {
AzureKeyVault(keyvault9, "", "")
Boundary(HUB_VNET, "HUB VNET"){
AzureVirtualNetwork("VNET", "", "")
AzurePrivateLink(Mngt_PE, "nMngt PE", "")
AzurePrivateLink(Work_PE, "nWork PE", "")
AzurePrivateLink(Data_PE, "nData PE", $tags="backendOutline")
}
}
}
'rel(Mngt_PE, Management_Subscription, "New Call", $tags="backEnd")
}
@enduml
- Changed the boundary to system boundary, container boundary and component boundary. Still didn’t work.
- Played around with the naming convention – using the absolute path like connectivity_MG.HUBSubscription.HUB_VNET.Mngt_PE etc.
New contributor
user25194470 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.