From d46cefe13276600b42c973eabca85ecd5ff58881 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 16 Sep 2020 16:15:39 +0200 Subject: [PATCH] Add: OpenServiceMesh component (#260) * Add: OpenServiceMesh component Signed-off-by: Nicolas Lamirault * Update: use full name OpenServiceMesh name Signed-off-by: Nicolas Lamirault * Update: add OSM alias for OpenServiceMesh Signed-off-by: Nicolas Lamirault * Fix: name of resource Signed-off-by: Nicolas Lamirault * Fix: name of OSM resource Signed-off-by: Nicolas Lamirault * Fix: remove doc Signed-off-by: Nicolas Lamirault --- config.py | 1 + diagrams/onprem/network.py | 5 +++++ docs/nodes/onprem.md | 1 + resources/onprem/network/open-service-mesh.png | Bin 0 -> 21752 bytes 4 files changed, 7 insertions(+) create mode 100644 resources/onprem/network/open-service-mesh.png diff --git a/config.py b/config.py index 23e036d5..4d31677b 100644 --- a/config.py +++ b/config.py @@ -124,6 +124,7 @@ ALIASES = { "network": { "Etcd": "ETCD", "Haproxy": "HAProxy", + "OpenServiceMesh": "OSM", "Pfsense": "PFSense", "Vyos": "VyOS" }, diff --git a/diagrams/onprem/network.py b/diagrams/onprem/network.py index 67f5e712..9ea63186 100644 --- a/diagrams/onprem/network.py +++ b/diagrams/onprem/network.py @@ -56,6 +56,10 @@ class Ocelot(_Network): _icon = "ocelot.png" +class OpenServiceMesh(_Network): + _icon = "open-service-mesh.png" + + class Pfsense(_Network): _icon = "pfsense.png" @@ -84,5 +88,6 @@ class Zookeeper(_Network): ETCD = Etcd HAProxy = Haproxy +OSM = OpenServiceMesh PFSense = Pfsense VyOS = Vyos diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 454b6bae..ff4bcc16 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -135,6 +135,7 @@ Node classes list of onprem provider. - **diagrams.onprem.network.Linkerd** - **diagrams.onprem.network.Nginx** - **diagrams.onprem.network.Ocelot** +- **diagrams.onprem.network.OpenServiceMesh**, **OSM** (alias) - **diagrams.onprem.network.Pfsense**, **PFSense** (alias) - **diagrams.onprem.network.Pomerium** - **diagrams.onprem.network.Tomcat** diff --git a/resources/onprem/network/open-service-mesh.png b/resources/onprem/network/open-service-mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..d56d508314f373fd7eaac06c6c2eb21fe6ac58c4 GIT binary patch literal 21752 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

sOdNoyW1QC;L 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 literal 0 HcmV?d00001