From 575acc2fc99a94b48cefa9074a7239ed71633d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Gon=C3=A7alves?= Date: Mon, 30 Jan 2023 16:52:58 +0000 Subject: [PATCH 1/3] doc: Add DO cluster diagram --- .do/README.md | 5 +++++ .do/doc/diagrams/Makefile | 18 +++++++++++++++++ .do/doc/diagrams/out/do.jpg | Bin 0 -> 71693 bytes .do/doc/diagrams/src/do.py | 38 ++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 .do/doc/diagrams/Makefile create mode 100644 .do/doc/diagrams/out/do.jpg create mode 100644 .do/doc/diagrams/src/do.py diff --git a/.do/README.md b/.do/README.md index 1c98875d6..5c7428492 100644 --- a/.do/README.md +++ b/.do/README.md @@ -1,3 +1,8 @@ # Testing Infrastructure We are using DigitalOcean to test our installation outside of AWS. + +## Architecture + + +Information on how to generate diagrams [here](https://codacy.slite.com/app/docs/AeaKyDY7-G1HG0). diff --git a/.do/doc/diagrams/Makefile b/.do/doc/diagrams/Makefile new file mode 100644 index 000000000..87947935b --- /dev/null +++ b/.do/doc/diagrams/Makefile @@ -0,0 +1,18 @@ +PYTHON=python3 + +help: + @echo "Usage:" + @echo " help show this message" + @echo " setup create virtual environment and install dependencies" + @echo " diagrams generates diagrams for all configurations stored in /src to /out" + +setup: + $(PYTHON) -m pip install diagrams --upgrade + @echo "Setup concluded" + +diagrams: + @for f in src/*.py; do $(PYTHON) $$f; done + @echo "Diagrams successfully generated" + +.PHONY: help setup diagrams + diff --git a/.do/doc/diagrams/out/do.jpg b/.do/doc/diagrams/out/do.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba3e89bb2349044fce0eb785e8bc823e763a6fee GIT binary patch literal 71693 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 Date: Mon, 30 Jan 2023 16:55:51 +0000 Subject: [PATCH 2/3] fix: Reduce diagram size --- .do/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.do/README.md b/.do/README.md index 5c7428492..856bd5565 100644 --- a/.do/README.md +++ b/.do/README.md @@ -3,6 +3,6 @@ We are using DigitalOcean to test our installation outside of AWS. ## Architecture - + Information on how to generate diagrams [here](https://codacy.slite.com/app/docs/AeaKyDY7-G1HG0). From e8e39fb45c6cdebe5939a9b10206e2f710b7e701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Gon=C3=A7alves?= Date: Mon, 30 Jan 2023 16:57:58 +0000 Subject: [PATCH 3/3] Revert "fix: Reduce diagram size" This reverts commit 2c7804e2ded4aed12b1f0c9a745e33f5694d077a. --- .do/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.do/README.md b/.do/README.md index 856bd5565..5c7428492 100644 --- a/.do/README.md +++ b/.do/README.md @@ -3,6 +3,6 @@ We are using DigitalOcean to test our installation outside of AWS. ## Architecture - + Information on how to generate diagrams [here](https://codacy.slite.com/app/docs/AeaKyDY7-G1HG0).