Skip to content

Controllers

A Controller in Nautobot is an abstraction meant to represent network or SDN (Software-Defined Networking) controllers. These may include, but are not limited to, wireless controllers, cloud-based network management systems, and other forms of central network control mechanisms.

For more details, refer to the user guide for a Controller model or a ControllerManagedDeviceGroup model.

Entity Relationship Diagram

This schema illustrates the connections between related models.

---
title: Controllers Entity Relationship Diagram
---
erDiagram

    Platform {
        string name UK
        Manufacturer manufacturer FK
        string network_driver
        string napalm_driver
        json napalm_args
        string description
    }

    SoftwareVersion {
        Platform platform FK
        string version
        string alias
        date release_date
        date end_of_support_date
        url documentation_url
        boolean long_term_support
        boolean pre_release
        Status status FK
    }

    Device {
        DeviceType device_type FK
        ControllerManagedDeviceGroup controller_managed_device_group FK
        DeviceRedundancyGroup device_redundancy_group FK

        string name UK
        Status status FK
        Role role FK
        Tenant tenant FK
        Platform platform FK
        SoftwareVersion software_version FK
        string serial
        string asset_tag UK
        Location location FK
        IPAddress primary_ip4 FK
        IPAddress primary_ip6 FK
        int device_redundancy_group_priority
        SecretsGroup secrets_group FK
    }

    DeviceRedundancyGroup {
        string name UK
        Status status FK
        string description
        string failover_strategy
        SecretsGroup secrets_group FK
    }

    Controller {
        Device controller_device FK "Nullable"
        DeviceRedundancyGroup controller_device_redundancy_group FK "Nullable"

        string name UK
        Status status FK
        Role role FK
        Tenant tenant FK
        string description
        Platform platform FK
        ExternalIntegration external_integration FK
        Location location FK
    }

    ControllerManagedDeviceGroup {
        ControllerManagedDeviceGroup parent FK "Nullable"
        Controller controller FK

        string name UK
        int weight
    }

    ControllerManagedDeviceGroup ||--o{ ControllerManagedDeviceGroup : "contains children"
    Controller }o--|| ControllerManagedDeviceGroup : "controls Devices in"
    Controller }o--|| DeviceRedundancyGroup : "can be deployed to"
    Device }o--|| SoftwareVersion : "runs"
    Controller }o--|| Platform : "runs"
    Controller }o--|| Device : "can be deployed to"
    Device }o--|| ControllerManagedDeviceGroup : "can be member of"
    Device }o--|| DeviceRedundancyGroup : "can be member of"
    Platform ||--o{ SoftwareVersion : "has"