Skip to content

Commit 3b33b86

Browse files
README updated
1 parent 88c3ac8 commit 3b33b86

File tree

1 file changed

+45
-29
lines changed

1 file changed

+45
-29
lines changed

README.md

Lines changed: 45 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,37 @@
22

33
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
44

5-
This project provides a set of declarative REST API for [NGINX Instance Manager](https://docs.nginx.com/nginx-management-suite/nim/) and [NGINX One Console](https://docs.nginx.com/nginx-one/)
5+
NGINX Declarative API enables users to manage **NGINX configurations** in a modern **declarative style**. Instead of modifying configurations manually or using low-level APIs, this project simplifies operational workflows by allowing users to express desired configurations as a single JSON object.
6+
The API abstracts the complexity of managing NGINX configurations, empowering developers, operators, and automation systems to integrate seamlessly with NGINX.
67

7-
It can be used to manage NGINX Plus configuration lifecycle and to create NGINX Plus configurations using JSON service definitions.
8+
This project supports [F5 NGINX Instance Manager](https://docs.nginx.com/nginx-instance-manager/) and [F5 NGINX One Console](https://docs.nginx.com/nginx-one/)
89

9-
GitOps integration is supported: source of truth is checked for updates (NGINX App Protect policies, TLS certificates, keys and chains/bundles, Swagger/OpenAPI definitions, snippets) and NGINX configurations are automatically kept in sync.
10+
## 📚 Overview
1011

11-
Use cases include:
12+
At its core, the NGINX Declarative API supports **declarative configuration management** by letting users define what the state of NGINX *should be*, rather than how to get there. It eliminates the need for procedural changes by processing user-defined JSON payloads into valid and optimized NGINX configurations.
1213

13-
- Integration with NGINX Instance Manager (instance group) and NGINX One Console (config sync group)
14-
- NGINX App Protect DevSecOps integration
14+
This tool is ideal for managing NGINX in **modern, dynamic infrastructures** such as CI/CD environments, containerized applications (like Kubernetes), or large-scale proxy server setups.
15+
16+
### ➡️ Why Use the NGINX Declarative API?
17+
18+
-**Declarative Simplicity**: Express configurations as a single, high-level JSON object.
19+
-**Automation-First Design**: Integrate configurations into CI/CD pipelines with minimal effort.
20+
-**Error Reduction**: Built-in validation for accurate and optimized configurations.
21+
-**Dynamic Updates**: Handle frequent configuration changes in highly dynamic environments.
22+
-**Seamless Scalability**: Simplifies managing NGINX setups in high-scale distributed architectures.
23+
24+
25+
GitOps integration is supported: source of truth is checked for updates (F5 WAF for NGINX policies, TLS certificates, keys and chains/bundles, Swagger/OpenAPI definitions, snippets) and NGINX configurations are automatically kept in sync.
26+
27+
### 📝 Use Cases
28+
29+
- Integration with F5 NGINX Instance Manager (instance group) and F5 NGINX One Console (config sync group)
30+
- F5 WAF for NGINX DevSecOps integration
1531
- API Gateway deployments with automated Swagger / OpenAPI schema import
1632
- API Developer portals zero-touch deployment (redocly and backstage supported)
1733
- API Visibility (moesif supported)
1834
- GitOps integration with source of truth support for
19-
- NGINX App Protect WAF policies
35+
- F5 WAF for NGINX policies
2036
- TLS certificates, keys and chains/bundles
2137
- mTLS certificates
2238
- `http` snippets, upstreams, servers, locations
@@ -26,16 +42,16 @@ Use cases include:
2642

2743
A **blog article** to automate NGINX API Gateway management from OpenAPI schemas is available [here](https://www.f5.com/company/blog/nginx/from-openapi-to-nginx-as-an-api-gateway-using-a-declarative-api)
2844

29-
## Supported releases
45+
## 🚀 Supported releases
3046

31-
- [NGINX Instance Manager 2.14+](https://docs.nginx.com/nginx-management-suite/nim/)
32-
- [NGINX One Console](https://docs.nginx.com/nginx-one/)
33-
- [NGINX Plus R33+](https://docs.nginx.com/nginx/)
34-
- NGINX App Protect WAF [4](https://docs.nginx.com/nginx-app-protect-waf/v4/) and [5](https://docs.nginx.com/nginx-app-protect-waf/v5/)
47+
- [F5 NGINX Instance Manager 2.14+](https://docs.nginx.com/nginx-instance-manager/)
48+
- [F5 NGINX One Console](https://docs.nginx.com/nginx-one/)
49+
- [F5 NGINX Plus R33+](https://docs.nginx.com/nginx/)
50+
- [F5 WAF for NGINX](https://docs.nginx.com/waf/)
3551

36-
**Note**: NGINX Plus R33 and above [require a valid license](https://docs.nginx.com/solutions/about-subscription-licenses/) and the `.output.license` section in the declarative JSON is required. See the [usage notes](/USAGE-v5.4.md) for further details. [Postman collection](/contrib/postman) examples are provided for NGINX Plus R33+.
52+
**Note**: F5 NGINX Plus R33 and above [require a valid license](https://docs.nginx.com/solutions/about-subscription-licenses/) and the `.output.license` section in the declarative JSON is required. See the [usage notes](/USAGE-v5.4.md) for further details. [Postman collection](/contrib/postman) examples are provided for NGINX Plus R33+.
3753

38-
## Architecture
54+
## 🛠️ Architecture
3955

4056
```mermaid
4157
---
@@ -80,7 +96,7 @@ stateDiagram-v2
8096
AGENT2 --> NGINX2
8197
```
8298

83-
## GitOps Autosync Mode
99+
## 🤖 GitOps Autosync Mode
84100

85101
```mermaid
86102
sequenceDiagram
@@ -130,7 +146,7 @@ Note over NGINX Declarative API, Redis: data synchronization
130146
end
131147
```
132148

133-
## Concurrent access and queuing mode
149+
## 🕒 Concurrent access and queuing mode
134150

135151
```mermaid
136152
sequenceDiagram
@@ -181,20 +197,20 @@ NGINX Declarative API ->> CI/CD Pipeline: Response
181197
end
182198
```
183199

184-
## Input formats
200+
## 🧩 Input formats
185201

186202
- [X] Declarative JSON
187203

188-
## Output formats
204+
## 🧾 Output formats
189205

190-
- [X] Output to NGINX Instance Manager 2.14+ imperative REST API (instance group)
191-
- [X] Output to NGINX One Console REST API (config sync group)
206+
- [X] Output to F5 NGINX Instance Manager 2.14+ imperative REST API (instance group)
207+
- [X] Output to F5 NGINX One Console REST API (config sync group)
192208

193-
## Supported features
209+
## 🌟 Supported features
194210

195211
See the [features list](/FEATURES.md)
196212

197-
## How to use
213+
## 🔧 How to use
198214

199215
Usage details and JSON schema are available here:
200216

@@ -203,34 +219,34 @@ Usage details and JSON schema are available here:
203219

204220
A sample Postman collection and usage instructions can be found [here](/contrib/postman)
205221

206-
## How to run
222+
## 🏃 How to run
207223

208224
NGINX Declarative API can be deployed on a Linux virtual machine using [docker-compose](/contrib/docker-compose) or on [Kubernetes](/contrib/kubernetes)
209225

210-
## Building Docker images
226+
## 🐳 Building Docker images
211227

212228
Docker images can be built and run using the Docker compose [script](/contrib/docker-compose) provided
213229

214-
## REST API documentation
230+
## 📖 REST API documentation
215231

216232
When NGINX Declarative API is running, REST API documentation can be accessed at:
217233

218234
- Documentation and testing: `/docs`
219235
- Redoc documentation: `/redoc`
220236
- OpenAPI specification: `/openapi.json`
221237

222-
## License
238+
## ⚖️ License
223239

224240
This repository is licensed under the Apache License, Version 2.0. You are free to use, modify, and distribute this codebase within the terms and conditions outlined in the license. For more details, please refer to the [LICENSE](/LICENSE.md) file.
225241

226-
## Support
242+
## 🆘 Support
227243

228244
For support, please open a GitHub issue. Note that the code in this repository is community supported.
229245

230-
## Contributing
246+
## 💡 Contributing
231247

232248
See [Contributing](/CONTRIBUTING.md)
233249

234-
## Code of Conduct
250+
## 🤝 Code of Conduct
235251

236252
See the [Code of Conduct](/code_of_conduct.md)

0 commit comments

Comments
 (0)