Skip to content

Kircheneer/nautobot-plugin-bgp-models

 
 

Repository files navigation

Nautobot BGP Models Plugin

A plugin for Nautobot extending the core models with BGP-specific models.

New models enable modeling and management of BGP peerings, whether or not the peer device is present in Nautobot.

The initial development of this plugin was sponsored by Riot Games, Inc.

Data Models

Navigate to Data Models for detailed descriptions on additional data models provided in the plugin.

Use Cases

To make the start with the plugin easier, we provide two example use cases for common OS platforms: Cisco and Juniper.

Cisco Configuration Modeling and Rendering

Navigate to Cisco Example Use Case for detailed instructions how to consume BGP Models plugin on Cisco devices.

Juniper Configuration Modeling and Rendering

Navigate to Juniper Example Use Case for detailed instructions how to consume BGP Models plugin on Juniper devices.

Installation

The plugin is available as a Python package in PyPI and can be installed with pip:

pip install nautobot-bgp-models

The plugin is compatible with Nautobot 1.3 and higher

To ensure Nautobot BGP Models Plugin is automatically re-installed during future upgrades, create a file named local_requirements.txt (if not already existing) in the Nautobot root directory (alongside requirements.txt) and list the nautobot-bgp-models package:

# echo nautobot-bgp-models >> local_requirements.txt

Once installed, the plugin needs to be enabled in your nautobot_config.py

# In your configuration.py
PLUGINS = ["nautobot_bgp_models"]
PLUGINS_CONFIG = {
    "nautobot_bgp_models": {
        "default_statuses": {
            "AutonomousSystem": ["active", "available", "planned"],
            "Peering": ["active", "decommissioned", "deprovisioning", "offline", "planned", "provisioning"],
        }
    }
}

In the default_statuses section, you can define a list of default statuses to make available to AutonomousSystem and/or Peering. The lists must be composed of valid slugs of existing Status objects.

Screenshots

Menu

Autonomous System

Peering List

Peering

Peer Endpoint

Peer Group

Contributing

Pull requests are welcomed and automatically built and tested against multiple version of Python and multiple version of Nautobot through TravisCI.

The project is packaged with a light development environment based on docker-compose to help with the local development of the project and to run the tests within TravisCI.

The project is following Network to Code software development guideline and is leveraging:

  • Black, Pylint, Bandit and pydocstyle for Python linting and formatting.
  • Django unit test to ensure the plugin is working properly.

Questions

For any questions or comments, please check the FAQ first and feel free to swing by the Network to Code slack channel (channel #networktocode). Sign up here

About

Nautobot BGP models plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 87.6%
  • HTML 12.0%
  • Other 0.4%