diff --git a/README.md b/README.md index d70cee0b..1ae0f5b9 100644 --- a/README.md +++ b/README.md @@ -72,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 b694f4eb..7b50ad6e 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": { @@ -129,11 +131,20 @@ ALIASES = { "Pfsense": "PFSense", "Vyos": "VyOS" }, + "proxmox": { + "Pve": "ProxmoxVE", + }, "queue": { "Activemq": "ActiveMQ", "Rabbitmq": "RabbitMQ", "Zeromq": "ZeroMQ", }, + "storage": { + "ceph": { + "CEPH": "ceph", + "Ceph-OSD": "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/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/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 ec7bb811..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" @@ -72,6 +92,10 @@ class Pomerium(_Network): _icon = "pomerium.png" +class Powerdns(_Network): + _icon = "powerdns.png" + + class Tomcat(_Network): _icon = "tomcat.png" @@ -84,6 +108,10 @@ class Vyos(_Network): _icon = "vyos.png" +class Wildfly(_Network): + _icon = "wildfly.png" + + class Zookeeper(_Network): _icon = "zookeeper.png" @@ -93,5 +121,6 @@ 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..49d9556f --- /dev/null +++ b/diagrams/onprem/storage.py @@ -0,0 +1,19 @@ +# 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': 'CEPH-OSD'} = ceph \ No newline at end of file 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 87c102d1..ae667a28 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,6 +25,11 @@ 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** @@ -56,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 @@ -96,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** @@ -106,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) @@ -125,17 +139,23 @@ 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** @@ -144,11 +164,17 @@ Node classes list of onprem provider. - **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) @@ -166,6 +192,12 @@ Node classes list of onprem provider. - **diagrams.onprem.security.Trivy** - **diagrams.onprem.security.Vault** +## onprem.storage + +- **diagrams.onprem.storage.CephOsd** +- **diagrams.onprem.storage.Ceph** +- **diagrams.onprem.storage.Glusterfs** + ## onprem.tracing - **diagrams.onprem.tracing.Jaeger** 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/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/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/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):