Experimenting with Source of Truth¶
Using a Source of Truth is essential when it comes to implementing network automation and orchestration.
The Source of Truth for the network is the place where you store the information about all your network resources and services and the relationships between them. It represents the desired state of the network, aka what needs to be achieved with automation and orchestration. If the current state of the network differs from the representation in the source of truth then one or more processes need to be activated in order to remedy the situation by reconfiguring the network to reflect the correct state as prescribed in the source of truth.
To be able to implement automation and orchestrator one must ensure that sufficient information and details are stored about the resources and services that are going to be automated. This requires a Source of Truth solution that will support a flexible data model that can grow and change over time supporting physical and logical resources, different vendors and multiple layers when describing and documenting the available resources.
Similar requirements are related to the automation and orchestration of services. The Source of Truth should be able to describe all services and service components, composite services that consist of several (non-)dependent elementary services, and relationships between services and resources used to provide the services.
While working on different GP4L Labs, the team has investigated the use of two different source of truth solutions:

NetBox¶
NetBox is an open-source solution that enables storing information about a network. It incorporates an IP Address Management (IPAM) component together with a Data Center Infrastructure Management (DCIM) component which makes it very suitable for mixed network/computing environments.
When used as a Source of Truth it provides a flexible and powerful APIs (REST and GraphQL) and the ability to define and use custom webhooks and notifications about specific events related to chosen resource types. The support for custom fields provides a way to extend the standard data model and store additional information about the devices.
In the GP4L Labs, NetBox is used as the Single Source of Truth for the GP4L Experimental Testbed resources and as such it has an important role in the implementation of the following labs:
Maat¶
The GN5-1 WP6T2 development team has developed Maat: a free open-source solution that serves as a Single Source of Truth for network resources and/or services.
Maat is based on a non-SQL database where the user can store information about resources and/or service using the provided TM Forum based data model schema, or a custom user developed JSON schema. This means that the Maat data model can be molded to any requirements and purposes and can grow and change transparently over time.
To use Maat in an automation and orchestration scenario one can access it via standardised TM Forum Open APIs: one for resource inventory management and one for service inventory management. EventListener is an optional add-on to Maat that serves as both a historical archive and a notification hub that supports the registration of multiple subscribers interested in listening for specific events in Maat.
In the GP4L Labs, Maat is used as Single Source of Truth for both resources and services and as such it has an important role in the implementation of the following labs: