fix: minify mermaid graph
parent
f2ef6e8861
commit
42eec5b013
@ -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. Here’s an example of a minimal inventory file:
|
If you're setting up a test environment, you can deploy each service on a single host. Here’s an example of a minimal inventory file:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
|
[haproxy_servers]
|
||||||
|
test-server
|
||||||
|
|
||||||
[vault_servers]
|
[vault_servers]
|
||||||
test-server
|
test-server
|
||||||
|
|
||||||
@ -34,13 +37,11 @@ The architecture for this test setup looks like this:
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR;
|
graph LR;
|
||||||
client[Client] -->|http/s| server
|
client[Client] -->|http| server{
|
||||||
subgraph server[Dev/Test Server]
|
Vault Server
|
||||||
direction LR
|
Consul Server
|
||||||
vault[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consul
|
Nomad Server
|
||||||
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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚀 Production Deployment
|
## 🚀 Production Deployment
|
||||||
@ -73,9 +74,9 @@ nomadnode2
|
|||||||
nomadnode3
|
nomadnode3
|
||||||
|
|
||||||
[nomad_clients]
|
[nomad_clients]
|
||||||
nmdcl1
|
nomadclient1
|
||||||
nmdcl2
|
nomadclient2
|
||||||
nmdcl3
|
nomadclient3
|
||||||
|
|
||||||
[consul_agents]
|
[consul_agents]
|
||||||
...
|
...
|
||||||
@ -91,82 +92,85 @@ Here’s what the architecture for a production setup might look like:
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph cnslsrv[Consul Servers]
|
subgraph c[ ]
|
||||||
direction LR
|
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
|
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
|
||||||
consul2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul3 & consul4 & consul5
|
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
|
||||||
consul3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul4 & consul5
|
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
|
||||||
consul4[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>] <--> consul5
|
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
|
||||||
consul5[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_500x500.png' width='40' height='40' /><span>]
|
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
|
end
|
||||||
|
|
||||||
subgraph vaultservers[Vault Servers]
|
subgraph v[ ]
|
||||||
direction LR
|
direction LR
|
||||||
subgraph vaultnode1[ ]
|
subgraph vn1[ ]
|
||||||
direction TB
|
direction TB
|
||||||
vault1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent1
|
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
|
||||||
consulvaultagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph vaultnode2[ ]
|
subgraph vn2[ ]
|
||||||
direction TB
|
direction TB
|
||||||
vault2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent2
|
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
|
||||||
consulvaultagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph vaultnode3[ ]
|
subgraph vn3[ ]
|
||||||
direction TB
|
direction TB
|
||||||
vault3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/vault_500x500.png' width='40' height='40' /><span>] <--> consulvaultagent3
|
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
|
||||||
consulvaultagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
vaultnode1 <--> vaultnode2
|
vn1 <--> vn2
|
||||||
vaultnode2 <--> vaultnode3
|
vn2 <--> vn3
|
||||||
vaultnode3 <--> vaultnode1
|
vn3 <--> vn1
|
||||||
end
|
end
|
||||||
|
|
||||||
vaultservers -->|Service registration| cnslsrv
|
v -->|Service registration| c
|
||||||
|
|
||||||
subgraph nmdsrvs[Nomad Servers]
|
subgraph ns[ ]
|
||||||
direction LR
|
direction LR
|
||||||
subgraph nmdsrvnode1[ ]
|
subgraph ns1[ ]
|
||||||
direction TB
|
direction TB
|
||||||
nmdsrv1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent1
|
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
|
||||||
consulnmdsrvagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph nmdsrvnode2[ ]
|
subgraph nsn2[ ]
|
||||||
direction TB
|
direction TB
|
||||||
nmdsrv2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent2
|
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
|
||||||
consulnmdsrvagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph nmdsrvnode3[ ]
|
subgraph ns3[ ]
|
||||||
direction TB
|
direction TB
|
||||||
nmdsrv3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_500x500.png' width='40' height='40' /><span>] <--> consulnmdsrvagent3
|
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
|
||||||
consulnmdsrvagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
nmdsrv1 <--> nmdsrv2
|
n1 <--> n2
|
||||||
nmdsrv2 <--> nmdsrv3
|
n2 <--> n3
|
||||||
nmdsrv3 <--> nmdsrv1
|
n3 <--> n1
|
||||||
end
|
end
|
||||||
|
|
||||||
nmdsrvs -->|Service registration| cnslsrv
|
ns -->|Service registration| c
|
||||||
|
|
||||||
subgraph nmdcls[Nomad Clients]
|
subgraph nc[ ]
|
||||||
direction LR
|
direction LR
|
||||||
subgraph nmdclnode1[ ]
|
subgraph ncn1[ ]
|
||||||
direction LR
|
direction LR
|
||||||
nmdcl1[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent1
|
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
|
||||||
consulnmdclagent1([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph nmdclnode2[ ]
|
subgraph ncn2[ ]
|
||||||
direction LR
|
direction LR
|
||||||
nmdcl2[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent2
|
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
|
||||||
consulnmdclagent2([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
end
|
||||||
subgraph nmdclnode3[ ]
|
subgraph ncn3[ ]
|
||||||
direction LR
|
direction LR
|
||||||
nmdcl3[<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/nomad_white_500x500.png' width='40' height='40' /><span>] <--> consulnmdclagent3
|
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
|
||||||
consulnmdclagent3([<span style='min-width: 40px; display: block;'><img src='./assets/hashicorp/consul_white_500x500.png' width='40' height='40' /><span>])
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
nmdcls -->|Service registration| cnslsrv
|
nc -->|Service registration| c
|
||||||
nmdcls <--> nmdsrvs
|
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user