@@ -53,7 +53,7 @@ stateDiagram-v2
53
53
NGINX2: NGINX
54
54
INPUT: Input
55
55
SOT: Source of Truth
56
- NDAPI: NGINX Declarative API Core
56
+ NDAPI: NGINX Declarative API
57
57
DEVP: Developer Portal Service
58
58
OUTPUT: Output
59
59
REDIS: Redis
@@ -89,14 +89,14 @@ title GitOps autosync operations
89
89
90
90
participant CI/CD Pipeline
91
91
participant Source of Truth
92
- participant NGINX Declarative API Core
92
+ participant NGINX Declarative API
93
93
participant Redis
94
94
participant Developer Portal Service
95
95
participant NGINX Instance Manager / NGINX One Console
96
96
participant NGINX
97
97
98
98
box NGINX Declarative API
99
- participant NGINX Declarative API Core
99
+ participant NGINX Declarative API
100
100
participant Developer Portal Service
101
101
participant Redis
102
102
end
@@ -105,27 +105,78 @@ CI/CD Pipeline ->> Source of Truth: Commit object updates
105
105
106
106
critical Run every "synctime" seconds
107
107
108
- NGINX Declarative API Core ->>+ Source of Truth: Check for referenced objects updates
109
- Source of Truth ->>- NGINX Declarative API Core : Latest timestamp
108
+ NGINX Declarative API ->>+ Source of Truth: Check for referenced objects updates
109
+ Source of Truth ->>- NGINX Declarative API: Latest timestamp
110
110
111
- Note over NGINX Declarative API Core , Redis: data synchronization
111
+ Note over NGINX Declarative API, Redis: data synchronization
112
112
113
113
option If updates available
114
- NGINX Declarative API Core ->>+ Source of Truth: Pull updated objects
115
- Source of Truth ->>- NGINX Declarative API Core : Updated objects
114
+ NGINX Declarative API ->>+ Source of Truth: Pull updated objects
115
+ Source of Truth ->>- NGINX Declarative API: Updated objects
116
116
117
117
critical Build Staged Config
118
118
critical If Developer Portal enabled
119
- NGINX Declarative API Core ->>+ Developer Portal Service: DevPortal generation request
120
- Developer Portal Service ->>- NGINX Declarative API Core : DevPortal definition
119
+ NGINX Declarative API ->>+ Developer Portal Service: DevPortal generation request
120
+ Developer Portal Service ->>- NGINX Declarative API: DevPortal definition
121
121
end
122
122
end
123
123
124
- NGINX Declarative API Core ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
124
+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
125
125
NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
126
- NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API Core: Publish outcome
126
+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
127
127
128
- Note over NGINX Declarative API Core, Redis: data synchronization
128
+ Note over NGINX Declarative API, Redis: data synchronization
129
+
130
+ end
131
+ ```
132
+
133
+ ## Concurrent access and queuing mode
134
+
135
+ ``` mermaid
136
+ sequenceDiagram
137
+
138
+ title Concurrent access and queueing mode
139
+
140
+ participant CI/CD Pipeline
141
+ participant NGINX Declarative API
142
+ participant NGINX Instance Manager / NGINX One Console
143
+ participant NGINX
144
+
145
+ critical Initial configuration deployment
146
+
147
+ CI/CD Pipeline ->> NGINX Declarative API: POST request - base configuration deployment
148
+
149
+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
150
+ NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
151
+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
152
+
153
+ NGINX Declarative API ->> CI/CD Pipeline: Response
154
+
155
+ end
156
+
157
+ critical Asynchronous configuration submission
158
+
159
+ CI/CD Pipeline ->> NGINX Declarative API: PATCH request - asynchronous configuration update 1
160
+ NGINX Declarative API ->>+ NGINX Declarative API: request added to the queue
161
+ CI/CD Pipeline ->> NGINX Declarative API: PATCH request - asynchronous configuration update 2
162
+ NGINX Declarative API ->>+ NGINX Declarative API: request added to the queue
163
+
164
+
165
+ loop Queue Manager Thread
166
+ autonumber 1
167
+
168
+ NGINX Declarative API ->>+ NGINX Declarative API: get configuration update request from queue
169
+
170
+ NGINX Declarative API ->>+ NGINX Instance Manager / NGINX One Console: Publish staged config to instance group / config sync group
171
+ NGINX Instance Manager / NGINX One Console ->> NGINX: Publish config to NGINX instances
172
+ NGINX Instance Manager / NGINX One Console ->>- NGINX Declarative API: Return outcome
173
+ NGINX Declarative API ->> NGINX Declarative API: Update configuration update request status
174
+
175
+ autonumber off
176
+ end
177
+
178
+ CI/CD Pipeline ->> NGINX Declarative API: Check configuration request status
179
+ NGINX Declarative API ->> CI/CD Pipeline: Response
129
180
130
181
end
131
182
```
@@ -147,9 +198,9 @@ See the [features list](/FEATURES.md)
147
198
148
199
Usage details and JSON schema are available here:
149
200
150
- - [ API v5.2 ] ( /USAGE-v5.2 .md ) - latest - required for NGINX Plus R33+
151
- - [ API v5.1 ] ( /USAGE-v5.1 .md )
152
- - [ API v5.0 ] ( /USAGE-v5.0 .md ) - deprecated
201
+ - [ API v5.3 ] ( /USAGE-v5.3 .md ) - latest - required for NGINX Plus R33+
202
+ - [ API v5.2 ] ( /USAGE-v5.2 .md ) - stable - required for NGINX Plus R33+
203
+ - [ API v5.1 ] ( /USAGE-v5.1 .md ) - deprecated
153
204
154
205
A sample Postman collection and usage instructions can be found [ here] ( /contrib/postman )
155
206
0 commit comments