Skip to content

Commit 1d623dc

Browse files
README updated
1 parent ab77e17 commit 1d623dc

File tree

1 file changed

+63
-21
lines changed

1 file changed

+63
-21
lines changed

README.md

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,38 +29,80 @@ Use cases include:
2929
## Architecture
3030

3131
```mermaid
32-
graph TD
33-
DEVOPS([DevOps]) -- REST API --> CICD
34-
User([User]) -- REST API --> NCG
35-
CICD(CI/CD Pipeline) -- REST API --> NCG[[NGINX Declarative API]]
36-
NCG -- Staged Configs --> NIM(NGINX Instance Manager)
37-
NCG -- REST API --> Generic(Generic REST API endpoint)
38-
NCG -- AutoSync / GitOps --> CICD
39-
NIM -- REST API --> NGINX(NGINX Plus) & NGINXOSS(NGINX OSS)
40-
NCG -- ConfigMap --> K8S(Kubernetes)
41-
REDIS[[Redis backend]] --> NCG
42-
NCG --> REDIS
32+
---
33+
title: NGINX Declarative API internal architecture
34+
---
35+
stateDiagram-v2
36+
DevOps: User
37+
Client: REST Client
38+
Pipeline: CI/CD Pipeline
39+
NIM: NGINX Instance Manager
40+
AGENT: NGINX Agent
41+
NGINX: NGINX
42+
INPUT: Input
43+
SOT: Source of Truth
44+
NDAPI: NGINX Declarative API Core
45+
DEVP: Developer Portal Service
46+
OUTPUT: Output
47+
REDIS: Redis
48+
POST: Generic POST endpoint
49+
CONFIGMAP: Kubernetes ConfigMap
50+
PLAINTEXT: Plaintext
51+
52+
DevOps --> Pipeline
53+
Pipeline --> INPUT
54+
Client --> INPUT
55+
INPUT --> NDAPI
56+
NDAPI --> OUTPUT
57+
NDAPI --> SOT
58+
SOT --> NDAPI
59+
NDAPI --> REDIS
60+
REDIS --> NDAPI
61+
OUTPUT --> POST
62+
OUTPUT --> CONFIGMAP
63+
OUTPUT --> PLAINTEXT
64+
OUTPUT --> NIM
65+
NDAPI --> DEVP
66+
DEVP --> NDAPI
67+
NIM --> AGENT
68+
AGENT --> NGINX
4369
```
4470

45-
## GitOps
71+
## GitOps Autosync Mode
4672

4773
```mermaid
4874
sequenceDiagram
4975
50-
title GitOps with NGINX Instance Manager
76+
title GitOps autosync operations
5177
52-
User ->> Source of truth: Commit object updates
53-
NGINX Declarative API ->> Source of truth: Check for updates
54-
Source of truth ->> NGINX Declarative API: Latest timestamp
78+
participant CI/CD Pipeline
79+
participant Source of Truth
80+
participant NGINX Declarative API core
81+
participant Developer Portal Service
82+
participant NGINX Instance Manager
83+
participant NGINX
5584
56-
NGINX Declarative API->> NGINX Declarative API: If updates available
57-
NGINX Declarative API->> Source of truth: Pull updated objects
58-
Source of truth ->> NGINX Declarative API : Updated objects
85+
CI/CD Pipeline ->> Source of Truth: Commit object updates
5986
60-
NGINX Declarative API->> NGINX Declarative API: Build staged config
61-
NGINX Declarative API->> NGINX Instance Manager: POST staged config to instance group
87+
88+
critical Run every "synctime" seconds
89+
90+
NGINX Declarative API core -->> Source of Truth: Check for updates
91+
Source of Truth -->> NGINX Declarative API core: Latest timestamp
92+
93+
option If updates available
94+
NGINX Declarative API core -->> Source of Truth: Pull updated objects
95+
Source of Truth -->> NGINX Declarative API core : Updated objects
96+
97+
NGINX Declarative API core -->> Developer Portal Service: DevPortal generation request
98+
Developer Portal Service -->> NGINX Declarative API core: DevPortal definition
99+
100+
NGINX Declarative API core -->> NGINX Declarative API core: Build staged config
101+
NGINX Declarative API core -->> NGINX Instance Manager: POST staged config to instance group
62102
63103
NGINX Instance Manager ->> NGINX: Publish config to NGINX instances
104+
105+
end
64106
```
65107

66108
## Input formats

0 commit comments

Comments
 (0)