netbox-community / netbox

The premier source of truth powering network automation. Open source under Apache 2. Public demo: https://demo.netbox.dev
http://netboxlabs.com/oss/netbox/
Apache License 2.0
15.37k stars 2.49k forks source link

Airflow attribute for PSU and fan modules #11969

Open jbemmel opened 1 year ago

jbemmel commented 1 year ago

NetBox version

latest

Feature type

Data model extension

Proposed functionality

The schema at https://github.com/netbox-community/devicetype-library/blob/master/schema/moduletype.json currently does not allow 'airflow' attributes.

Assuming that is in line with what's currently in Netbox, I'd like to propose adding 'airflow' support for modules and racks

In typical systems, fan and psu modules have a specific airflow direction. It is not a property of the base system - it depends on the modules being used. Moreover, data centers are designed with a specific airflow in mind - this 'design intent' should be captured and used to reduce provisioning errors, by disallowing combinations of devices with incompatible airflow in the same rack (and similar for modules in the same device)

Use case

Supporting 'airflow' at the module and rack level allows for proper modeling of the system. The rack level 'airflow' would allow users to specify a filter for the devices and modules to be installed in that rack

Database changes

Adds 'airflow' field per module/rack (as a mixin, like weight), plus logic to validate that all modules added support the same airflow direction, and filtering of module_types presented given a device in a rack with specified airflow

External dependencies

none

danner26 commented 1 year ago

I absolutely agree, we do need to add airflow as a property to modules as well

PieterL75 commented 1 year ago

Maybe a check also ? that if the device is has a certain airflow, that the modules have to have the same ? Not sure if that is always a good idea...

jeremystretch commented 11 months ago

How would these values map to the options for device airflow?

danner26 commented 11 months ago

As a rough idea, we could have an airflow attribute on devices called something like airflow: module-regulated which then on the NetBox backend is determined by the installed modules which have the airflow attribute to specify the direction

Working with the devicetype-library I have noticed a lot of switches chassis' will have a sku for no PSU/FANs, and then depending on which PSU is installed that determins the direction of the airflow