diff --git a/content/nginx-one/k8s/add-nic.md b/content/nginx-one/k8s/add-nic.md index 23619c6d2..2eaeb6b68 100644 --- a/content/nginx-one/k8s/add-nic.md +++ b/content/nginx-one/k8s/add-nic.md @@ -37,13 +37,27 @@ You can also create a data plane key through the NGINX One Console. Once loggged {{}} {{%tab name="Helm"%}} -Edit your `values.yaml` file to enable NGINX Agent and configure it to connect to NGINX One Console: +Upgrade or install NGINX Ingress Controller with the following command to configure NGINX Agent and connect to NGINX One Console: -```yaml -nginxAgent: - enable: true - dataplaneKeySecretName: "" -``` +- For NGINX: + + ```shell + helm upgrade --install my-release oci://ghcr.io/nginx/charts/nginx-ingress --version {{< nic-helm-version >}} \ + --set nginxAgent.enable=true \ + --set nginxAgent.dataplaneKeySecretName= \ + --set nginxAgent.endpointHost=agent.connect.nginx.com + ``` + +- For NGINX Plus: (This assumes you have pushed NGINX Ingress Controller image `nginx-plus-ingress` to your private registry `myregistry.example.com`) + + ```shell + helm upgrade --install my-release oci://ghcr.io/nginx/charts/nginx-ingress --version {{< nic-helm-version >}} \ + --set controller.image.repository=myregistry.example.com/nginx-plus-ingress \ + --set controller.nginxplus=true \ + --set nginxAgent.enable=true \ + --set nginxAgent.dataplaneKeySecretName= \ + --set nginxAgent.endpointHost=agent.connect.nginx.com + ``` The `dataplaneKeySecretName` is used to authenticate the agent with NGINX One Console. See the [NGINX One Console Docs]({{< ref "/nginx-one/connect-instances/create-manage-data-plane-keys.md" >}}) for instructions on how to generate your dataplane key from the NGINX One Console. @@ -89,7 +103,7 @@ data: ## command server settings command: server: - host: product.connect.nginx.com + host: agent.connect.nginx.com port: 443 auth: tokenpath: "/etc/nginx-agent/secrets/dataplane.key" diff --git a/content/nic/installation/installing-nic/installation-with-helm.md b/content/nic/installation/installing-nic/installation-with-helm.md index 4ad8e1377..1db9a1579 100644 --- a/content/nic/installation/installing-nic/installation-with-helm.md +++ b/content/nic/installation/installing-nic/installation-with-helm.md @@ -472,19 +472,23 @@ The following tables lists the configurable parameters of the NGINX Ingress Cont | **serviceNameOverride** | Used to prevent cloud load balancers from being replaced due to service name change during helm upgrades. | "" | | **nginxServiceMesh.enable** | Enable integration with NGINX Service Mesh. See the NGINX Service Mesh docs for more details. Requires `controller.nginxplus`. | false | | **nginxServiceMesh.enableEgress** | Enable NGINX Service Mesh workloads to route egress traffic through the Ingress Controller. See the NGINX Service Mesh docs for more details. Requires `nginxServiceMesh.enable`. | false | -|**nginxAgent.enable** | Enable NGINX Agent to integrate the Security Monitoring and App Protect WAF modules. Requires `controller.appprotect.enable`. | false | -|**nginxAgent.instanceGroup** | Set a custom Instance Group name for the deployment, shown when connected to NGINX Instance Manager. `nginx-ingress.controller.fullname` will be used if not set. | "" | -|**nginxAgent.logLevel** | Log level for NGINX Agent. | "error | -|**nginxAgent.instanceManager.host** | FQDN or IP for connecting to NGINX Ingress Controller. Required when `nginxAgent.enable` is set to `true` | "" | -|**nginxAgent.instanceManager.grpcPort** | Port for connecting to NGINX Ingress Controller. | 443 | -|**nginxAgent.instanceManager.sni** | Server Name Indication for Instance Manager. See the NGINX Agent [docs]({{< ref "/agent/configuration/encrypt-communication.md" >}}) for more details. | "" | -|**nginxAgent.instanceManager.tls.enable** | Enable TLS for Instance Manager connection. | true | -|**nginxAgent.instanceManager.tls.skipVerify** | Skip certification verification for Instance Manager connection. | false | -|**nginxAgent.instanceManager.tls.caSecret** | Name of `nginx.org/ca` secret used for verification of Instance Manager TLS. | "" | -|**nginxAgent.instanceManager.tls.secret** | Name of `kubernetes.io/tls` secret with a TLS certificate and key for using mTLS between NGINX Agent and Instance Manager. See the NGINX Instance Manager [docs]({{< ref "/nim/system-configuration/secure-traffic.md#mutual-client-certificate-authentication-setup-mtls" >}}) and the NGINX Agent [docs]({{< ref "/agent/configuration/encrypt-communication.md" >}}) for more details. | "" | -|**nginxAgent.syslog.host** | Address for NGINX Agent to run syslog listener. | 127.0.0.1 | -|**nginxAgent.syslog.port** | Port for NGINX Agent to run syslog listener. | 1514 | -|**nginxAgent.napMonitoring.collectorBufferSize** | Buffer size for collector. Will contain log lines and parsed log lines. | 50000 | -|**nginxAgent.napMonitoring.processorBufferSize** | Buffer size for processor. Will contain log lines and parsed log lines. | 50000 | -|**nginxAgent.customConfigMap** | The name of a custom ConfigMap to use instead of the one provided by default. | "" | +|**nginxAgent.enable** | Enable NGINX Agent 3.x to allow [connecting to NGINX One Console]({{< ref "/nginx-one/k8s/add-nic.md" >}}) or to integrate NGINX Agent 2.x for [Security Monitoring]({{< ref "/nic/tutorials/security-monitoring.md" >}}) . | false | +|**nginxAgent.logLevel** | Log level for NGINX Agent. | "error" | +|**nginxAgent.dataplaneKeySecretName** | Name of the Kubernetes Secret containing the Data Plane key used to authenticate to NGINX One Console. Learn more [here]({{< ref "/nginx-one/k8s/add-nic.md" >}}). Required when `nginxAgent.enable` is set to `true`. Requires NGINX Agent 3.x. | "" | +|**nginxAgent.endpointHost** | Domain or IP address for the NGINX One Console. Requires NGINX Agent 3.x. | "agent.connect.nginx.com" | +|**nginxAgent.endpointPort** | Port for the NGINX One Console endpoint. Requires NGINX Agent 3.x. | 443 | +|**nginxAgent.tlsSkipVerify** | Skip TLS verification for the NGINX One Console endpoint. Requires NGINX Agent 3.x. | false | +|**nginxAgent.instanceGroup** | Set a custom Instance Group name for the deployment, shown when connected to NGINX Instance Manager. `nginx-ingress.controller.fullname` will be used if not set. Requires NGINX Agent 2.x. | "" | +|**nginxAgent.instanceManager.host** | FQDN or IP for connecting to NGINX Ingress Controller. Required when `nginxAgent.enable` is set to `true`. Requires NGINX Agent 2.x. | "" | +|**nginxAgent.instanceManager.grpcPort** | Port for connecting to NGINX Ingress Controller. Requires NGINX Agent 2.x. | 443 | +|**nginxAgent.instanceManager.sni** | Server Name Indication for Instance Manager. See the NGINX Agent [docs]({{< ref "/agent/configuration/encrypt-communication.md" >}}) for more details. Requires NGINX Agent 2.x. | "" | +|**nginxAgent.instanceManager.tls.enable** | Enable TLS for Instance Manager connection. Requires NGINX Agent 2.x. | true | +|**nginxAgent.instanceManager.tls.skipVerify** | Skip certification verification for Instance Manager connection. Requires NGINX Agent 2.x. | false | +|**nginxAgent.instanceManager.tls.caSecret** | Name of `nginx.org/ca` secret used for verification of Instance Manager TLS. Requires NGINX Agent 2.x. | "" | +|**nginxAgent.instanceManager.tls.secret** | Name of `kubernetes.io/tls` secret with a TLS certificate and key for using mTLS between NGINX Agent and Instance Manager. See the NGINX Instance Manager [docs]({{< ref "/nim/system-configuration/secure-traffic.md#mutual-client-certificate-authentication-setup-mtls" >}}) and the NGINX Agent [docs]({{< ref "/agent/configuration/encrypt-communication.md" >}}) for more details. Requires NGINX Agent 2.x. | "" | +|**nginxAgent.syslog.host** | Address for NGINX Agent to run syslog listener. Requires NGINX Agent 2.x. | 127.0.0.1 | +|**nginxAgent.syslog.port** | Port for NGINX Agent to run syslog listener. Requires NGINX Agent 2.x. | 1514 | +|**nginxAgent.napMonitoring.collectorBufferSize** | Buffer size for collector. Will contain log lines and parsed log lines. Requires NGINX Agent 2.x. | 50000 | +|**nginxAgent.napMonitoring.processorBufferSize** | Buffer size for processor. Will contain log lines and parsed log lines. Requires NGINX Agent 2.x. | 50000 | +|**nginxAgent.customConfigMap** | The name of a custom ConfigMap to use instead of the one provided by default. Requires NGINX Agent 2.x.| "" | {{}} diff --git a/content/nic/installation/integrations/nic-n1-console.md b/content/nic/installation/integrations/nic-n1-console.md deleted file mode 100644 index 8602062a0..000000000 --- a/content/nic/installation/integrations/nic-n1-console.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Connect NGINX Ingress Controller to NGINX One Console -toc: true -draft: true -weight: 1800 -nd-type: how-to -nd-product: NIC ---- - -This document explains how to connect F5 NGINX Ingress Controller to NGINX One Console using NGINX Agent. - -Connecting NGINX Ingress Controller to NGINX One Console enables centralized monitoring of all controller instances. - -## Deploy NGINX Ingress Controller with NGINX Agent - -{{}} - -{{%tab name="Helm"%}} - -Edit your `values.yaml` file to enable NGINX Agent and configure it to connect to NGINX One Console: -```yaml -nginxAgent: - enable: true - dataplaneKey: "" -``` - - The `dataplaneKey` is used to authenticate the agent with NGINX One Console. See the NGINX One Console Docs [here]({{< ref "/nginx-one/getting-started.md#generate-data-plane-key" >}}) to generate your dataplane key from the NGINX One Console. - - -Follow the [Installation with Helm]({{< ref "/nic/installation/installing-nic/installation-with-helm.md" >}}) instructions to deploy NGINX Ingress Controller. - -{{%/tab%}} - -{{%tab name="Manifests"%}} - -Add the following flag to the deployment/daemonset file of NGINX Ingress Controller: - -```yaml -args: -- -agent=true -``` - -Create a ConfigMap with an `nginx-agent.conf` file: - -```yaml -kind: ConfigMap -apiVersion: v1 -metadata: - name: nginx-agent-config - namespace: -data: - nginx-agent.conf: |- - log: - # set log level (error, info, debug; default "info") - level: info - # set log path. if empty, don't log to file. - path: "" - - allowed_directories: - - /etc/nginx - - /usr/lib/nginx/modules - - features: - - certificates - - connection - - metrics - - file-watcher - - ## command server settings - command: - server: - host: product.connect.nginx.com - port: 443 - auth: - token: "" - tls: - skip_verify: false -``` - -Make sure you set the namespace in the nginx-agent-config to the same namespace as NGINX Ingress Controller. - -Mount the ConfigMap to the deployment/daemonset file of NGINX Ingress Controller: - -```yaml -volumeMounts: -- name: nginx-agent-config - mountPath: /etc/nginx-agent/nginx-agent.conf - subPath: nginx-agent.conf -volumes: -- name: nginx-agent-config - configMap: - name: nginx-agent-config -``` - -Follow the [Installation with Manifests]({{< ref "/nic/installation/installing-nic/installation-with-manifests.md" >}}) instructions to deploy NGINX Ingress Controller. - -{{%/tab%}} - -{{}} - -## Verify that NGINX Ingress Controller is connected to NGINX One - -After deploying NGINX Ingress Controller with NGINX Agent, you can verify the connection to NGINX One Console. - -Log in to your NGINX One Console account and navigate to the Instances dashboard. Your NGINX Ingress Controller instances should appear in the list, where the instance name will be the pod name. - -## Troubleshooting - -If you encounter issues connecting NGINX Ingress Controller to NGINX One Console, try the following steps based on your image type: - -Check the NGINX Agent version: - -```shell -kubectl exec -it -n -- nginx-agent -v -``` - -If nginx-agent version is v3, continue with the following steps. -Otherwise, make sure you are using an image that does not include App Protect. - -Check the NGINX Agent configuration: - -```shell -kubectl exec -it -n -- cat /etc/nginx-agent/nginx-agent.conf -``` - -Check NGINX Agent logs: - -```shell -kubectl exec -it -n -- nginx-agent -``` diff --git a/content/nic/releases.md b/content/nic/releases.md index f3480f11a..bf0928bd0 100644 --- a/content/nic/releases.md +++ b/content/nic/releases.md @@ -10,13 +10,15 @@ nd-docs: DOCS-616 08 Jul 2025 -This release includes the ability to configure Rate Limiting for your APIs based on a specific NGINX variable and its value. This allows you more granular control over how frequently specific users access your resources. +This NGINX Ingress Controller release brings initial connectivity to the NGINX One Console! You can now use NGINX One Console to manage NGINX instances that are part of your NGINX Ingress Controller cluster. See [here]({{< ref "/nginx-one/k8s/add-nic.md" >}}) to configure NGINX One Console with NGINX Ingress Controller. + +This release also includes the ability to configure Rate Limiting for your APIs based on a specific NGINX variable and its value. This allows you more granular control over how frequently specific users access your resources. Lastly, in our previous v5.0.0 release, we removed support for Open Tracing. This release replaces that observability capability with native NGINX Open Telemetry traces, allowing you to monitor the internal traffic of your applications. ### Features - [7642](https://github.com/nginx/kubernetes-ingress/pull/7642) Add OpenTelemetry support -- [7916](https://github.com/nginx/kubernetes-ingress/pull/7916) Add support for Agent V3 +- [7916](https://github.com/nginx/kubernetes-ingress/pull/7916) Add support for NGINX Agent version 3 and Connecting to NGINX One Console - [7884](https://github.com/nginx/kubernetes-ingress/pull/7884) Tiered rate limits with variables - [7765](https://github.com/nginx/kubernetes-ingress/pull/7765) Add OIDC PKCE configuration through Policy - [7832](https://github.com/nginx/kubernetes-ingress/pull/7832) Add request_method to rate-limit Policy