diff --git a/docs/architecture/components/ansible/index.md b/docs/architecture/components/ansible/index.md index ab8b4fd1aa946678f6a95889ebf44900b2a94e38..de8cb29fa416301cfd810fb6d8e1940cc9aaa4fb 100644 --- a/docs/architecture/components/ansible/index.md +++ b/docs/architecture/components/ansible/index.md @@ -1 +1,13 @@ -# Ansible \ No newline at end of file +# Ansible + +Ansible is responsible of: + +- compiling, deploying and deleting configuration on targeted devices +- gather operational information from the targeted devices + +The Ansible subsystem is composed by three main functional parts: + +- A plugin that is responsible for exposing the Ansible engine to workflow orchestrator via APIs +- A set of Ansible roles and playbooks that interacts with the network elements +- A set of global variables stored in a Git repository that partially build the Ansible Inventory + diff --git a/docs/architecture/components/index.md b/docs/architecture/components/index.md index 49c72b08afab329ce0f62e92006c9fcea9b25345..c411f4eb7a25f80a5ea075597ab5b93f6ccbd6c3 100644 --- a/docs/architecture/components/index.md +++ b/docs/architecture/components/index.md @@ -1 +1,23 @@ -# Components of GAP \ No newline at end of file +# Components of GAP + +As previously stated, GAP is a platform and not a monolitic piece of software. GAP interacts with different OSS/BSS systems already present in GÉANT and these are tightly part of it in a certain sense. + +From a high level point of view, GAP can be seen as the sum of these parts: + +- __A service database__ called CoreDB that contains the models of the service intances, called _subscriptions_. Subscriptions are abstract objects that represent functional configuration constructs: the attributes that characterize these objects are defined in the _domain models_. + +- __An orchestration engine__ called Workflow Orchestrator that is capable of executing lists of steps called workflows. + +- __A web interface__ for operators, called Orchestrator GUI to intuitively launch and inspect workflows. + +- __An automation engine__, Ansible, capable of intracting with network devices to configure them or to gather operational information. + +- __A set of authoritative systems to manage resources__: + - IP addresses and DNS names (Infoblox) + - Physical interfaces (Netbox) + + To interact with these external systems, specific plugins or wrappers are in place. + +An overview of how these components interacts is depicted in the following diagram: + +{ width=300} \ No newline at end of file diff --git a/docs/architecture/components/netbox/index.md b/docs/architecture/components/netbox/index.md index da7a2fe04455216aec9381c3016d825f6a952f3b..b35d4ec777febbdf358acb3b1f5fd6ea6dfdad5d 100644 --- a/docs/architecture/components/netbox/index.md +++ b/docs/architecture/components/netbox/index.md @@ -1 +1,22 @@ -# Netbox \ No newline at end of file +# Netbox + +Netbox is a DCIM (DataCenter Infrastructure Manager) capable of managing inventory of Sites, Racks, Devices, Ports etc... + +In our case we use Netbox to store information about utilization of physical interfaces. + +There are some strong assumptions that we make: + +- all the nodes have a fixed configuration that does not change often over time +- the only point where operators can allocate interfaces is GAP. +- we do not manage the legacy Juniper network + +## Network hardware + +The new routers have a static hardware configuration which is dependant from the TIER. The following table summarize it: + +|Tier|Chassis|Control plane|Switching fabric|Linecard| +|--|--|--|--|--| +|Tier1|SR7s|2x CPM2-s|4x SFM7-s|2x XCM2 - 2x XMA2-s (36p QSFPDD)| +|Tier2|SR7s|2x CPM2-s|4x SFM7-s|2x XCM2 - 2x XMA2-s (36p QSFPDD)| +|Tier3|TBD|TBD|TBD|TBD| +|Tier4|TBD|TBD|TBD|TBD| \ No newline at end of file diff --git a/docs/architecture/components/wfo/index.md b/docs/architecture/components/wfo/index.md index 548ff3090099fd10c67b6cbe90aa14df73a32493..d584ff30c9ca9ce832c8326b9b02cf0015c38664 100644 --- a/docs/architecture/components/wfo/index.md +++ b/docs/architecture/components/wfo/index.md @@ -1 +1,7 @@ -# Workflow Orchestrator \ No newline at end of file +# Workflow Orchestrator + +In this page, we describe the mechanisms that govern: + +- Workflow Orchestrator +- CoreDB +- The "framework" for the integration plugins \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 9b6e637b64cf8103ea34c79d63ab8d5e56d7566a..ec76746b4e54007c62525dbb7093d600dfb414ea 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,9 +13,18 @@ GAP represents the vision of GÉANT in terms of Network Automation and Orchestra - to introduce a different way of working that avoids fragmentation and silos. GAP is partially based on Open Source Software and partially internally developed and integrates with most of the tooling already in use in GÉANT. + +!!! Acknoledgements + + The OSS components that GAP uses are mainly: + + - Workflow Orchestrator [https://workfloworchestrator.org/](https://workfloworchestrator.org/) (developed and maintained by [Surf](https://www.surf.nl/) and [ESnet](https://www.es.net/)) + - Ansible [https://www.ansible.com/](https://www.ansible.com/) + More information about the GAP architecture is available in the [Architecture](./architecture/index.md) section. + ## About this documentation portal This site is organized in 4 main sections: @@ -29,4 +38,6 @@ The documentation provided in this portal is final and reviewed. For information Also this documentation does not cover the design of network services, just the modelling and the mechanics related with automation. +!!! Info + For any info or clarification you can refer to goat_at_geant_dot_org diff --git a/mkdocs.yml b/mkdocs.yml index a77c8150fb298f6ee9de3afc9cc2f8f23602a4e8..2a5636f99af9016fb39c61fadbf66062749b1256 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -85,6 +85,7 @@ nav: # Extensions markdown_extensions: + - admonition - abbr - attr_list - md_in_html