Skip to content

feat: Set up NGF integration to N1 Console #902

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

mjang
Copy link
Contributor

@mjang mjang commented Jul 29, 2025

I'm calling this a Working draft, to make it easier for our developers to use this as a test template of sorts

Proposed changes

Set up NGF integration into N1 Console.

  • This is similar to https://docs.nginx.com/nginx-one/k8s/add-nic/
    • But since NIC != NGF, I've changed labels / titles as appropriate
    • I've included some of the same steps to set up a data plane key, create a k8s secret, verify a connection, and for troubleshooting (I'm guessing the troubleshooting section, if applicable, will be different)
  • Many of the steps are the same with https://docs.nginx.com/nginx-gateway-fabric/install/helm/
    • I've added an include for one process, I've copy/pasted content with an include for a second process
  • I've included temporary references <!-- in comments --> to the UI and steps that we're using in that process

The primary build page is here: https://frontdoor-test-docs.nginx.com/previews/docs/902/nginx-one/k8s/add-ngf/

I think there's work to be done w/r/t data plane keys. We have a bunch of different ways to create them

  • There's an alert for when a data plane key is within 30 days of expiration
  • This may be best as a separate issue

This might close issue 660.
Closes #ISSUE

Checklist

Before merging a pull request, run through this checklist and mark each as complete.

  • I have read the contributing guidelines
  • I have signed the F5 Contributor License Agreement (CLA)
  • I have rebased my branch onto main
  • I have ensured my PR is targeting the main branch and pulling from my branch from my own fork
  • I have ensured that the commit messages adhere to Conventional Commits
  • I have ensured that documentation content adheres to the style guide
  • If the change involves potentially sensitive changes1, I have assessed the possible impact
  • If applicable, I have added tests that prove my fix is effective or that my feature works
  • I have ensured that existing tests pass after adding my changes
  • If applicable, I have updated README.md

Footnotes

  1. Potentially sensitive changes include anything involving code, personally identify information (PII), live URLs or significant amounts of new or revised documentation. Please refer to our style guide for guidance about placeholder content.

@github-actions github-actions bot added documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric product/nginx-one NGINX One Console labels Jul 29, 2025
Copy link

Deploy Preview will be available once build job completes!

Name Link
😎 Deploy Preview https://frontdoor-test-docs.nginx.com/previews/docs/902/

@mjang mjang changed the title DRAFt feat: Set up NGF integration to N1 Console DRAFT feat: Set up NGF integration to N1 Console Jul 29, 2025
@mjang mjang self-assigned this Jul 29, 2025
@mjang mjang changed the title DRAFT feat: Set up NGF integration to N1 Console Working draft: Set up NGF integration to N1 Console Jul 29, 2025
@mjang
Copy link
Contributor Author

mjang commented Jul 29, 2025

cc @sylwang @bjee19

@mjang mjang marked this pull request as ready for review August 6, 2025 14:09
@mjang mjang requested a review from a team as a code owner August 6, 2025 14:09
@mjang mjang changed the title Working draft: Set up NGF integration to N1 Console Set up NGF integration to N1 Console Aug 6, 2025
@mjang mjang changed the title Set up NGF integration to N1 Console feat: Set up NGF integration to N1 Console Aug 6, 2025
Comment on lines +37 to +46
### Create a Kubernetes secret with the data plane key
<!-- Maybe this is wrong. I'm assuming that we need to follow this step from the current version of https://docs.nginx.com/nginx-one/k8s/add-nic/#before-you-begin -->
To create a Kubernetes secret with the data play key, use the following command:

```shell
kubectl create secret generic dataplane-key \
--from-literal=dataplane.key=<Your Dataplane Key> \
-n <namespace>
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step is good, can we just specify somewhere in a note that the secret needs to be created in the same namespace as NGF.

And that the secret's key has to be named dataplane.key like it is in the example.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll note that the default NGF namespace is nginx-gateway, so most users will be installing it there.

Comment on lines +47 to +69
### Install cert-manager

Add the Helm repository:

```shell
helm repo add jetstack https://charts.jetstack.io
helm repo update
```

Install cert-manager:

```shell
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set config.apiVersion="controller.config.cert-manager.io/v1alpha1" \
--set config.kind="ControllerConfiguration" \
--set config.enableGatewayAPI=true \
--set crds.enabled=true
```

This also enables Gateway API features for cert-manager, which can be useful for [securing your workload traffic]({{< ref "/ngf/traffic-security/integrate-cert-manager.md" >}}).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I right in thinking that this portion isn't necessary? @sjberman

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessary for anything related to N1C, that's correct.

Comment on lines +121 to +122
After deploying NGINX Gateway Fabric with NGINX Agent, you can verify the connection to NGINX One Console.
Log in to your F5 Distributed Cloud Console account. Select **NGINX One > Visit Service**. In the dashboard, go to **Manage > Instances**. You should see your instances listed by name. The instance name matches both the hostname and the pod name.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be revised a little.

After deploying NGF, it will show up as a control plane in Manage > Control Planes.

After a user deploys a Gateway/NGINX Resource, it will show up in the Manage > Instances.

Not sure how you'd want to word that, or if you need more input from my end.

Comment on lines +75 to +79
## Install from the OCI registry
<!-- Corresponds to step 3 in the UX -->
{{< include "/ngf/installation/install-oci-registry.md" >}}

### Install from sources {#install-from-sources}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll need to include setting the flag specifying the secret name when installing through Helm for all the commands,

--set nginx.nginxOneConsole.dataplaneKeySecretName=<data_plane_key_secret_name>

Like they do in NIC.

We can also specify through manifests they need to add the --nginx-one-dataplane-key-secret=<data_plane_key_secret_name> argument on the NGF deployment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric product/nginx-one NGINX One Console
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants