Skip to content

Commit d41b315

Browse files
committed
Improve diagrams
1 parent 24c28ce commit d41b315

File tree

1 file changed

+41
-34
lines changed

1 file changed

+41
-34
lines changed

content/ngf/overview/gateway-architecture.md

+41-34
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,34 @@ This split architecture ensures operational boundaries between the control plane
8787
This figure depicts an example of NGINX Gateway Fabric exposing three web applications within a Kubernetes cluster to clients on the internet:
8888

8989
```mermaid
90-
graph TD
90+
graph LR
9191
%% Nodes and Relationships
9292
subgraph KubernetesCluster[Kubernetes Cluster]
93+
94+
subgraph applications2[Namespace: applications2]
95+
96+
subgraph DataplaneComponentsC[Dataplane Components]
97+
GatewayC[Gateway C<br>Listener: *.other-example.com]
98+
99+
subgraph NGINXPodC[NGINX Pod]
100+
subgraph NGINXContainerC[NGINX Container]
101+
NGINXProcessC(NGINX)
102+
NGINXAgentC(NGINX Agent)
103+
end
104+
end
105+
end
106+
107+
subgraph HTTPRouteCAndApplicationC[HTTPRoute C and Application C]
108+
HTTPRouteC[HTTPRoute C<br>Host: c.other-example.com]
109+
ApplicationC[Application C<br>Pods: 1]
110+
end
111+
112+
end
113+
114+
subgraph nginx-gateway[Namespace: nginx-gateway]
115+
NGFPod[NGF Pod]
116+
end
117+
93118
subgraph applications1[Namespace: applications]
94119
95120
subgraph DataplaneComponentsAB[Dataplane Components]
@@ -103,42 +128,15 @@ graph TD
103128
end
104129
end
105130
106-
subgraph HTTPRouteAAndApplicationA[HTTPRoute A and Application A]
107-
HTTPRouteA[HTTPRoute A<br>Host: a.example.com]
108-
subgraph ApplicationA[Application A]
109-
Pod1[Pod]
110-
Pod2[Pod]
111-
end
112-
end
113-
114131
subgraph HTTPRouteBAndApplicationB[HTTPRoute B and Application B]
115132
HTTPRouteB[HTTPRoute B<br>Host: b.example.com]
116133
ApplicationB[Application B<br>Pods: 1]
117134
end
118-
end
119-
120-
subgraph applications2[Namespace: applications2]
121-
122-
subgraph DataplaneComponentsC[Dataplane Components]
123-
GatewayC[Gateway C<br>Listener: *.other-example.com]
124-
125-
subgraph NGINXPodC[NGINX Pod]
126-
subgraph NGINXContainerC[NGINX Container]
127-
NGINXProcessC(NGINX)
128-
NGINXAgentC(NGINX Agent)
129-
end
130-
end
131-
end
132135
133-
subgraph HTTPRouteCAndApplicationC[HTTPRoute C and Application C]
134-
HTTPRouteC[HTTPRoute C<br>Host: c.other-example.com]
135-
ApplicationC[Application C<br>Pods: 1]
136+
subgraph HTTPRouteAAndApplicationA[HTTPRoute A and Application A]
137+
HTTPRouteA[HTTPRoute A<br>Host: a.example.com]
138+
ApplicationA[Application AB<br>Pods: 2]
136139
end
137-
138-
end
139-
140-
subgraph nginx-gateway[Namespace: nginx-gateway]
141-
NGFPod[NGF Pod]
142140
end
143141
144142
KubernetesAPI[Kubernetes API]
@@ -253,12 +251,13 @@ For example, the Cluster Operator is denoted by the color green, indicating they
253251
## NGINX Gateway Fabric: Component Communication Workflow
254252

255253
```mermaid
256-
graph TD
254+
graph LR
257255
%% Main Components
258-
NGFPod[NGF Pod]
259256
KubernetesAPI[Kubernetes API]
260257
PrometheusMonitor[Prometheus]
261258
F5Telemetry[F5 Telemetry Service]
259+
NGFPod[NGF Pod]
260+
NGINXPod[NGINX Pod]
262261
Client[Client]
263262
Backend[Backend]
264263
@@ -276,6 +275,13 @@ graph TD
276275
ContainerRuntimeNGF[stdout/stderr]
277276
end
278277
278+
%% External Components Grouping
279+
subgraph ExternalComponents[.]
280+
KubernetesAPI[Kubernetes API]
281+
PrometheusMonitor[Prometheus]
282+
F5Telemetry[F5 Telemetry Service]
283+
end
284+
279285
%% HTTPS: Communication with Kubernetes API
280286
NGFProcess -- "(1) Reads Updates" --> KubernetesAPI
281287
NGFProcess -- "(1) Writes Statuses" --> KubernetesAPI
@@ -294,7 +300,7 @@ graph TD
294300
295301
%% gRPC: Configuration Updates
296302
NGFProcess -- "(6) Sends Config to Agent" --> NGINXAgent
297-
NGINXAgent -- "(7) Validates Config & Writes TLS Certs" --> ConfigFiles
303+
NGINXAgent -- "(7) Validates & Writes Config & TLS Certs" --> ConfigFiles
298304
NGINXAgent -- "(8) Reloads NGINX" --> NGINXMaster
299305
NGINXAgent -- "(9) Sends DataPlaneResponse" --> NGFProcess
300306
@@ -314,6 +320,7 @@ graph TD
314320
classDef metrics fill:#FFC0CB,stroke:#333,stroke-width:2px;
315321
classDef io fill:#FFD700,stroke:#333,stroke-width:2px;
316322
classDef signal fill:#87CEEB,stroke:#333,stroke-width:2px;
323+
style ExternalComponents fill:transparent,stroke-width:0px
317324
318325
%% Class Assignments for Node Colors
319326
class NGFPod,KubernetesAPI important;

0 commit comments

Comments
 (0)