fix: minify mermaid graph

Bertrand Lanson 2024-08-29 20:35:18 +02:00
parent f2ef6e8861
commit 42eec5b013
Signed by: lanson
SSH Key Fingerprint: SHA256:/nqc6HGqld/PS208F6FUOvZlUzTS0rGpNNwR5O2bQBw

@ -7,6 +7,9 @@ Hashistack-Ansible offers flexibility in deploying various environments, whether
If you're setting up a test environment, you can deploy each service on a single host. Heres an example of a minimal inventory file:
```ini
[haproxy_servers]
test-server
[vault_servers]
test-server
@ -34,13 +37,11 @@ The architecture for this test setup looks like this:
```mermaid
graph LR;
client[Client] -->|http/s| server
subgraph server[Dev/Test Server]
direction LR
vault[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consul
nomad[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consul
consul[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>]
end
client[Client] -->|http| server{
Vault Server
Consul Server
Nomad Server
};
```
## 🚀 Production Deployment
@ -73,9 +74,9 @@ nomadnode2
nomadnode3
[nomad_clients]
nmdcl1
nmdcl2
nmdcl3
nomadclient1
nomadclient2
nomadclient3
[consul_agents]
...
@ -91,82 +92,85 @@ Heres what the architecture for a production setup might look like:
```mermaid
graph TD
subgraph cnslsrv[Consul Servers]
subgraph c[ ]
direction LR
consul1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul2 & consul3 & consul4 & consul5
consul2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul3 & consul4 & consul5
consul3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul4 & consul5
consul4[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul5
consul5[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>]
c1[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_500x500.png' /><span>] <--> c2 & c3 & c4 & c5
c2[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_500x500.png' /><span>] <--> c3 & c4 & c5
c3[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_500x500.png' /><span>] <--> c4 & c5
c4[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_500x500.png' /><span>] <--> c5
c5[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_500x500.png' /><span>]
end
subgraph vaultservers[Vault Servers]
subgraph v[ ]
direction LR
subgraph vaultnode1[ ]
subgraph vn1[ ]
direction TB
vault1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent1
consulvaultagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
v1[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/vault_500x500.png' /><span>] <--> cva1
cva1([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph vaultnode2[ ]
subgraph vn2[ ]
direction TB
vault2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent2
consulvaultagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
v2[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/vault_500x500.png' /><span>] <--> cva2
cva2([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph vaultnode3[ ]
subgraph vn3[ ]
direction TB
vault3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent3
consulvaultagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
v3[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/vault_500x500.png' /><span>] <--> cva3
cva3([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
vaultnode1 <--> vaultnode2
vaultnode2 <--> vaultnode3
vaultnode3 <--> vaultnode1
vn1 <--> vn2
vn2 <--> vn3
vn3 <--> vn1
end
vaultservers -->|Service registration| cnslsrv
v -->|Service registration| c
subgraph nmdsrvs[Nomad Servers]
subgraph ns[ ]
direction LR
subgraph nmdsrvnode1[ ]
subgraph ns1[ ]
direction TB
nmdsrv1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent1
consulnmdsrvagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
n1[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_500x500.png' /><span>] <--> nca1
nca1([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph nmdsrvnode2[ ]
subgraph nsn2[ ]
direction TB
nmdsrv2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent2
consulnmdsrvagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
n2[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_500x500.png' /><span>] <--> nca2
nca2([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph nmdsrvnode3[ ]
subgraph ns3[ ]
direction TB
nmdsrv3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent3
consulnmdsrvagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
n3[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_500x500.png' /><span>] <--> nca3
nca3([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
nmdsrv1 <--> nmdsrv2
nmdsrv2 <--> nmdsrv3
nmdsrv3 <--> nmdsrv1
n1 <--> n2
n2 <--> n3
n3 <--> n1
end
nmdsrvs -->|Service registration| cnslsrv
ns -->|Service registration| c
subgraph nmdcls[Nomad Clients]
subgraph nc[ ]
direction LR
subgraph nmdclnode1[ ]
subgraph ncn1[ ]
direction LR
nmdcl1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent1
consulnmdclagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
nc1[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_white_500x500.png' /><span>] <--> ncca1
ncca1([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph nmdclnode2[ ]
subgraph ncn2[ ]
direction LR
nmdcl2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent2
consulnmdclagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
nc2[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_white_500x500.png' /><span>] <--> ncca2
ncca2([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
subgraph nmdclnode3[ ]
subgraph ncn3[ ]
direction LR
nmdcl3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent3
consulnmdclagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
nc3[<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/nomad_white_500x500.png' /><span>] <--> ncca3
ncca3([<span style='min-width: 40px; display: block;'><img src='https://git.ednz.fr/ansible-collections/hashistack/raw/branch/main/assets/consul_white_500x500.png' /><span>])
end
end
nmdcls -->|Service registration| cnslsrv
nmdcls <--> nmdsrvs
nc -->|Service registration| c
nc <--> ns
```
> [!NOTE]
> You can skip the HAProxy part if you're using an external load-balancing solution like AWS ALB or any other LB technology to connect to your platform.