diff --git a/CHANGELOG.md b/CHANGELOG.md
index ac9c5d3a..692ff6b0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,23 @@
# Changelogs
+## 0.17.0
+
+### Added
+
+- Support GCP Endpoints: [#259](https://github.com/mingrammer/diagrams/pull/259)
+- Support DroneCI and Atlantis (Terraform): [#255](https://github.com/mingrammer/diagrams/pull/255)
+- Support Okta: [#254](https://github.com/mingrammer/diagrams/pull/254)
+- Support OutScale provider: [#251](https://github.com/mingrammer/diagrams/pull/251)
+- Support Prometheus Operator: [#253](https://github.com/mingrammer/diagrams/pull/253)
+- Support Snowflake: [#245](https://github.com/mingrammer/diagrams/pull/245)
+- Support for CJK fonts + Replace ms-fonts with opensans: [#242](https://github.com/mingrammer/diagrams/pull/242)
+- Support Pushover: [#241](https://github.com/mingrammer/diagrams/pull/241)
+
+### Fixed
+
+- Update bm, vm cases for OCI
+- Set a dummy filename to prevent raise error when both name and filename are not provided: [#240](https://github.com/mingrammer/diagrams/pull/240)
+
## 0.16.0
### Breaking Changes
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 22aa1475..6a8922fd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,6 +3,10 @@
You shouldn't edit the node class files (all files under `diagrams/` directory) by
yourself.
+## Set up your environment
+
+* See [DEVELOPMENT][DEVELOPMENT.md]
+
## Resources
### Update nodes
@@ -24,14 +28,17 @@ convert -resize 256 my_big_image.jpg my_image.jpg
ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png
```
-Then just run the `./autogen.sh` to generate the added or updated node classes.
+Then just run the `./autogen.sh` to generate the added or updated node classes. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for cleaning the image
> resource filenames.
>
> macOS users can download the inkscape via Homebrew.
+>
+> Or you should use the docker image.
+[DEVELOPMENT.md]: ./DEVELOPMENT.md
[round]: https://github.com/mingrammer/round
[inkscape]: https://inkscape.org/ko/release
@@ -44,11 +51,13 @@ from `ALIASES` map in [config.py](config.py).
So, if you want to add new aliases or update existing aliases, you can just add
or update the `ALIASES` map in [config.py](config.py).
-Then just run the `./autogen.sh` to generate the added or updated aliases.
+Then just run the `./autogen.sh` to generate the added or updated aliases. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for clearning the image
> resource filenames.
+>
+> Or you should use the docker image.
## Run Tests
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 8abd48a7..2ff14060 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -7,11 +7,11 @@ You should have docker installed in your system, if not click [here](https://doc
1. Go to diagrams root directory.
2. Build the docker image.
-
+
```shell
docker build --tag diagrams:1.0 -f ./docker/dev/Dockerfile .
```
-
+
3. Create the container, run in background and mount the project source code.
```shell
diff --git a/README.md b/README.md
index ed6209e7..1ae0f5b9 100644
--- a/README.md
+++ b/README.md
@@ -15,11 +15,13 @@



-
+

+

+
+

-
@@ -70,12 +72,16 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md).
[](https://gitpitch.com/)
-[GitPitch](https://gitpitch.com/) is a markdown presentation service for developers. Diagrams is now integrated as [Cloud Diagram Widget](https://gitpitch.com/docs/diagram-features/cloud-diagrams/) of GitPitch, so you can use the Diagrams when to create slide decks for Tech Conferences, Meetups, and Training with GitPitch.
+[GitPitch](https://gitpitch.com/) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://docs.gitpitch.com/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
-[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infratructure with Cloudicovery.
+[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infrastructure with Cloudicovery.
[Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.
+## Other languages
+
+- If you are familiar to Go, you can use [go-diagrams](https://github.com/blushft/go-diagrams) as well.
+
## License
[MIT](LICENSE)
diff --git a/config.py b/config.py
index 23e036d5..12fec10c 100644
--- a/config.py
+++ b/config.py
@@ -66,9 +66,10 @@ UPPER_WORDS = {
),
"oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"),
"elastic": ("apm", "siem", "ece", "eck"),
- "generic": ("vpn", "ios", "xen", "sql"),
+ "generic": ("vpn", "ios", "xen", "sql", "lxc"),
"outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"),
+ "pve": ("pve"),
}
TITLE_WORDS = {
@@ -99,6 +100,7 @@ ALIASES = {
"Zuulci": "ZuulCI",
},
"container": {
+ "Lxc": "LXC",
"Rkt": "RKT",
},
"database": {
@@ -124,14 +126,23 @@ ALIASES = {
"network": {
"Etcd": "ETCD",
"Haproxy": "HAProxy",
+ "OpenServiceMesh": "OSM",
+ "Opnsense": "OPNSense",
"Pfsense": "PFSense",
"Vyos": "VyOS"
},
+ "proxmox": {
+ "Pve": "ProxmoxVE",
+ },
"queue": {
"Activemq": "ActiveMQ",
"Rabbitmq": "RabbitMQ",
"Zeromq": "ZeroMQ",
},
+ "storage": {
+ "Ceph": "CEPH",
+ "CephOsd": "CEPH_OSD",
+ },
"workflow": {
"Kubeflow": "KubeFlow",
"Nifi": "NiFi",
diff --git a/diagrams/__init__.py b/diagrams/__init__.py
index 51396431..a9e0f0c1 100644
--- a/diagrams/__init__.py
+++ b/diagrams/__init__.py
@@ -60,6 +60,8 @@ class Diagram:
"height": "1.4",
"labelloc": "b",
# imagepos attribute is not backward compatible
+ # TODO: check graphviz version to see if "imagepos" is available >= 2.40
+ # https://github.com/xflr6/graphviz/blob/master/graphviz/backend.py#L248
# "imagepos": "tc",
"imagescale": "true",
"fontname": "Sans-Serif",
diff --git a/diagrams/generic/network.py b/diagrams/generic/network.py
index 7b9a9ee0..40367ef0 100644
--- a/diagrams/generic/network.py
+++ b/diagrams/generic/network.py
@@ -16,6 +16,10 @@ class Router(_Network):
_icon = "router.png"
+class Subnet(_Network):
+ _icon = "subnet.png"
+
+
class Switch(_Network):
_icon = "switch.png"
diff --git a/diagrams/k8s/chaos.py b/diagrams/k8s/chaos.py
new file mode 100644
index 00000000..9f596772
--- /dev/null
+++ b/diagrams/k8s/chaos.py
@@ -0,0 +1,19 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _K8S
+
+
+class _Chaos(_K8S):
+ _type = "chaos"
+ _icon_dir = "resources/k8s/chaos"
+
+
+class ChaosMesh(_Chaos):
+ _icon = "chaos-mesh.png"
+
+
+class LitmusChaos(_Chaos):
+ _icon = "litmus-chaos.png"
+
+
+# Aliases
diff --git a/diagrams/k8s/ecosystem.py b/diagrams/k8s/ecosystem.py
index 2e8a91f2..41c84734 100644
--- a/diagrams/k8s/ecosystem.py
+++ b/diagrams/k8s/ecosystem.py
@@ -8,6 +8,10 @@ class _Ecosystem(_K8S):
_icon_dir = "resources/k8s/ecosystem"
+class ExternalDns(_Ecosystem):
+ _icon = "external-dns.png"
+
+
class Helm(_Ecosystem):
_icon = "helm.png"
diff --git a/diagrams/onprem/aggregator.py b/diagrams/onprem/aggregator.py
new file mode 100644
index 00000000..01f3c77a
--- /dev/null
+++ b/diagrams/onprem/aggregator.py
@@ -0,0 +1,19 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Aggregator(_OnPrem):
+ _type = "aggregator"
+ _icon_dir = "resources/onprem/aggregator"
+
+
+class Fluentd(_Aggregator):
+ _icon = "fluentd.png"
+
+
+class Vector(_Aggregator):
+ _icon = "vector.png"
+
+
+# Aliases
diff --git a/diagrams/onprem/auth.py b/diagrams/onprem/auth.py
new file mode 100644
index 00000000..1ece9e76
--- /dev/null
+++ b/diagrams/onprem/auth.py
@@ -0,0 +1,19 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Auth(_OnPrem):
+ _type = "auth"
+ _icon_dir = "resources/onprem/auth"
+
+
+class BuzzfeedSso(_Auth):
+ _icon = "buzzfeed-sso.png"
+
+
+class Oauth2Proxy(_Auth):
+ _icon = "oauth2-proxy.png"
+
+
+# Aliases
diff --git a/diagrams/onprem/certificates.py b/diagrams/onprem/certificates.py
new file mode 100644
index 00000000..030e8a42
--- /dev/null
+++ b/diagrams/onprem/certificates.py
@@ -0,0 +1,19 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Certificates(_OnPrem):
+ _type = "certificates"
+ _icon_dir = "resources/onprem/certificates"
+
+
+class CertManager(_Certificates):
+ _icon = "cert-manager.png"
+
+
+class LetsEncrypt(_Certificates):
+ _icon = "lets-encrypt.png"
+
+
+# Aliases
diff --git a/diagrams/onprem/container.py b/diagrams/onprem/container.py
index 4f3161fb..de049421 100644
--- a/diagrams/onprem/container.py
+++ b/diagrams/onprem/container.py
@@ -12,10 +12,15 @@ class Docker(_Container):
_icon = "docker.png"
+class Lxc(_Container):
+ _icon = "lxc.png"
+
+
class Rkt(_Container):
_icon = "rkt.png"
# Aliases
+LXC = Lxc
RKT = Rkt
diff --git a/diagrams/onprem/identity.py b/diagrams/onprem/identity.py
new file mode 100644
index 00000000..f19ef413
--- /dev/null
+++ b/diagrams/onprem/identity.py
@@ -0,0 +1,15 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Identity(_OnPrem):
+ _type = "identity"
+ _icon_dir = "resources/onprem/identity"
+
+
+class Dex(_Identity):
+ _icon = "dex.png"
+
+
+# Aliases
diff --git a/diagrams/onprem/logging.py b/diagrams/onprem/logging.py
index 48babb65..f56b2339 100644
--- a/diagrams/onprem/logging.py
+++ b/diagrams/onprem/logging.py
@@ -12,10 +12,6 @@ class Fluentbit(_Logging):
_icon = "fluentbit.png"
-class Fluentd(_Logging):
- _icon = "fluentd.png"
-
-
class Graylog(_Logging):
_icon = "graylog.png"
diff --git a/diagrams/onprem/monitoring.py b/diagrams/onprem/monitoring.py
index bd690f5a..4d90d85d 100644
--- a/diagrams/onprem/monitoring.py
+++ b/diagrams/onprem/monitoring.py
@@ -36,4 +36,8 @@ class Thanos(_Monitoring):
_icon = "thanos.png"
+class Zabbix(_Monitoring):
+ _icon = "zabbix.png"
+
+
# Aliases
diff --git a/diagrams/onprem/network.py b/diagrams/onprem/network.py
index 82a61499..ae91ea4f 100644
--- a/diagrams/onprem/network.py
+++ b/diagrams/onprem/network.py
@@ -12,6 +12,10 @@ class Apache(_Network):
_icon = "apache.png"
+class Bind9(_Network):
+ _icon = "bind-9.png"
+
+
class Caddy(_Network):
_icon = "caddy.png"
@@ -28,6 +32,14 @@ class Etcd(_Network):
_icon = "etcd.png"
+class Glassfish(_Network):
+ _icon = "glassfish.png"
+
+
+class Gunicorn(_Network):
+ _icon = "gunicorn.png"
+
+
class Haproxy(_Network):
_icon = "haproxy.png"
@@ -40,6 +52,14 @@ class Istio(_Network):
_icon = "istio.png"
+class Jbossas(_Network):
+ _icon = "jbossas.png"
+
+
+class Jetty(_Network):
+ _icon = "jetty.png"
+
+
class Kong(_Network):
_icon = "kong.png"
@@ -52,6 +72,18 @@ class Nginx(_Network):
_icon = "nginx.png"
+class Ocelot(_Network):
+ _icon = "ocelot.png"
+
+
+class OpenServiceMesh(_Network):
+ _icon = "open-service-mesh.png"
+
+
+class Opnsense(_Network):
+ _icon = "opnsense.png"
+
+
class Pfsense(_Network):
_icon = "pfsense.png"
@@ -60,6 +92,10 @@ class Pomerium(_Network):
_icon = "pomerium.png"
+class Powerdns(_Network):
+ _icon = "powerdns.png"
+
+
class Tomcat(_Network):
_icon = "tomcat.png"
@@ -72,6 +108,10 @@ class Vyos(_Network):
_icon = "vyos.png"
+class Wildfly(_Network):
+ _icon = "wildfly.png"
+
+
class Zookeeper(_Network):
_icon = "zookeeper.png"
@@ -80,5 +120,7 @@ class Zookeeper(_Network):
ETCD = Etcd
HAProxy = Haproxy
+OSM = OpenServiceMesh
+OPNSense = Opnsense
PFSense = Pfsense
VyOS = Vyos
diff --git a/diagrams/onprem/proxmox.py b/diagrams/onprem/proxmox.py
new file mode 100644
index 00000000..64fc4f44
--- /dev/null
+++ b/diagrams/onprem/proxmox.py
@@ -0,0 +1,17 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Proxmox(_OnPrem):
+ _type = "proxmox"
+ _icon_dir = "resources/onprem/proxmox"
+
+
+class Pve(_Proxmox):
+ _icon = "pve.png"
+
+
+# Aliases
+
+ProxmoxVE = Pve
diff --git a/diagrams/onprem/storage.py b/diagrams/onprem/storage.py
new file mode 100644
index 00000000..37e0a370
--- /dev/null
+++ b/diagrams/onprem/storage.py
@@ -0,0 +1,26 @@
+# This module is automatically generated by autogen.sh. DO NOT EDIT.
+
+from . import _OnPrem
+
+
+class _Storage(_OnPrem):
+ _type = "storage"
+ _icon_dir = "resources/onprem/storage"
+
+
+class CephOsd(_Storage):
+ _icon = "ceph-osd.png"
+
+
+class Ceph(_Storage):
+ _icon = "ceph.png"
+
+
+class Glusterfs(_Storage):
+ _icon = "glusterfs.png"
+
+
+# Aliases
+
+CEPH = Ceph
+CEPH_OSD = CephOsd
diff --git a/diagrams/programming/language.py b/diagrams/programming/language.py
index 36c3d4c0..7dc4da95 100644
--- a/diagrams/programming/language.py
+++ b/diagrams/programming/language.py
@@ -28,6 +28,14 @@ class Dart(_Language):
_icon = "dart.png"
+class Elixir(_Language):
+ _icon = "elixir.png"
+
+
+class Erlang(_Language):
+ _icon = "erlang.png"
+
+
class Go(_Language):
_icon = "go.png"
diff --git a/diagrams/saas/cdn.py b/diagrams/saas/cdn.py
index dec52654..3733621d 100644
--- a/diagrams/saas/cdn.py
+++ b/diagrams/saas/cdn.py
@@ -8,6 +8,10 @@ class _Cdn(_Saas):
_icon_dir = "resources/saas/cdn"
+class Akamai(_Cdn):
+ _icon = "akamai.png"
+
+
class Cloudflare(_Cdn):
_icon = "cloudflare.png"
diff --git a/diagrams/saas/chat.py b/diagrams/saas/chat.py
index ebdf0532..6ee66155 100644
--- a/diagrams/saas/chat.py
+++ b/diagrams/saas/chat.py
@@ -8,10 +8,22 @@ class _Chat(_Saas):
_icon_dir = "resources/saas/chat"
+class Mattermost(_Chat):
+ _icon = "mattermost.png"
+
+
+class RocketChat(_Chat):
+ _icon = "rocket-chat.png"
+
+
class Slack(_Chat):
_icon = "slack.png"
+class Teams(_Chat):
+ _icon = "teams.png"
+
+
class Telegram(_Chat):
_icon = "telegram.png"
diff --git a/docs/nodes/generic.md b/docs/nodes/generic.md
index 785e1410..8e4249a1 100644
--- a/docs/nodes/generic.md
+++ b/docs/nodes/generic.md
@@ -26,6 +26,7 @@ Node classes list of generic provider.
- **diagrams.generic.network.Firewall**
- **diagrams.generic.network.Router**
+- **diagrams.generic.network.Subnet**
- **diagrams.generic.network.Switch**
- **diagrams.generic.network.VPN**
diff --git a/docs/nodes/k8s.md b/docs/nodes/k8s.md
index 05123c51..6fe66cbd 100644
--- a/docs/nodes/k8s.md
+++ b/docs/nodes/k8s.md
@@ -5,6 +5,11 @@ title: K8S
Node classes list of k8s provider.
+## k8s.chaos
+
+- **diagrams.k8s.chaos.ChaosMesh**
+- **diagrams.k8s.chaos.LitmusChaos**
+
## k8s.clusterconfig
- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias)
@@ -32,6 +37,7 @@ Node classes list of k8s provider.
## k8s.ecosystem
+- **diagrams.k8s.ecosystem.ExternalDns**
- **diagrams.k8s.ecosystem.Helm**
- **diagrams.k8s.ecosystem.Krew**
- **diagrams.k8s.ecosystem.Kustomize**
diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md
index 16549066..7f90f7b2 100644
--- a/docs/nodes/onprem.md
+++ b/docs/nodes/onprem.md
@@ -5,6 +5,11 @@ title: OnPrem
Node classes list of onprem provider.
+## onprem.aggregator
+
+- **diagrams.onprem.aggregator.Fluentd**
+- **diagrams.onprem.aggregator.Vector**
+
## onprem.analytics
- **diagrams.onprem.analytics.Beam**
@@ -20,12 +25,22 @@ Node classes list of onprem provider.
- **diagrams.onprem.analytics.Storm**
- **diagrams.onprem.analytics.Tableau**
+## onprem.auth
+
+- **diagrams.onprem.auth.BuzzfeedSso**
+- **diagrams.onprem.auth.Oauth2Proxy**
+
## onprem.cd
- **diagrams.onprem.cd.Spinnaker**
- **diagrams.onprem.cd.TektonCli**
- **diagrams.onprem.cd.Tekton**
+## onprem.certificates
+
+- **diagrams.onprem.certificates.CertManager**
+- **diagrams.onprem.certificates.LetsEncrypt**
+
## onprem.ci
- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias)
@@ -51,6 +66,7 @@ Node classes list of onprem provider.
## onprem.container
- **diagrams.onprem.container.Docker**
+- **diagrams.onprem.container.Lxc**, **LXC** (alias)
- **diagrams.onprem.container.Rkt**, **RKT** (alias)
## onprem.database
@@ -91,6 +107,10 @@ Node classes list of onprem provider.
- **diagrams.onprem.iac.Awx**
- **diagrams.onprem.iac.Terraform**
+## onprem.identity
+
+- **diagrams.onprem.identity.Dex**
+
## onprem.inmemory
- **diagrams.onprem.inmemory.Aerospike**
@@ -101,7 +121,6 @@ Node classes list of onprem provider.
## onprem.logging
- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias)
-- **diagrams.onprem.logging.Fluentd**
- **diagrams.onprem.logging.Graylog**
- **diagrams.onprem.logging.Loki**
- **diagrams.onprem.logging.Rsyslog**, **RSyslog** (alias)
@@ -120,27 +139,42 @@ Node classes list of onprem provider.
- **diagrams.onprem.monitoring.Sentry**
- **diagrams.onprem.monitoring.Splunk**
- **diagrams.onprem.monitoring.Thanos**
+- **diagrams.onprem.monitoring.Zabbix**
## onprem.network
- **diagrams.onprem.network.Apache**
+- **diagrams.onprem.network.Bind9**
- **diagrams.onprem.network.Caddy**
- **diagrams.onprem.network.Consul**
- **diagrams.onprem.network.Envoy**
- **diagrams.onprem.network.Etcd**, **ETCD** (alias)
+- **diagrams.onprem.network.Glassfish**
+- **diagrams.onprem.network.Gunicorn**
- **diagrams.onprem.network.Haproxy**, **HAProxy** (alias)
- **diagrams.onprem.network.Internet**
- **diagrams.onprem.network.Istio**
+- **diagrams.onprem.network.Jbossas**
+- **diagrams.onprem.network.Jetty**
- **diagrams.onprem.network.Kong**
- **diagrams.onprem.network.Linkerd**
- **diagrams.onprem.network.Nginx**
+- **diagrams.onprem.network.Ocelot**
+- **diagrams.onprem.network.OpenServiceMesh**, **OSM** (alias)
+- **diagrams.onprem.network.Opnsense**, **OPNSense** (alias)
- **diagrams.onprem.network.Pfsense**, **PFSense** (alias)
- **diagrams.onprem.network.Pomerium**
+- **diagrams.onprem.network.Powerdns**
- **diagrams.onprem.network.Tomcat**
- **diagrams.onprem.network.Traefik**
- **diagrams.onprem.network.Vyos**, **VyOS** (alias)
+- **diagrams.onprem.network.Wildfly**
- **diagrams.onprem.network.Zookeeper**
+## onprem.proxmox
+
+- **diagrams.onprem.proxmox.Pve**, **ProxmoxVE** (alias)
+
## onprem.queue
- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias)
@@ -158,6 +192,12 @@ Node classes list of onprem provider.
- **diagrams.onprem.security.Trivy**
- **diagrams.onprem.security.Vault**
+## onprem.storage
+
+- **diagrams.onprem.storage.CephOsd**, **CEPH_OSD** (alias)
+- **diagrams.onprem.storage.Ceph**, **CEPH** (alias)
+- **diagrams.onprem.storage.Glusterfs**
+
## onprem.vcs
- **diagrams.onprem.vcs.Git**
diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md
index 60c8a0e3..86c07b70 100644
--- a/docs/nodes/programming.md
+++ b/docs/nodes/programming.md
@@ -26,6 +26,8 @@ Node classes list of programming provider.
- **diagrams.programming.language.Cpp**
- **diagrams.programming.language.Csharp**
- **diagrams.programming.language.Dart**
+- **diagrams.programming.language.Elixir**
+- **diagrams.programming.language.Erlang**
- **diagrams.programming.language.Go**
- **diagrams.programming.language.Java**
- **diagrams.programming.language.Javascript**, **JavaScript** (alias)
diff --git a/docs/nodes/saas.md b/docs/nodes/saas.md
index e42f106a..0ffff416 100644
--- a/docs/nodes/saas.md
+++ b/docs/nodes/saas.md
@@ -17,11 +17,15 @@ Node classes list of saas provider.
## saas.cdn
+- **diagrams.saas.cdn.Akamai**
- **diagrams.saas.cdn.Cloudflare**
## saas.chat
+- **diagrams.saas.chat.Mattermost**
+- **diagrams.saas.chat.RocketChat**
- **diagrams.saas.chat.Slack**
+- **diagrams.saas.chat.Teams**
- **diagrams.saas.chat.Telegram**
## saas.identity
diff --git a/pyproject.toml b/pyproject.toml
index c714e8c5..8725f849 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "diagrams"
-version = "0.16.0"
+version = "0.17.0"
description = "Diagram as Code"
license = "MIT"
authors = ["mingrammer "]
diff --git a/resources/generic/network/subnet.png b/resources/generic/network/subnet.png
new file mode 100644
index 00000000..2808968e
Binary files /dev/null and b/resources/generic/network/subnet.png differ
diff --git a/resources/k8s/chaos/chaos-mesh.png b/resources/k8s/chaos/chaos-mesh.png
new file mode 100644
index 00000000..f1d373ae
Binary files /dev/null and b/resources/k8s/chaos/chaos-mesh.png differ
diff --git a/resources/k8s/chaos/litmus-chaos.png b/resources/k8s/chaos/litmus-chaos.png
new file mode 100644
index 00000000..243ee9f3
Binary files /dev/null and b/resources/k8s/chaos/litmus-chaos.png differ
diff --git a/resources/k8s/ecosystem/external-dns.png b/resources/k8s/ecosystem/external-dns.png
new file mode 100644
index 00000000..cc2dff27
Binary files /dev/null and b/resources/k8s/ecosystem/external-dns.png differ
diff --git a/resources/onprem/logging/fluentd.png b/resources/onprem/aggregator/fluentd.png
similarity index 100%
rename from resources/onprem/logging/fluentd.png
rename to resources/onprem/aggregator/fluentd.png
diff --git a/resources/onprem/aggregator/vector.png b/resources/onprem/aggregator/vector.png
new file mode 100644
index 00000000..a1ea5a44
Binary files /dev/null and b/resources/onprem/aggregator/vector.png differ
diff --git a/resources/onprem/auth/buzzfeed-sso.png b/resources/onprem/auth/buzzfeed-sso.png
new file mode 100644
index 00000000..e135d398
Binary files /dev/null and b/resources/onprem/auth/buzzfeed-sso.png differ
diff --git a/resources/onprem/auth/oauth2-proxy.png b/resources/onprem/auth/oauth2-proxy.png
new file mode 100644
index 00000000..87b32c4c
Binary files /dev/null and b/resources/onprem/auth/oauth2-proxy.png differ
diff --git a/resources/onprem/certificates/cert-manager.png b/resources/onprem/certificates/cert-manager.png
new file mode 100644
index 00000000..72bd2754
Binary files /dev/null and b/resources/onprem/certificates/cert-manager.png differ
diff --git a/resources/onprem/certificates/lets-encrypt.png b/resources/onprem/certificates/lets-encrypt.png
new file mode 100644
index 00000000..9963960f
Binary files /dev/null and b/resources/onprem/certificates/lets-encrypt.png differ
diff --git a/resources/onprem/container/lxc.png b/resources/onprem/container/lxc.png
new file mode 100644
index 00000000..66182e6c
Binary files /dev/null and b/resources/onprem/container/lxc.png differ
diff --git a/resources/onprem/identity/dex.png b/resources/onprem/identity/dex.png
new file mode 100644
index 00000000..6b467591
Binary files /dev/null and b/resources/onprem/identity/dex.png differ
diff --git a/resources/onprem/monitoring/zabbix.png b/resources/onprem/monitoring/zabbix.png
new file mode 100644
index 00000000..cab7014f
Binary files /dev/null and b/resources/onprem/monitoring/zabbix.png differ
diff --git a/resources/onprem/network/bind-9.png b/resources/onprem/network/bind-9.png
new file mode 100644
index 00000000..ea842c93
Binary files /dev/null and b/resources/onprem/network/bind-9.png differ
diff --git a/resources/onprem/network/glassfish.png b/resources/onprem/network/glassfish.png
new file mode 100644
index 00000000..a94d2dd0
Binary files /dev/null and b/resources/onprem/network/glassfish.png differ
diff --git a/resources/onprem/network/gunicorn.png b/resources/onprem/network/gunicorn.png
new file mode 100644
index 00000000..6d277e02
Binary files /dev/null and b/resources/onprem/network/gunicorn.png differ
diff --git a/resources/onprem/network/jbossas.png b/resources/onprem/network/jbossas.png
new file mode 100644
index 00000000..c1618358
Binary files /dev/null and b/resources/onprem/network/jbossas.png differ
diff --git a/resources/onprem/network/jetty.png b/resources/onprem/network/jetty.png
new file mode 100644
index 00000000..c00c2697
Binary files /dev/null and b/resources/onprem/network/jetty.png differ
diff --git a/resources/onprem/network/ocelot.png b/resources/onprem/network/ocelot.png
new file mode 100644
index 00000000..12160573
Binary files /dev/null and b/resources/onprem/network/ocelot.png differ
diff --git a/resources/onprem/network/open-service-mesh.png b/resources/onprem/network/open-service-mesh.png
new file mode 100644
index 00000000..d56d5083
Binary files /dev/null and b/resources/onprem/network/open-service-mesh.png differ
diff --git a/resources/onprem/network/opnsense.png b/resources/onprem/network/opnsense.png
new file mode 100644
index 00000000..952102b6
Binary files /dev/null and b/resources/onprem/network/opnsense.png differ
diff --git a/resources/onprem/network/powerdns.png b/resources/onprem/network/powerdns.png
new file mode 100644
index 00000000..491c66cb
Binary files /dev/null and b/resources/onprem/network/powerdns.png differ
diff --git a/resources/onprem/network/wildfly.png b/resources/onprem/network/wildfly.png
new file mode 100644
index 00000000..95edc66f
Binary files /dev/null and b/resources/onprem/network/wildfly.png differ
diff --git a/resources/onprem/proxmox/pve.png b/resources/onprem/proxmox/pve.png
new file mode 100644
index 00000000..631f2716
Binary files /dev/null and b/resources/onprem/proxmox/pve.png differ
diff --git a/resources/onprem/storage/ceph-osd.png b/resources/onprem/storage/ceph-osd.png
new file mode 100644
index 00000000..46007b34
Binary files /dev/null and b/resources/onprem/storage/ceph-osd.png differ
diff --git a/resources/onprem/storage/ceph.png b/resources/onprem/storage/ceph.png
new file mode 100644
index 00000000..1c294675
Binary files /dev/null and b/resources/onprem/storage/ceph.png differ
diff --git a/resources/onprem/storage/glusterfs.png b/resources/onprem/storage/glusterfs.png
new file mode 100644
index 00000000..2b46ca6e
Binary files /dev/null and b/resources/onprem/storage/glusterfs.png differ
diff --git a/resources/programming/language/elixir.png b/resources/programming/language/elixir.png
new file mode 100644
index 00000000..86e7bddd
Binary files /dev/null and b/resources/programming/language/elixir.png differ
diff --git a/resources/programming/language/erlang.png b/resources/programming/language/erlang.png
new file mode 100644
index 00000000..389d5186
Binary files /dev/null and b/resources/programming/language/erlang.png differ
diff --git a/resources/saas/cdn/akamai.png b/resources/saas/cdn/akamai.png
new file mode 100644
index 00000000..2c008ed2
Binary files /dev/null and b/resources/saas/cdn/akamai.png differ
diff --git a/resources/saas/chat/mattermost.png b/resources/saas/chat/mattermost.png
new file mode 100644
index 00000000..a308a648
Binary files /dev/null and b/resources/saas/chat/mattermost.png differ
diff --git a/resources/saas/chat/rocket-chat.png b/resources/saas/chat/rocket-chat.png
new file mode 100644
index 00000000..0d86cd34
Binary files /dev/null and b/resources/saas/chat/rocket-chat.png differ
diff --git a/resources/saas/chat/teams.png b/resources/saas/chat/teams.png
new file mode 100644
index 00000000..1819cbe1
Binary files /dev/null and b/resources/saas/chat/teams.png differ
diff --git a/scripts/resource.py b/scripts/resource.py
index 2543472c..e36432b0 100644
--- a/scripts/resource.py
+++ b/scripts/resource.py
@@ -13,7 +13,7 @@ import sys
import config as cfg
from . import resource_dir
-_usage = "Usage: resources.py "
+_usage = "Usage: resource.py "
def cleaner_onprem(f):
diff --git a/website/pages/en/index.js b/website/pages/en/index.js
index 117ba514..cc0bdcaa 100644
--- a/website/pages/en/index.js
+++ b/website/pages/en/index.js
@@ -111,20 +111,6 @@ class Index extends React.Component {
);
- const Sponsorship = () => (
-
-
Sponsorship
-
- Sponsoring always helps a lot to maintain Diagrams. Thank you :)
-
-
-
-
-
- );
-
const Example = () => (
{[
@@ -162,7 +148,6 @@ class Index extends React.Component {
-
);
diff --git a/website/sidebars.json b/website/sidebars.json
index 5400b35a..a9697114 100644
--- a/website/sidebars.json
+++ b/website/sidebars.json
@@ -18,11 +18,13 @@
"nodes/k8s",
"nodes/alibabacloud",
"nodes/oci",
- "nodes/programming",
+ "nodes/openstack",
"nodes/firebase",
- "nodes/saas",
+ "nodes/outscale",
"nodes/elastic",
- "nodes/outscale"
+ "nodes/generic",
+ "nodes/programming",
+ "nodes/saas"
]
}
}
\ No newline at end of file
diff --git a/website/yarn.lock b/website/yarn.lock
index cbfadbd6..acaa1fd9 100644
--- a/website/yarn.lock
+++ b/website/yarn.lock
@@ -1253,9 +1253,9 @@ bindings@^1.5.0:
file-uri-to-path "1.0.0"
bl@^1.0.0:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
- integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
+ integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
dependencies:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
@@ -1363,9 +1363,9 @@ buffer-from@^1.0.0:
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
buffer@^5.2.1:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce"
- integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
+ integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
@@ -1661,7 +1661,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.15.1:
+commander@^2.15.1, commander@^2.8.1:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -1671,13 +1671,6 @@ commander@^4.0.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
-commander@~2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
- integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=
- dependencies:
- graceful-readlink ">= 1.0.0"
-
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2062,9 +2055,9 @@ decompress-unzip@^4.0.1:
yauzl "^2.4.2"
decompress@^4.0.0, decompress@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
- integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118"
+ integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==
dependencies:
decompress-tar "^4.0.0"
decompress-tarbz2 "^4.0.0"
@@ -3071,14 +3064,9 @@ got@^8.3.1:
url-to-options "^1.0.1"
graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
- integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
gray-matter@^2.1.0:
version "2.1.1"
@@ -5597,11 +5585,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.1.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
safe-json-parse@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57"
@@ -5633,11 +5626,11 @@ scheduler@^0.19.1:
object-assign "^4.1.1"
seek-bzip@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
- integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4"
+ integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==
dependencies:
- commander "~2.8.1"
+ commander "^2.8.1"
select@^1.1.2:
version "1.1.2"
@@ -6327,9 +6320,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
unbzip2-stream@^1.0.9:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
- integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+ integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
dependencies:
buffer "^5.2.1"
through "^2.3.8"