mirror of https://github.com/mingrammer/diagrams
parent
676db8edff
commit
d6f73ec1c3
@ -0,0 +1,143 @@
|
||||
from diagrams import Cluster
|
||||
from diagrams.azure.compute import VM, VMWindows, VMLinux #, VMScaleSet # Depends on PR-404
|
||||
from diagrams.azure.network import VirtualNetworks, Subnets, NetworkSecurityGroupsClassic
|
||||
|
||||
class Subscription(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "dotted",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#AEB6BE",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
|
||||
class Region(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "dotted",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#AEB6BE",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
|
||||
class AvailabilityZone(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "dashed",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#27a0ff",
|
||||
"fontname": "sans-serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
|
||||
class VirtualNetwork(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#00D110",
|
||||
"fontname": "sans-serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = VirtualNetworks
|
||||
|
||||
class SubnetWithNSG(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#329CFF",
|
||||
"fontname": "sans-serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = NetworkSecurityGroupsClassic
|
||||
|
||||
class Subnet(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#00D110",
|
||||
"fontname": "sans-serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = Subnets
|
||||
|
||||
class SecurityGroup(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "dashed",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#FF361E",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
|
||||
class VMContents(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#FFB432",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = VM
|
||||
|
||||
class VMLinuxContents(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#FFB432",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = VMLinux
|
||||
|
||||
class VMWindowsContents(Cluster):
|
||||
# fmt: off
|
||||
_default_graph_attrs = {
|
||||
"shape": "box",
|
||||
"style": "",
|
||||
"labeljust": "l",
|
||||
"pencolor": "#FFB432",
|
||||
"fontname": "Sans-Serif",
|
||||
"fontsize": "12",
|
||||
}
|
||||
# fmt: on
|
||||
_icon = VMWindows
|
||||
|
||||
# Depends on PR-404
|
||||
# class VMSS(Cluster):
|
||||
# # fmt: off
|
||||
# _default_graph_attrs = {
|
||||
# "shape": "box",
|
||||
# "style": "dashed",
|
||||
# "labeljust": "l",
|
||||
# "pencolor": "#FF7D1E",
|
||||
# "fontname": "Sans-Serif",
|
||||
# "fontsize": "12",
|
||||
# }
|
||||
# # fmt: on
|
||||
# _icon = VMScaleSet
|
After Width: | Height: | Size: 51 KiB |
@ -0,0 +1,24 @@
|
||||
from diagrams import Diagram, Edge
|
||||
from diagrams.azure.cluster import *
|
||||
from diagrams.azure.compute import VM
|
||||
from diagrams.onprem.container import Docker
|
||||
from diagrams.onprem.cluster import *
|
||||
from diagrams.azure.network import LoadBalancers
|
||||
|
||||
with Diagram(name="", filename="azure", direction="TB", show=True):
|
||||
with Cluster("Azure"):
|
||||
with Region("East US2"):
|
||||
with AvailabilityZone("Zone 2"):
|
||||
with VirtualNetwork(""):
|
||||
with SubnetWithNSG("Private"):
|
||||
# with VMScaleSet(""): # Depends on PR-404
|
||||
with VMContents("A"):
|
||||
d1 = Docker("Container")
|
||||
with ServerContents("A1"):
|
||||
d2 = Docker("Container")
|
||||
|
||||
with Subnet("Public"):
|
||||
lb = LoadBalancers()
|
||||
|
||||
lb >> Edge(forward=True, reverse=True) >> d1
|
||||
lb >> Edge(forward=True, reverse=True) >> d2
|
Loading…
Reference in new issue