54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
```plaintext
|
|
%% Internal Registry for CI/CD (ADR-0020)
|
|
%% Flowchart showing dual-path for external vs internal access
|
|
|
|
flowchart TB
|
|
subgraph external["🌐 External Access"]
|
|
internet["Internet"]
|
|
cloudflare["☁️ Cloudflare<br/>⚠️ 100MB upload limit"]
|
|
external_url["git.daviestechlabs.io"]
|
|
end
|
|
|
|
subgraph internal["🏠 Internal Access"]
|
|
internal_url["registry.lab.daviestechlabs.io<br/>✅ No upload limits"]
|
|
end
|
|
|
|
subgraph gitea["📦 Gitea Instance"]
|
|
direction TB
|
|
git_server["Git Server"]
|
|
docker_registry["Docker Registry"]
|
|
pypi_registry["PyPI Registry"]
|
|
end
|
|
|
|
subgraph runners["🏃 CI/CD Runners"]
|
|
gitea_runner["Gitea Actions Runner<br/>(in-cluster)"]
|
|
end
|
|
|
|
subgraph operations["📋 Operations"]
|
|
small_ops["Small Operations<br/>• git clone/push<br/>• pip install<br/>• docker pull"]
|
|
large_ops["Large Uploads<br/>• docker push (20GB+)<br/>• pypi upload"]
|
|
end
|
|
|
|
%% External path (limited)
|
|
internet --> cloudflare
|
|
cloudflare -->|"100MB limit"| external_url
|
|
external_url --> gitea
|
|
small_ops --> cloudflare
|
|
|
|
%% Internal path (unlimited)
|
|
gitea_runner -->|"Direct"| internal_url
|
|
internal_url --> gitea
|
|
large_ops --> internal_url
|
|
|
|
classDef external fill:#e74c3c,color:white
|
|
classDef internal fill:#27ae60,color:white
|
|
classDef gitea fill:#f39c12,color:black
|
|
classDef runner fill:#3498db,color:white
|
|
|
|
class internet,cloudflare,external_url external
|
|
class internal_url internal
|
|
class git_server,docker_registry,pypi_registry gitea
|
|
class gitea_runner runner
|
|
|
|
```
|