Skip to content

Commit

Permalink
Refactor diagram source
Browse files Browse the repository at this point in the history
This incorporates markup that defines additional diagrams relating to
deployment and firewall requirements.
It also makes some changes to naming to reduce volume of text in some
diagrams.
  • Loading branch information
edibotopic committed Jul 4, 2024
1 parent 600a2c2 commit bda1fa8
Showing 1 changed file with 121 additions and 37 deletions.
158 changes: 121 additions & 37 deletions docs/workspace.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,27 @@ workspace {
# Enable nested groups: "" "Existing"
properties { "" "Existing"
"structurizr.groupSeparator" "/"
}
# People and software systems
up4w = softwareSystem "UP4W " {
up4wagent = container "UP4W Windows Agent" {
}

# Two software systems are defined

# up4w_a is the general software architecture
up4w_a = softwareSystem "Ubuntu Pro for WSL" {
up4wagent = container "Ubuntu Pro for WSL Agent" {
configModule = component "Configuration Module"
landscapeProService = component "Landscape Pro Service"
landscapeProService = component "Landscape Pro Service"
}
up4wgui = container "UP4W Windows GUI"
}
wslProService = softwareSystem "WSL Pro Service"

# up4w_f provides more detail relating to firewall requirements
up4w_f = softwareSystem "UP4W" {
up4wagent_f = container "Ubuntu Pro for WSL Agent" {
configModule_f = component "Configuration Module"
proAgent_f = component "Windows Pro Agent"
}
}

# group "Ubuntu Pro offering for Ubuntu WSL" {
canonical = person "Canonical Support Line" "24/7 enterprise support for Ubuntu and your full open source stack" "Existing"
Expand All @@ -25,6 +36,9 @@ workspace {
# }
landscapeClient = softwareSystem "Landscape Client" "" "Existing"
landscapeServer = softwareSystem "Landscape Server" "" "Existing"
# next two added from FireWall src
contractServer = softwareSystem "Canonical Contract Server" "" "Existing"
microsoftStore = softwareSystem "Microsoft Store" "" "Existing"
proClient = softwareSystem "Ubuntu Pro Client" "" "Existing"
user = person "User"
windowsRegistry = softwareSystem "Windows registry" "" "Existing"
Expand All @@ -38,12 +52,12 @@ workspace {
configModule -> wslProService "Sends configuration to"
landscapeServer -> landscapeClient "Reads from and sends instructions to"
landscapeServer -> landscapeProService "Reads from and sends instructions to"
up4w -> canonical "Enables 24/7 optional enterprise-grade support from"
up4w -> landscape "Registers your Windows host and Ubuntu WSL instances with"
up4w -> ups "Adds your Ubuntu WSL instances to your"
up4w -> upc "Attaches to Ubuntu Pro"
up4w_a -> canonical "Enables 24/7 optional enterprise-grade support from"
up4w_a -> landscape "Registers your Windows host and Ubuntu WSL instances with"
up4w_a -> ups "Adds your Ubuntu WSL instances to your"
up4w_a -> upc "Attaches to Ubuntu Pro"
up4wgui -> up4wagent "Writes configuration to"
user -> up4w "Uses"
user -> up4w_a "Uses"
wslProService -> landscapeClient "Configures"
wslProService -> proClient "Configures"
# landscapeClient -> landscapeServer "Distro information
Expand All @@ -55,36 +69,44 @@ workspace {
# landscapeServer -> landscapeProService "Lifetime management commands"
# upc -> cis "Automates compliance and auditing"
# upc -> esm "Enables stability, security, and compliance with"

# Additional relationships to support firewall views
configModule -> proAgent_f "Configures"
configModule_f -> proAgent_f "Configures"
wslProService -> proAgent_f "tcp/grpc(dynamic:49152-65535)\nIP: Hyper-V Virtual Ethernet Adapter Addr"
proAgent_f -> microsoftStore "tcp/https(443)\nIP: MS Network [1]"
proAgent_f -> landscapeServer "tcp/grpc(6554)\nIP: On-premises Landscape address"
landscapeClient -> landscapeServer "tcp/https(443)\nIP: On-premises Landscape address"
proAgent_f -> contractServer "tcp/https(443)\nIP: contracts.canonical.com"
proClient -> contractServer "tcp/https(443)\nIP: contracts.canonical.com"


deploymentEnvironment "UP4WTutorial" {
deploymentEnvironment "Tutorial" {
g1 = deploymentGroup "1"
g2 = deploymentGroup "2"
g3 = deploymentGroup "3"
g4 = deploymentGroup "4"



deploymentNode "Your computer = Windows host" "" "Windows" {
softwareSystemInstance windowsRegistry g1

deploymentNode "Ubuntu WSL instance (Ubuntu 22.04 LTS)" {
softwareSystemInstance landscapeServer g1,g2
}

group "UP4W appx" {
group "UP4W app" {
containerInstance up4wgui g1
containerInstance up4wagent g1,g2
}

deploymentNode "Ubuntu WSL instance (Ubuntu Preview; created locally)" {
deploymentNode "Ubuntu WSL instance (created locally on Windows host)" {
softwareSystemInstance wslProService g1
softwareSystemInstance proClient g1
softwareSystemInstance landscapeClient g1

}

deploymentNode "Ubuntu WSL instance (Ubuntu; created remotely via Landscape Server)" {
deploymentNode "Ubuntu WSL instance (created remotely via Landscape Server)" {
softwareSystemInstance wslProService g2
softwareSystemInstance proClient g2
softwareSystemInstance landscapeClient g2
Expand All @@ -96,16 +118,16 @@ workspace {



deploymentEnvironment "UbuntuProForWSL" {
deploymentEnvironment "Production" {
deploymentNode "Your computer = Windows host" "" "Windows" {
group "UP4W appx" {
group "UP4W app" {
containerInstance up4wgui
containerInstance up4wagent
}
softwareSystemInstance windowsRegistry
# softwareSystemInstance WSL
deploymentNode "WSL (VM)" "" "" {
deploymentNode "Ubuntu WSL instance (distro)" "" "Ubuntu (Preview)" {
deploymentNode "Ubuntu WSL instance" "" "Ubuntu" {
softwareSystemInstance wslProService
softwareSystemInstance proClient
softwareSystemInstance landscapeClient
Expand All @@ -117,43 +139,103 @@ workspace {
softwareSystemInstance landscapeServer
}
}



# Additional environments for firewall views
deploymentEnvironment "Firewall" {
deploymentNode "Windows host" "" "Windows" {
# group "Ubuntu Pro for WSL Application" {
containerInstance up4wagent_f
# }
# softwareSystemInstance WSL
deploymentNode "WSL (VM)" "" "" {
deploymentNode "Ubuntu WSL instance" "" "Ubuntu" {
softwareSystemInstance wslProService
softwareSystemInstance proClient
softwareSystemInstance landscapeClient
}

}
}
deploymentNode "Microsoft Network" "" "" {
softwareSystemInstance microsoftStore
}

deploymentNode "Canonical Network" "" "" {
softwareSystemInstance contractServer
}

deploymentNode "On premises Landscape Server" "" "" {
softwareSystemInstance landscapeServer
}
}

}


# general architecture

views {
systemLandscape "SystemLandscape" {
include user up4w landscape ups
include user up4w_a landscape ups
autoLayout
}
systemContext up4w "SystemContext" {
include user up4w landscape ups
autoLayout
}

container up4w "SystemContainers" {
container up4w_a "SystemContainers" {
include *
exclude up4w_f
autoLayout
}
component up4wagent "ContainerComponents" {
include *
exclude up4w_f
autoLayout
}

deployment up4w "UbuntuProForWSL" "UbuntuProForWSL" {
deployment up4w_a "Production" "Production" {
include *
exclude "landscapeClient -> landscapeServer"
autoLayout
properties {
"structurizr.groups" true
}
}

deployment up4w "UP4WTutorial" "UP4WTutorial" {
deployment up4w_a "Tutorial" "Tutorial" {
include *
# autoLayout
exclude "landscapeClient -> landscapeServer"
autoLayout
properties {
"structurizr.groups" true
}
}
}

# architecture for firewall reqs

container up4w_f "SystemContainersDeploy" {
include *
exclude up4w_a
autoLayout
}

component up4wagent_f "ContainerComponentsDeploy" {
include *
exclude up4w_a
autoLayout
}

deployment up4w_f "Firewall" "Firewall" {
include *
exclude "wslProService -> proClient"
exclude "wslProService -> landscapeClient"
exclude "landscapeServer -> landscapeClient"
autoLayout
properties {
"structurizr.groups" true
}
}


theme default

Expand All @@ -167,12 +249,12 @@ workspace {
# background #1168bd
# color #ffffff
# }
element "Person" {
metadata false
shape person
# background red
color #ffffff
}
# element "Person" {
# metadata false
# shape person
# background #08427b
# color #ffffff
# }
element "Existing" {
background #999999
color #ffffff
Expand All @@ -183,7 +265,9 @@ workspace {
color #ffffff
shape Box
}
relationship "Relationship" {
fontSize 24
}
}
}

}

0 comments on commit bda1fa8

Please sign in to comment.