Skip to content

Commit

Permalink
doc: describe how we expect the system to be deployed
Browse files Browse the repository at this point in the history
Add some more information around how we expect the system to be deployed
using the deployment guide.
  • Loading branch information
cardoe committed Nov 12, 2024
1 parent 633c7bf commit 2ca3a5c
Showing 1 changed file with 49 additions and 4 deletions.
53 changes: 49 additions & 4 deletions docs/deploy-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,55 @@ focus is on deploying bare metal in data centers with functional DCIM and IPAM.

## About the Guide

This guide is not meant to be a definitive guide to [GitOps][gitops] and
how it can be used with UnderStack or even a best practices example
but instead focused on an example _development_ oriented installation.
While the deployment of UnderStack leans heavily into [GitOps][gitops],
it is not meant to be a definitive guide to [GitOps][gitops]. It is also
not the only way GitOps can be used with UnderStack but instead focuses on
one example deployment installation.
It will make a few assumptions and some opinionated choices that may
not align with a production best practices installation.
not align with a production best practices installation. Improvements are
always welcome.

## System Division

A fully deployed UnderStack is divided into 3 distinct parts or environments
that are referred to in the documentation as:

- Management
- Global
- Region(s)

```mermaid
flowchart TD
A[Management] --> B[Global];
B[Global] --> C[Region A];
B[Global] --> D[Region B...];
B[Global] --> E[Region N];
```

A fully functioning system only needs one Management environment, one Global
environment and one or more Regions. In this configuration the Management
environment is responsible for utilizing the [GitOps][gitops] tool to deploy
the expected state to all other environments. The Global environment is
responsible for hosting any services that are expected to exist only once
for a whole system deployment such as the DCIM/IPAM tool. While the Region
environments will run the tools and services that need to live close to the
actual hardware.

In fact one Management environment can control multiple systems if you have
a staging environment and a production environment for example.

```mermaid
flowchart TD
A[Management] --> |staging| B[Global];
B[Global] --> C[Region A];
B[Global] --> D[Region B...];
B[Global] --> E[Region N];
A[Management] --> |prod| F[Global];
F[Global] --> G[Region A];
F[Global] --> H[Region B...];
F[Global] --> I[Region N];
```

[gitops]: <https://about.gitlab.com/topics/gitops/>

0 comments on commit 2ca3a5c

Please sign in to comment.