Page MenuHomePhabricator

Upgrade Netbox to 3.1
Open, MediumPublic


By the time we're ready to deploy 3.1 to prod, it will be out of beta.

We're currently running v2.10.4 in prod and -next.

WARNING: Upgrading an existing NetBox deployment to version 3.0 must be done from version 2.11.0 or later.
WARNING: [About 3.1-beta] No upgrade path to the final v3.1 release will be provided from this beta, and users should assume that all data entered into the application will be lost.

Because of that it's safer to not upgrade -next to 3.1-beta, but instead wait for the 3.1 final.
Depending on timing it might be better to wait on 2.11 or 3.0

Next steps:

  1. Upgrade -next to 2.11.12, the latest 2.11.
  2. Prepare changes to fix automation, reports, scripts, etc
  3. Backup prod data (CSV dumps, etc)
  4. Upgrade prod to 2.11.12

To be updated once we're on 2.11.

Breaking changes:

  • All objects now use numeric IDs in their UI view URLs instead of slugs. You may need to update external references to NetBox objects. (Note that this does not affect the REST API.)
  • The UI now uses numeric IDs when filtering object lists. You may need to update external links to filtered object lists. (Note that the slug- and name-based filters will continue to work, however the filter selection fields within the UI will not be automatically populated.)
  • The RackGroup model has been renamed to Location (see #4971). Its REST API endpoint has changed from /api/dcim/rack-groups/ to /api/dcim/locations/.
  • The foreign key field group on dcim.Rack has been renamed to location.
  • The foreign key field site on ipam.VLANGroup has been replaced with the scope generic foreign key (see #5284).
  • Custom script ObjectVars no longer support the queryset parameter: Use model instead (see #5995).
  • The default CSV export format for all objects now includes all available data from the object list. Additionally, the CSV headers now use human-friendly titles rather than raw field names. If backward compatibility with the old format is desired, export templates can be written to reproduce it.
  • The display_field keyword argument has been removed from custom script ObjectVar and MultiObjectVar fields. * These widgets will use the display value provided by the REST API.
  • The deprecated display_name field has been removed from all REST API serializers. (API clients should reference the display field instead.)
  • The redundant REST API endpoints for console, power, and interface connections have been removed. The same data can be retrieved by querying the respective model endpoints with the ?connected=True filter applied.
  • The tenant and tenant_id filters for the Cable model now filter on the tenant assigned directly to each cable, rather than on the parent object of either termination.
  • The cable_peer and cable_peer_type attributes of cable termination models have been renamed to link_peer and link_peer_type, respectively, to accommodate wireless links between interfaces.

New features that could be relevant to us:

  • Journaling Support (#151)
  • Parent Interface Assignments (#1519)
  • Pre- and Post-Change Snapshots in Webhooks (#3451)
  • New Site Group Model (#5892)
  • Improved Change Logging (#5913)
  • Provider Network Modeling (#5986)
  • Updated User Interface (#5893)
  • GraphQL API (#2007)
  • IP Ranges (#834)
  • Custom Model Validation (#5963)
  • New Views for Models Previously Under the Admin UI (#6466)
  • New Housekeeping Command (#6590)
  • Custom Queue Support for Plugins (#6651)

Enhancements that could be relevant to us:

  • #5914 - Add edit/delete buttons for IP addresses on interface view
  • #5942 - Add button to add a new IP address on interface view
  • #5953 - Support Markdown rendering for custom script descriptions
  • #6040 - Add UI search fields for asset tag for devices and racks
  • #6157 - Support Markdown rendering for report logs
  • #4833 - Allow assigning config contexts by device type
  • #5344 - Add support for custom fields in tables
  • #5401 - Extend custom field support to device component models
  • #5451 - Add support for multiple-selection custom fields
  • #6149 - Support image attachments for locations
  • #6087 - Improved prefix hierarchy rendering
  • #6527 - Support Markdown for report descriptions
  • #6666 - Show management-only status under interface detail view
  • #6560 - Enable CSV import via uploaded file
  • #6929 - Introduce LOGIN_PERSISTENCE configuration parameter to persist user sessions
  • #2434 - Add option to assign IP address upon creating a new interface
  • #5775 - Enable synchronization of groups for remote authentication backend
  • #6917 - Make IP assigned checkmark in IP table link to interface
  • #7323 - Add serial filter field for racks & devices
  • #7551 - Add UI field to filter interfaces by kind
  • #7561 - Add a utilization column to the IP ranges table
  • #7767 - Add visual aids to interfaces table for type, enabled status

Event Timeline

ayounsi triaged this task as Medium priority.Thu, Nov 25, 8:55 AM
ayounsi created this task.
Restricted Application added a subscriber: Aklapper. · View Herald Transcript