ソースを参照

Azure base clusters

pull/407/head
Dan Aharon-Shalom 3年前
コミット
d6f73ec1c3
3個のファイルの変更167行の追加0行の削除
  1. +143
    -0
      diagrams/azure/cluster.py
  2. バイナリ
      examples/azure.png
  3. +24
    -0
      examples/azure.py

+ 143
- 0
diagrams/azure/cluster.py ファイルの表示

@@ -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

バイナリ
examples/azure.png ファイルの表示

変更前 変更後
幅: 861  |  高さ: 1239  |  サイズ: 51 KiB

+ 24
- 0
examples/azure.py ファイルの表示

@@ -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

読み込み中…
キャンセル
保存