nav icon indicating copy to clipboard operation
nav copied to clipboard

Support port profiles/templates in PortAdmin

Open lunkwill42 opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe.

It is not always desirable to delegate access to arbitrarily configure switch ports. In some use cases, the central network operators may want to create a limited set of configuration templates that individual ports can be assigned to. This concept is not currently supported by PortAdmin, which is only geared towards setting each switch port configuration attribute individually.

Describe the solution you'd like

A recurring request for NAV is for PortAdmin to support a concept of port profiles. In port profile mode, instead of letting users arbitrarily configure any parameter of a port, there should be a list of pre-configured "port profiles" that can be assigned to a port via a dropdown.

The profile itself contains the actual configuration presets to apply to a port.

The challenge is where to get the port profile data from. This can vary between vendors and device platforms, as well as with management protocols.

Some switching platforms already have a concept that is reminiscent of "port profiles", in where some configuration template is part of the running configuration, and ports are assigned individually to such templates. One example of this is JunOS, with its "interface ranges".

One unfinished pull request works to add CNaaS-NMS API calls as a proxy ManagementHandler for PortAdmin. CNaaS-NMS supports both a concept of configtypes and config templates that can be assigned to ports.

SNMP-based back-ends, however, cannot support this kind of built-in profile (that we know). PortAdmin may therefore also need to support internally configured profiles, which should consist of the attributes that can be assigned to ports.

Unresolved design questions

Configuration storage and format

Where should internally configured profiles be stored in NAV? There are basically two choices: 1. A configuration file, or 2. in the database.

What attributes must a profile support?

Global or device-local templates?

Profiles sourced from devices would be individual to each device (in most cases, these will probably have been templated in some external configuration management system). A question that remains to be answered is whether internally configured PortAdmin profiles should be global, or if there needs to be a way to associate a subset of profiles with individal devices, or groups of devices.

Additional context

While the initial discussion probably occurred even earlier, the first time this feature was mentioned in the minutes from the NAV reference committee was on 25 May 2021.

lunkwill42 avatar Mar 21 '23 14:03 lunkwill42