Skip to content

Commit a4e81c7

Browse files
mjangbjee19ADubhlaoichsjberman
authored
feat: Set up NGF integration to N1 Console (#902)
* feat: Set up NGF integration to N1 Console * delete unneeded file * Apply suggestions from code review Co-authored-by: bjee19 <[email protected]> * Apply suggestions from code review Co-authored-by: Alan Dooley <[email protected]> * Update helm install ngf with agent options * Set up new page for ngf w/manifests. Add includes * fix * Update commands for nginx-gateway namespace * Apply suggestions from code review * Update content/nginx-one/k8s/add-ngf-manifests.md * Add ref links * Add common k8s secret include * Update dp key update * Apply suggestions from code review Co-authored-by: Saylor Berman <[email protected]> * Apply suggestions from code review * Use another include * Update content/nginx-one/k8s/add-ngf-manifests.md Co-authored-by: Saylor Berman <[email protected]> * troubleshooting include * More feedback * Apply suggestions from code review * Include to verify connection * Move file --------- Co-authored-by: bjee19 <[email protected]> Co-authored-by: Alan Dooley <[email protected]> Co-authored-by: Saylor Berman <[email protected]>
1 parent 7608c99 commit a4e81c7

File tree

12 files changed

+422
-16
lines changed

12 files changed

+422
-16
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/ngf/install/manifests.md
5+
- content/nginx-one/ngf/add-ngf-manifests.md
6+
---
7+
8+
#### Stable release
9+
10+
```shell
11+
kubectl apply --server-side -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/crds.yaml
12+
```
13+
14+
#### Edge version
15+
16+
```shell
17+
kubectl apply --server-side -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/main/deploy/crds.yaml
18+
```
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/ngf/install/manifests.md
5+
- content/nginx-one/ngf/add-ngf-manifests.md
6+
---
7+
8+
{{< call-out "note" >}} By default, NGINX Gateway Fabric is installed in the **nginx-gateway** namespace. You can deploy in another namespace by modifying the manifest files. {{< /call-out >}}
9+
10+
{{<tabs name="install-manifests">}}
11+
12+
{{%tab name="Default"%}}
13+
14+
Deploys NGINX Gateway Fabric with NGINX OSS.
15+
16+
```shell
17+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/default/deploy.yaml
18+
```
19+
20+
{{% /tab %}}
21+
22+
{{%tab name="AWS NLB"%}}
23+
24+
Deploys NGINX Gateway Fabric with NGINX OSS.
25+
26+
```shell
27+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/default/deploy.yaml
28+
```
29+
30+
To set up an AWS Network Load Balancer service, add these annotations to your Gateway infrastructure field:
31+
32+
```yaml
33+
spec:
34+
infrastructure:
35+
annotations:
36+
service.beta.kubernetes.io/aws-load-balancer-type: "external"
37+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
38+
```
39+
40+
{{% /tab %}}
41+
42+
{{%tab name="Azure"%}}
43+
44+
Deploys NGINX Gateway Fabric with NGINX OSS and `nodeSelector` to deploy on Linux nodes.
45+
46+
```shell
47+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/azure/deploy.yaml
48+
```
49+
50+
{{% /tab %}}
51+
52+
{{%tab name="NGINX Plus"%}}
53+
54+
Deploys NGINX Gateway Fabric with NGINX Plus. The image is pulled from the
55+
NGINX Plus Docker registry, and the `imagePullSecretName` is the name of the Secret to use to pull the image.
56+
The NGINX Plus JWT Secret used to run NGINX Plus is also specified in a volume mount and the `--usage-report-secret` parameter. These Secrets are created as part of the [Before you begin](#before-you-begin) section.
57+
58+
```shell
59+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/nginx-plus/deploy.yaml
60+
```
61+
62+
{{% /tab %}}
63+
64+
{{%tab name="Experimental"%}}
65+
66+
Deploys NGINX Gateway Fabric with NGINX OSS and experimental features.
67+
68+
```shell
69+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/experimental/deploy.yaml
70+
```
71+
72+
{{< call-out "note" >}} Requires the Gateway APIs installed from the experimental channel. {{< /call-out >}}
73+
74+
{{% /tab %}}
75+
76+
{{%tab name="NGINX Plus Experimental"%}}
77+
78+
Deploys NGINX Gateway Fabric with NGINX Plus and experimental features. The image is pulled from the
79+
NGINX Plus Docker registry, and the `imagePullSecretName` is the name of the Secret to use to pull the image.
80+
The NGINX Plus JWT Secret used to run NGINX Plus is also specified in a volume mount and the `--usage-report-secret` parameter. These Secrets are created as part of the [Before you begin](#before-you-begin) section.
81+
82+
```shell
83+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/nginx-plus-experimental/deploy.yaml
84+
```
85+
86+
{{< call-out "note" >}} Requires the Gateway APIs installed from the experimental channel. {{< /call-out >}}
87+
88+
{{% /tab %}}
89+
90+
{{%tab name="NodePort"%}}
91+
92+
Deploys NGINX Gateway Fabric with NGINX OSS using a Service type of `NodePort`.
93+
94+
```shell
95+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/nodeport/deploy.yaml
96+
```
97+
98+
{{% /tab %}}
99+
100+
{{%tab name="OpenShift"%}}
101+
102+
Deploys NGINX Gateway Fabric with NGINX OSS on OpenShift.
103+
104+
```shell
105+
kubectl apply -f https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/v{{< version-ngf >}}/deploy/openshift/deploy.yaml
106+
```
107+
108+
{{% /tab %}}
109+
110+
{{</tabs>}}
111+
112+
### Provision an NGINX data plane
113+
114+
To deploy the NGINX data plane to connect to the NGINX One Console, follow this guide: [Deploy a Gateway for data plane instances]({{< ref "/ngf/install/deploy-data-plane.md" >}}).
115+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/ngf/install/manifests.md
5+
- content/nginx-one/ngf/add-ngf-manifests.md
6+
---
7+
8+
To complete this guide, you'll need to install:
9+
10+
- [kubectl](https://kubernetes.io/docs/tasks/tools/), a command-line interface for managing Kubernetes clusters.
11+
- [Add certificates for secure authentication]({{< ref "/ngf/install/secure-certificates.md" >}}) in a production environment.
12+
13+
{{< call-out "important" >}} If you’d like to use NGINX Plus, some additional setup is also required: {{< /call-out >}}

content/includes/nginx-one/how-to/generate-data-plane-key.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ docs:
33
files:
44
- content/nginx-one/secure-your-fleet/set-up-security-alerts.md
55
- content/nginx-one/getting-started.md
6+
- content/nginx-one/ngf/add-nic.md
7+
- content/nginx-one/ngf/add-ngf-helm.md
8+
- content/nginx-one/ngf/add-ngf-manifests.md
69
---
710

811
A data plane key is a security token that ensures only trusted NGINX instances can register and communicate with NGINX One.
@@ -17,3 +20,5 @@ Data plane keys are displayed only once and cannot be retrieved later. Be sure t
1720

1821
Data plane keys expire after one year. You can change this expiration date later by [editing the key]({{< ref "nginx-one/connect-instances/create-manage-data-plane-keys.md#change-expiration-date" >}}). If you [revoke a data plane key]({{< ref "nginx-one/connect-instances/create-manage-data-plane-keys.md#revoke-data-plane-key" >}}) you disconnect all instances registered with that key.
1922
{{</call-out>}}
23+
24+
For more options associated with data plane keys, see [Create and manage data plane keys]({{< ref "/nginx-one/connect-instances/create-manage-data-plane-keys.md" >}}).
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/nginx-one/k8s/add-ngf-manifests.md
5+
- content/nginx-one/k8s/add-ngf-helm.md
6+
---
7+
8+
To create a Kubernetes secret, you'll need:
9+
10+
- The Data Plane Key
11+
- The `nginx-gateway` namespace must exist. You can create it with the following command: `kubectl create namespace nginx-gateway`
12+
13+
- Then create the secret with the following command. The key must be named `dataplane.key`:
14+
15+
```shell
16+
kubectl create secret generic dataplane-key \
17+
--from-literal=dataplane.key=<Your Dataplane Key> \
18+
-n nginx-gateway
19+
```
20+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/nginx-one/k8s/add-ngf-manifests.md
5+
- content/nginx-one/k8s/add-ngf-helm.md
6+
---
7+
8+
If you encounter issues connecting your instances to NGINX One Console, try the following commands:
9+
10+
Check the NGINX Agent version:
11+
12+
```shell
13+
kubectl exec -it -n <namespace> <nginx_pod_name> -- nginx-agent -v
14+
```
15+
16+
Check the NGINX Agent configuration:
17+
18+
```shell
19+
kubectl exec -it -n <namespace> <nginx_pod_name> -- cat /etc/nginx-agent/nginx-agent.conf
20+
```
21+
22+
Check NGINX Agent logs:
23+
24+
```shell
25+
kubectl exec -it -n <namespace> <nginx_pod_name> -- nginx-agent
26+
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
nd-docs: "DOCS-000"
3+
files:
4+
- content/nginx-one/k8s/add-ngf-manifests.md
5+
- content/nginx-one/k8s/add-ngf-helm.md
6+
---
7+
8+
After deploying NGINX Gateway Fabric with NGINX Agent, you can verify the connection to NGINX One Console.
9+
Log in to your F5 Distributed Cloud Console account.
10+
11+
- Select **NGINX One > Visit Service**.
12+
- In the dashboard, select **Manage > Control Planes**. You should see your Control Planes listed by name, product, and version. Each control plane is associated with one or more instances.
13+
- Select the name of the Control Plane. In the **Instances** section, select the instance of your choice. You can review instance details, including the name of the **Control Plane**.
14+

content/nginx-one/connect-instances/create-manage-data-plane-keys.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ Data plane keys are displayed only once and cannot be retrieved later. Be sure t
2424

2525
Data plane keys expire after one year. You can change this expiration date later by editing the key.
2626

27-
Revoking a data plane key disconnects all instances that were registered with that key.
27+
You can disconnect all instances associated with a data plane key in the following ways:
28+
29+
- Revoke the data plane key
30+
- Let the data plane key expire
31+
32+
Either action disconnects all instances registered with that key.
2833
{{</call-out>}}
2934

3035
## Create a new data plane key

content/nginx-one/getting-started.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -110,20 +110,9 @@ The following instructions include minimal information, sufficient to "get start
110110

111111
### Generate a data plane key {#generate-data-plane-key}
112112

113-
A data plane key is a security token that ensures only trusted NGINX instances can register and communicate with NGINX One.
114-
115-
To generate a data plane key:
116-
117-
- **For a new key:** In the **Add Instance** pane, select **Generate Data Plane Key**.
118-
- **To reuse an existing key:** If you already have a data plane key and want to use it again, select **Use existing key**. Then, enter the key's value in the **Data Plane Key** box.
119-
120-
{{<call-out "caution" "Data plane key guidelines" "fas fa-key" >}}
121-
Data plane keys are displayed only once and cannot be retrieved later. Be sure to copy and store this key securely.
122-
123-
Data plane keys expire after one year. You can change this expiration date later by [editing the key]({{< ref "nginx-one/connect-instances/create-manage-data-plane-keys.md#change-expiration-date" >}}).
113+
{{< include "/nginx-one/how-to/generate-data-plane-key.md" >}}
124114

125115
[Revoking a data plane key]({{< ref "nginx-one/connect-instances/create-manage-data-plane-keys.md#revoke-data-plane-key" >}}) disconnects all instances that were registered with that key.
126-
{{</call-out>}}
127116

128117
### Add an instance
129118

@@ -132,7 +121,6 @@ Depending on whether this is your first time using NGINX One Console or you've u
132121
- **For first-time users:** On the welcome screen, select **Add Instance**.
133122
- **For returning users:** If you've added instances previously and want to add more, select **Instances** on the left menu, then select **Add Instance**.
134123

135-
136124
### Install NGINX Agent
137125

138126
After entering your data plane key, you'll see a `curl` command similar to the one below. Copy and run this command on each NGINX instance to install NGINX Agent. Once installed, NGINX Agent typically registers with NGINX One within a few seconds.

0 commit comments

Comments
 (0)