From e16eea48a4e5b7cbcc8a06312ebc7803b710500a Mon Sep 17 00:00:00 2001 From: Emrem Date: Sat, 5 Sep 2020 18:43:31 +0300 Subject: [PATCH] ocelot gateway add (#263) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Emrem Pıtırlı --- diagrams/onprem/network.py | 4 ++++ docs/nodes/onprem.md | 1 + resources/onprem/network/ocelot.png | Bin 0 -> 26992 bytes 3 files changed, 5 insertions(+) create mode 100644 resources/onprem/network/ocelot.png diff --git a/diagrams/onprem/network.py b/diagrams/onprem/network.py index 82a61499..67f5e712 100644 --- a/diagrams/onprem/network.py +++ b/diagrams/onprem/network.py @@ -52,6 +52,10 @@ class Nginx(_Network): _icon = "nginx.png" +class Ocelot(_Network): + _icon = "ocelot.png" + + class Pfsense(_Network): _icon = "pfsense.png" diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 16549066..454b6bae 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -134,6 +134,7 @@ Node classes list of onprem provider. - **diagrams.onprem.network.Kong** - **diagrams.onprem.network.Linkerd** - **diagrams.onprem.network.Nginx** +- **diagrams.onprem.network.Ocelot** - **diagrams.onprem.network.Pfsense**, **PFSense** (alias) - **diagrams.onprem.network.Pomerium** - **diagrams.onprem.network.Tomcat** diff --git a/resources/onprem/network/ocelot.png b/resources/onprem/network/ocelot.png new file mode 100644 index 0000000000000000000000000000000000000000..1216057309d1c04a292d30b9be6467c454ca035e GIT binary patch literal 26992 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∾_ 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 huWMTINO$iaHd&URqGmsPJUAr@OI<}