At Network to Code we are constantly looking to simplify and standardize our open source offerings to make our projects easier to understand and consume for the community. Upon a recent review of our projects we identified an opportunity within two of our frameworks to improve how they are managed and deployed. Therefore, all Network to Code open source Nautobot Apps that provide additional integrations to the Nautobot Single Source of Truth (SSoT) and Nautobot ChatOps frameworks are being migrated into their respective main repositories as core integrations (see below for the full list). This means if you were using multiple SSoT integrations, you now only need to install just ONE package. It’s that simple, and the same goes for ChatOps.
For those of you who might not be familiar with what these do, the Nautobot SSoT App facilitates integration and data synchronization between various “source of truth” (SoT) systems, with Nautobot acting as a central clearinghouse for data (ready to go integrations for ServiceNow, Infoblox, Arista CloudVision, Cisco ACI and IP Fabric). The Nautobot ChatOps App facilitates getting data from Nautobot without leaving your chat application (such as Slack, MS Teams, WebEx Teams, and Mattermost) and provides a framework for integrations with other external systems such as Cisco ACI and Meraki, AWS / Ansible Tower, Palo Alto Panorama, IP Fabric, and Grafana.
This is an important step in the journey of these two popular Nautobot Apps, which improves all aspects of their lifecycle—not least, reducing the amount of work it takes to maintain them and improving testing and documentation. We have taken steps to preserve each project’s history—a huge thank you to all contributors and maintainers! Therefore, the repositories will remain in the public domain as read-only archives, and code has been migrated with attribution.
Overview of Changes
As a result, the following will happen:
- Development of the individual merged integrations will take place ONLY in the main repositories (linked above) going forward. That includes opening issues, PRs, discussions, etc.
- A new release (ChatOps v2.0 and SSoT v1.4) allows for these integrations to be enabled via configuration rather than separate apps (plugins).
- Future NTC developed SSoT or ChatOps integrations to support Device42, Infoblox, NSO, and others, will be added to their respective parent repositories.
- Integrations are mutually exclusive with the old separate app (plugin) version! Read the documentation (ChatOps and SSoT) for detailed upgrade instructions.
- The model of adding more integrations via a separate app (plugin) continues to be supported, to allow for any other privately developed app to integrate within the ecosystem.
Impacted Project Repositories
The following open source plugins have been migrated to integrations within their parent repository:
- Parent repository: Nautobot Single Source of Truth (SSoT)
- Parent repository: Nautobot ChatOps
Why and How Did We Do It?
The disaggregated model of one repository (or project) per ChatOps and SSoT external integration results in a growing burden on its users having to manage more and more packages separately in their Nautobot installation. It also presents us with a large maintenance overhead and very fragmented documentation. With 12 open source plugins today on top of the frameworks (and more integrations in the development pipeline), we at Network to Code needed to streamline the process of developing, releasing, documenting, and maintaining a growing codebase of integrations. We believe this is a win/win overall for both users and maintainers, making it simpler to install and develop going forward.
On the other hand, this same model has the advantage of allowing for integrations to be developed by the wider community (whether they are private or open sourced) within the same public framework (i.e., ChatOps and SSoT) and be installed alongside other such integrations.
Therefore, we have chosen the middle ground option, whereby the existing 12 open source integrations and any future releases from Network to Code will exist as built-in integrations of the main apps (i.e., ChatOps and SSoT) following a mono-repo model (incidentally, the same model used by another Nautobot app with external integrations—Nautobot Secrets Providers). One codebase, one released package on PyPI, everything configurable at a per-integration level, and one consolidated documentation website per framework (i.e., ChatOps and SSoT, respectively).
Finally, any other plugins developed for these two frameworks will continue to work without any changes, in their own separate repository, needing only the same base framework as before.
Get in Touch!