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 @@ ![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5) ![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange) ![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000) -![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) +![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32) ![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28) +![outscale provider](https://img.shields.io/badge/provider-OutScale-orange?color=5f87bf) ![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571) +![generic provider](https://img.shields.io/badge/provider-Generic-orange?color=5f87bf) +![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) ![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf) -![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32) Buy Me A Coffee @@ -70,12 +72,16 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md). [![GitPitch](https://gitpitch.com/gpimg/logo.png)](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 :) - - - Buy Me A Coffee - -
- ); - 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"