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:
|
||||
|
||||
```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 @@ Here’s 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.
|
||||
|
Loading…
Reference in New Issue
Block a user