Start basic diagram for services

This commit is contained in:
Tobias Reisinger 2022-08-01 23:34:12 +02:00
parent 81c0797bd8
commit bf0f991b49
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
2 changed files with 73 additions and 0 deletions

2
.gitignore vendored
View file

@ -1 +1,3 @@
*.secret.env *.secret.env
serguzim.net.png

71
diagram.py Normal file
View file

@ -0,0 +1,71 @@
""" Diagram to visualize serguzim.net """
from diagrams import Cluster, Diagram
from diagrams.oci.compute import Container, OCIRegistry
from diagrams.oci.storage import ObjectStorage
from diagrams.onprem.ci import Droneci
from diagrams.onprem.database import Influxdb, Postgresql
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.network import Caddy
from diagrams.onprem.vcs import Gitea
def add_to_groups(service, *groups):
""" Add a service to groups like 'db_users' """
for group in groups:
group.append(service)
with Diagram("serguzim.net", show=False):
node002 = Cluster("node002.serguzim.net")
node004 = Cluster("node004.serguzim.net")
exoscale_objectstore = ObjectStorage("Exoscale Object Storage")
with node002:
services = []
db_users = []
objectstore_users = []
proxy = Caddy()
ci = Droneci("ci.serguzim.me")
add_to_groups(ci, services, db_users)
db_time = Influxdb("tick.serguzim.me")
add_to_groups(db_time, services, db_users)
db = Postgresql("db.serguzim.me")
graph = Grafana("graph.serguzim.me")
add_to_groups(graph, services, db_users)
mail = Container("mail.serguzim.me")
add_to_groups(mail, services)
matrix = Container("matrix.serguzim.me")
add_to_groups(matrix, services, db_users, objectstore_users)
prometheus = Prometheus("prometheus.serguzim.me")
add_to_groups(prometheus, services)
registry = OCIRegistry("registry.serguzim.me")
add_to_groups(registry , services, db_users, objectstore_users)
vcs = Gitea("git.serguzim.me")
add_to_groups(vcs, services, db_users)
db_users >> db
proxy >> services
objectstore_users >> exoscale_objectstore
with node004:
services = []
proxy = Caddy()
minecraft = Container("minecraft.serguzim.me")
add_to_groups(minecraft, services)
proxy >> services