Skip to content

Commit deb0e2c

Browse files
README Updated (#6)
* OpenAPI integration work in progress * API Gateway updates * API Gateway support - beta release * README updated * README updated * README updated * README updated * README updated * README updated * Declaration schema updated, Developer portal alpha release * Postman collection updated * Devportal alpha release commit * Devportal alpha release commit * Added Developer Portal support * README updated * README updated * README updated * README updated * README updated
1 parent e6c7e81 commit deb0e2c

File tree

2 files changed

+80
-23
lines changed

2 files changed

+80
-23
lines changed

README.md

Lines changed: 78 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,38 +29,95 @@ 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+
BASE64: Base64-encoded
52+
53+
DevOps --> Pipeline
54+
Pipeline --> INPUT
55+
Client --> INPUT
56+
INPUT --> NDAPI
57+
NDAPI --> OUTPUT
58+
NDAPI --> SOT
59+
SOT --> NDAPI
60+
NDAPI --> REDIS
61+
REDIS --> NDAPI
62+
OUTPUT --> BASE64
63+
OUTPUT --> POST
64+
OUTPUT --> CONFIGMAP
65+
OUTPUT --> PLAINTEXT
66+
OUTPUT --> NIM
67+
NDAPI --> DEVP
68+
DEVP --> NDAPI
69+
NIM --> AGENT
70+
AGENT --> NGINX
4371
```
4472

45-
## GitOps
73+
## GitOps Autosync Mode
4674

4775
```mermaid
4876
sequenceDiagram
4977
50-
title GitOps with NGINX Instance Manager
78+
title GitOps autosync operations
5179
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
80+
participant CI/CD Pipeline
81+
participant Source of Truth
82+
participant NGINX Declarative API Core
83+
participant Redis
84+
participant Developer Portal Service
85+
participant NGINX Instance Manager
86+
participant NGINX
5587
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
88+
box NGINX Declarative API
89+
participant NGINX Declarative API Core
90+
participant Developer Portal Service
91+
participant Redis
92+
end
5993
60-
NGINX Declarative API->> NGINX Declarative API: Build staged config
61-
NGINX Declarative API->> NGINX Instance Manager: POST staged config to instance group
94+
CI/CD Pipeline ->> Source of Truth: Commit object updates
6295
96+
critical Run every "synctime" seconds
97+
98+
NGINX Declarative API Core ->>+ Source of Truth: Check for referenced objects updates
99+
Source of Truth ->>- NGINX Declarative API Core: Latest timestamp
100+
101+
Note over NGINX Declarative API Core, Redis: data synchronization
102+
103+
option If updates available
104+
NGINX Declarative API Core ->>+ Source of Truth: Pull updated objects
105+
Source of Truth ->>- NGINX Declarative API Core : Updated objects
106+
107+
critical Build Staged Config
108+
critical If Developer Portal enabled
109+
NGINX Declarative API Core ->>+ Developer Portal Service: DevPortal generation request
110+
Developer Portal Service ->>- NGINX Declarative API Core: DevPortal definition
111+
end
112+
end
113+
114+
NGINX Declarative API Core ->>+ NGINX Instance Manager: Publish staged config to instance group
63115
NGINX Instance Manager ->> NGINX: Publish config to NGINX instances
116+
NGINX Instance Manager ->>- NGINX Declarative API Core: Publish outcome
117+
118+
Note over NGINX Declarative API Core, Redis: data synchronization
119+
120+
end
64121
```
65122

66123
## Input formats

USAGE-v3.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Usage for API v3
22

33
Version 3 API requires:
4-
- NGINX Instance Manager 2.10.0+
4+
- NGINX Instance Manager 2.14+
55
- NGINX Plus R30+
66

77
If NGINX App Protect declarations are used:
@@ -430,4 +430,4 @@ A declaration example (to be POSTed to /v3/config) is:
430430
}
431431
}
432432
}
433-
```
433+
```

0 commit comments

Comments
 (0)