Skip to content

Management Plane Observability  #6529

@shaun-nx

Description

@shaun-nx

Overview

As a user of NGINX Ingress Controller, I would like my deployments to be visible and manageable in both NGINX One and NGINX Instance Manager so that I can more easily manage my deployments.

References

NGINX One Cloud Environments for testing

High-level Functional Requirements

  • Allow NGINX Ingress Controller to send metrics to NGINX One SaaS Console, such as NGINX Version
  • Allow individual instances of NGINX, through Ingress Controller, to be visible in NGINX One SaaS Console
  • Allow the version of NGINX used by NGINX Ingress Controller to be visible in the NGINX One SaaS Console
  • Only add Agent v3 to our NGINX Plus and NGINX OSS images (to not include NAP and DOS images)

Non-functional requirements

  • Add integration documentation to guide users through connecting the deployments of NGINX Ingress Controller to N1, including generation of Data Plane key
  • Highlight the images that accommodate the use case of connecting to N1 to the integrations section
  • Move integrations section of docs to same level as Installation

UI/UX for N1 Console for NIC users

This section covers what the initial UI/UX experience will be (i.e. what capabilities will/will not be there)

  • NGINX Ingress Controller pods are shown as instances in N1
  • Ensure Ingress Controller pods are viewable in N1 console by their deployment/daemonset

Requirements for N1SC and/or Agent

  • Ensure container instances that are part of a deployment/daemonset, are completely removed when they become unavailable (group instances based on install_id from deployment_ctx)
  • Ensure NGINX Ingress Controller pods (containers) can be easily identified in the instance list
  • Ensure "Edit Configuration" button turned off when config is read-only
  • Ensure config recommendations are not shown
  • Ensure that Host specific metrics are displayed (mem and CPU)
  • Ensure that certificates, managed by NGINX Ingress Controller, are displayed in the unmanaged certificates section (i.e. certs for Ingress and VirtualServers)
  • Ensure that NGINX specific CVEs are displayed
  • Ensure the entire NGINX config is viewable
  • Ensure configurations in /etc/nginx/conf.d/* are displayed
  • Ensure configurations in /etc/nginx/stream-conf.d/* are displayed

Definition of Done

Development

  • Unit tests are written to cover functionality delivered in the story.
  • Make sure that the unit test passes before creating a pull request.
  • Make sure that the test coverage stays optimal.
  • Run make lint locally before creating a PR.

Testing

  • Automated tests are written as part of the story.
  • Run “make lint-python“ from root
  • Acceptance criteria are met.
  • Stories are demonstrated to the team.
  • Product Manager accepts the story as done.
  • If a feature requires changes/extensions of the Helm chart, those shall be done as part of the story.

Release Notes & Documentation

  • PR is labeled appropriately so they display in GitHub release notes.
  • Create/update documentation related to the user story.
  • Create/update the example in our codebase when applicable.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposalAn issue that proposes a feature request

    Type

    Projects

    Status

    In Progress 🛠

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions