Skip to content

Commit 4fff96d

Browse files
authored
feature: Add import, export, bulk management of Staged Configs (#553)
* feature: staged configs import, export, bulk management * feature: import, export, bulk API changes
1 parent 3279b5a commit 4fff96d

File tree

4 files changed

+1867
-354
lines changed

4 files changed

+1867
-354
lines changed

content/nginx-one/changelog.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@ h2 {
3030

3131
Stay up-to-date with what's new and improved in the F5 NGINX One Console.
3232

33-
## Apr 30, 2025
33+
## May 19, 2025
34+
35+
### Import and export your Staged Configs
36+
37+
You can now import and export your Staged Configs from the UI and with our APIs. This can help you deploy Staged Configs on the systems of your choice.
38+
39+
## April 30, 2025
3440

3541
### Manage RBAC access with namespaces
3642

content/nginx-one/how-to/staged-configs/api-staged-config.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,28 @@
22
# We use sentence case and present imperative tone
33
title: Use the API to manage your Staged Configurations
44
# Weights are assigned in increments of 100: determines sorting order
5-
weight: 300
5+
weight: 500
66
# Creates a table of contents and sidebar, useful for large documents
77
toc: true
88
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9-
type: tutorial
9+
type: how-to
1010
# Intended for internal catalogue and search, case sensitive:
1111
product: NGINX One
1212
---
1313

1414
You can use F5 NGINX One Console API to manage your Staged Configurations. With our API, you can:
1515

1616
- [Create an NGINX Staged Configuration]({{< ref "/nginx-one/api/api-reference-guide/#operation/createStagedConfig" >}})
17-
- The details allow you to add existing configuration files.
17+
- Use details to add existing configuration files.
1818
- [Get a list of existing Staged Configurations]({{< ref "/nginx-one/api/api-reference-guide/#operation/listStagedConfigs" >}})
19-
- Be sure to record the `object_id` of your target Staged Configuration for your analysis report.
19+
- Record the `object_id` of your target Staged Configuration for your analysis report.
2020
- [Get an analysis report for an existing Staged Configuration]({{< ref "/nginx-one/api/api-reference-guide/#operation/getStagedConfigReport" >}})
21+
- Review the same recommendations found in the UI.
22+
- [Export a Staged Configuration]({{< ref "/nginx-one/api/api-reference-guide/#operation/exportStagedConfig" >}})
23+
- Exports an existing Staged Configuration from the console. It sends you an archive of that configuration in `tar.gz` format.
24+
- [Import a Staged Configuration]({{< ref "/nginx-one/api/api-reference-guide/#operation/importStagedConfig" >}})
25+
- Imports an existing Staged Configuration from your system and sends it to the console. This REST call assumes that your configuration is archived in `tar.gz` format.
26+
- [Bulk manage multiple Staged Configurations]({{< ref "/nginx-one/api/api-reference-guide/#operation/bulkStagedConfigs" >}})
27+
- Allows you to delete multiple Staged Configurations. Requires each `object_id`.
28+
29+
For several API endpoints, we ask for a `conf_path`. Make sure to set an absolute file path. If you make a REST call without an absolute file path, you'll see a 400 error message.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
# We use sentence case and present imperative tone
3+
title: Import and export a Staged Configuration
4+
# Weights are assigned in increments of 100: determines sorting order
5+
weight: 300
6+
# Creates a table of contents and sidebar, useful for large documents
7+
toc: true
8+
# Types have a 1:1 relationship with Hugo archetypes, so you shouldn't need to change this
9+
type: how-to
10+
# Intended for internal catalogue and search, case sensitive:
11+
# Agent, N4Azure, NIC, NIM, NGF, NAP-DOS, NAP-WAF, NGINX One, NGINX+, Solutions, Unit
12+
product: NGINX One
13+
---
14+
15+
## Overview
16+
17+
Many administrators do their work on local systems, virtual machines, Docker containers, and more. F5 NGINX One Console
18+
supports import and export of such configurations.
19+
This guide explains how to import or export a Staged Configuration to your NGINX One Console.
20+
21+
{{< include "nginx-one/staged-config-overview.md" >}}
22+
23+
## Before you start
24+
25+
Before you import or export a Staged Configuration to NGINX One Console, ensure:
26+
27+
- You have an NGINX One Console account with staged configuration permissions.
28+
29+
You can also import, export, and manage multiple Staged Configurations through [the API]({{< ref "/nginx-one/how-to/staged-configs/api-staged-config.md" >}}).
30+
31+
## Considerations
32+
33+
NGINX One Console supports imports and exports as a compressed archive known as a [tarball](https://en.wikipedia.org/wiki/Tar_(computing)), in `tar.gz` format.
34+
When you work with such archives, consider the following:
35+
36+
- Do _not_ unpack archives directly to your NGINX configuration directories. You do not want to accidentally overwrite existing configuration files.
37+
- The files are set to a default file permission mode of 0644.
38+
- Do not include files with secrets or personally identifying information.
39+
- We ignore hidden files.
40+
- If you import or export such files in archives, NGINX One Console does not include those files.
41+
- The size of the archive is limited to 5 MB. The size of all uncompressed files in the archive is limited to 10 MB.
42+
43+
{{< tip >}}
44+
45+
Before you unpack an archive, run the `tar -tvzf <archive-name>.tar.gz` command. It displays the files and directories in that archive, without overwriting anything.
46+
You'll then know where files are written when you extract an archive with a command like `tar -xvzf <archive-name>.tar.gz`.
47+
48+
{{< /tip >}}
49+
50+
## Import a Staged Configuration
51+
52+
To import a Staged Configuration from your system to the NGINX One Console, you need to:
53+
54+
- Package your configuration in `tar.gz` format. For example, the following command creates an archive file named for-import.tar.gz` from files in the `/etc/nginx` directory:
55+
```bash
56+
tar czvf /etc/nginx for-import.tar.gz
57+
```
58+
59+
You would then import that file to the NGINX One Console. To do so, follow these steps:
60+
61+
1. On the left menu, select **Staged Configurations**.
62+
1. Select **Add Staged Configuration**.
63+
1. Select **Import Configuration**.
64+
1. Add a name for the Staged Configuration to be imported.
65+
1. Select **Import from File**.
66+
1. Choose the file. The process depends on your operating system.
67+
1. If successful, you'll see a success message.
68+
- A typical error suggests that the file is too large.
69+
70+
## Export a Staged Configuration
71+
72+
You can export a Staged Configuration from the NGINX One Console, as a download, to your system. To do so, follow these steps:
73+
74+
1. On the left menu, select **Staged Configurations**.
75+
1. Select the Staged Configuration you want to export.
76+
1. Select the ellipsis (...) on the right side of the row with the Staged Configuration.
77+
1. Select **Export**
78+
1. In the file menu that appears, choose a filename for your archive and save the result
79+
1. Be careful. Do not unpack the archive in a way that overwrites your current NGINX configuration.
80+
81+
## Manage multiple Staged Configurations
82+
83+
You can also delete multiple Staged Configurations through the UI:
84+
85+
1. On the left menu, select **Staged Configurations**.
86+
1. Select the Staged Configuration you want to delete.
87+
1. You can then select the **Delete selected** button.
88+
89+
You can do more from the API. Specifically, with the `object_id` of each configuration, you can create, modify, or delete multiple staged configurations with the [Bulk Staged Configurations endpoint]({{< ref "/nginx-one/api/api-reference-guide/#operation/bulkStagedConfigs" >}}).

0 commit comments

Comments
 (0)