Skip to content

Commit 166efe9

Browse files
committed
feat(docs): added schema
1 parent bca6bbe commit 166efe9

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,30 @@ By the end of this guide, you will have a fully working local Kubernetes cluster
2626

2727
All of this is defined as Terraform code using separate modules, so you can easily add your own applications later by following the same pattern as the echo server.
2828

29+
## Architecture
30+
31+
```mermaid
32+
graph TD
33+
mkcert["mkcert (local CA)"] -.->|CA cert/key| CIS
34+
35+
subgraph terraform ["Managed by Terraform"]
36+
K8s["Docker Desktop / Kubernetes"] --> MetalLB
37+
K8s --> CM["Cert-Manager"]
38+
MetalLB --> Ingress["Ingress-Nginx"]
39+
CM --> CIS["ClusterIssuer Selfsigned"]
40+
CM --> CIP["ClusterIssuer Production"]
41+
Ingress -->|routes traffic| Echo["Echo Server (demo)"]
42+
CIS -->|TLS certificate| Echo
43+
end
44+
```
45+
46+
**Provisioning order (top to bottom):**
47+
- **Docker Desktop / Kubernetes** — the platform that hosts everything.
48+
- **MetalLB** assigns a real IP (`127.0.0.1`) to the ingress controller. **Cert-Manager** automates certificate management.
49+
- **Ingress-Nginx** routes HTTP/HTTPS traffic by hostname. **ClusterIssuers** issue TLS certificates (self-signed via mkcert CA, or production via Let's Encrypt).
50+
- **Echo Server** — the demo app at the end of the chain, reachable at `https://echo.127.0.0.1.nip.io`.
51+
- **mkcert** (external, dashed line) — provides the CA certificate and key for local trust.
52+
2953
## Project Structure
3054

3155
### **Environments**

README.ru.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,30 @@
2626

2727
Всё это описано как Terraform-код в виде отдельных модулей, поэтому позже вы сможете легко добавить свои приложения, следуя тому же паттерну, что и echo-сервер.
2828

29+
## Архитектура
30+
31+
```mermaid
32+
graph TD
33+
mkcert["mkcert (локальный CA)"] -.->|CA сертификат/ключ| CIS
34+
35+
subgraph terraform ["Управляется Terraform"]
36+
K8s["Docker Desktop / Kubernetes"] --> MetalLB
37+
K8s --> CM["Cert-Manager"]
38+
MetalLB --> Ingress["Ingress-Nginx"]
39+
CM --> CIS["ClusterIssuer Selfsigned"]
40+
CM --> CIP["ClusterIssuer Production"]
41+
Ingress -->|маршрутизация трафика| Echo["Echo Server (демо)"]
42+
CIS -->|TLS-сертификат| Echo
43+
end
44+
```
45+
46+
**Порядок развёртывания (сверху вниз):**
47+
- **Docker Desktop / Kubernetes** — платформа, на которой всё размещается.
48+
- **MetalLB** назначает реальный IP (`127.0.0.1`) ingress-контроллеру. **Cert-Manager** автоматизирует управление сертификатами.
49+
- **Ingress-Nginx** маршрутизирует HTTP/HTTPS-трафик по hostname. **ClusterIssuers** выпускают TLS-сертификаты (самоподписанные через CA mkcert или production через Let's Encrypt).
50+
- **Echo Server** — демо-приложение в конце цепочки, доступное по адресу `https://echo.127.0.0.1.nip.io`.
51+
- **mkcert** (внешний, пунктирная линия) — предоставляет CA-сертификат и ключ для локального доверия.
52+
2953
## Структура проекта
3054

3155
### **Окружения**

0 commit comments

Comments
 (0)