Skip to content
Snippets Groups Projects
Verified Commit 7d28aa1d authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

add documentation for sites, update index

parent b3fe0a35
No related branches found
No related tags found
2 merge requests!21[2024-02-06] Publish docs,!20Feature/document workflows
...@@ -8,21 +8,21 @@ For this reason, in case of an IP trunk, we do not use the canonical decompositi ...@@ -8,21 +8,21 @@ For this reason, in case of an IP trunk, we do not use the canonical decompositi
The relevant attributes for an IPTrunk are the following: The relevant attributes for an IPTrunk are the following:
| Attribute name | Attribute type | Description | | Attribute name | Attribute type | Description |
|-------------------------------------|-------------------------------------------|------------------------------------------------------------------------------------------------------| |---------------------------------------|----------------|------------------------------------------------------------------------------------------------------|
| geant_s_sid | `str` | GÉANT service ID associated with this trunk. | | `geant_s_sid` | `str` | GÉANT service ID associated with this trunk. |
| iptrunk_description | `str` | A human-readable description of this trunk. | | `iptrunk_description` | `str` | A human-readable description of this trunk. |
| iptrunk_type | `IptrunkType` | The type of trunk, can be either dark fibre or leased capacity. | | `iptrunk_type` | `IptrunkType` | The type of trunk, can be either dark fibre or leased capacity. |
| iptrunk_speed | `str` | should be of PhyPortCapacity type The speed of the trunk, measured per interface associated with it. | | `iptrunk_speed` | `str` | should be of PhyPortCapacity type The speed of the trunk, measured per interface associated with it. |
| iptrunk_minimum_links | `int` | The minimum amount of links the trunk should consist of. | | `iptrunk_minimum_links` | `int` | The minimum amount of links the trunk should consist of. |
| iptrunk_isis_metric | `int` | The IS-IS metric of this link | | `iptrunk_isis_metric` | `int` | The IS-IS metric of this link |
| iptrunk_ipv4_network | `IPv4Network` | The IPv4 network used for this trunk. | | `iptrunk_ipv4_network` | `IPv4Network` | The IPv4 network used for this trunk. |
| iptrunk_ipv6_network | `IPv6Network` | The IPv6 network used for this trunk. | | `iptrunk_ipv6_network` | `IPv6Network` | The IPv6 network used for this trunk. |
| iptrunk_side_node | `DeviceBlock` | The router that hosts the A side of the trunk. | | `iptrunk_side_node` | `DeviceBlock` | The router that hosts the A side of the trunk. |
| iptrunk_side_ae_iface | `str` | The name of the interface on which the trunk connects. | | `iptrunk_side_ae_iface` | `str` | The name of the interface on which the trunk connects. |
| iptrunk_side_ae_geant_a_sid | `str` | The service ID of the interface. | | `iptrunk_side_ae_geant_a_sid` | `str` | The service ID of the interface. |
| iptrunk_side_ae_members | `list[str] = Field(default_factory=list)` | A list of interface members that make up the aggregated Ethernet interface. | | `iptrunk_side_ae_members` | `list[str]` | A list of interface members that make up the aggregated Ethernet interface. |
| iptrunk_side_ae_members_description | `list[str] = Field(default_factory=list)` | The list of descriptions that describe the list of interface members. | | `iptrunk_side_ae_members_description` | `list[str]` | The list of descriptions that describe the list of interface members. |
## Workflows ## Workflows
......
# Sites # Sites
\ No newline at end of file
Sites are an abstract construction to model information that is shared across
all services deployed at one physical location. They only contain information
relevant to the services that rely on it. As a result, external BSS and OSS
systems are still in place for other accounting and bookkeeping purposes.
However, these lie outside the scope of GAP.
## Modelling and attributes
A Site object contains the following attributes:
| Attribute name | Attribute type | Description |
|--------------------------------------------------|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `site_name` | `str` | The name of the site, that will dictate part of the FQDN of routers that are hosted at this site.<br/>For example: `router.X.Y.geant.net`, where X denotes the name of the site. |
| `site_city` | `str` | The city at which the site is located. |
| `site_country` | `str` | The country in which the site is located. |
| `site_country_code` | `str` | The code of the corresponding country. This is also used for the FQDN,<br/>following the example for the site name, the country code goes in the Y position. |
| `site_latitude` | `LatitudeCoordinate` | The latitude of the site, used for SNMP. |
| `site_longitude` | `LongitudeCoordinate`&nbsp;&nbsp;&nbsp;&nbsp; | The longitude of the site, again for SNMP. |
| `site_internal_id` | `int` | The internal ID used within GÉANT for a site. |
| `site_bgp_community_id` &nbsp;&nbsp;&nbsp;&nbsp; | `int` | The BGP community ID of a site, used to advertise routes learned at this site. |
| `site_tier` | `SiteTier` | The tier of a site, which corresponds to installed equipment. |
| `site_ts_address` | `IPv4Address` | The address of the terminal server hosted at this site.<br/>It is used for out of band access to any equipment hosted here. |
## Workflows
The Site subscription has three basic workflows: creation, modification, and
termination.
### Creation
The `create_site` workflow creates a new site object in the service database,
and sets the subscription lifecycle to `ACTIVE`. The attributes that are input
using the intake form of the workflow are stored, and nothing else happens.
### Modification
Attributes of an existing site can be modified using the `modify_site` workflow.
As a result, other subscriptions that rely on this site will have referenced
attributes updated as well.
!!! warning
Be aware that although this *does* update attributes in the services
database, it does **not** update any active subscription instances that are
already deployed. You will need to run additional workflows to update
subscriptions that depend on this change
### Termination
The `terminate_site` workflow will take an existing and active site
subscription from an `ACTIVE` to a `TERMINATED` state. This requires all
dependant subscription instances to already be terminated. If this is not
the case, the workflow will be unavailable for an operator to run, accompanied
by an error message explaining this fact.
...@@ -17,7 +17,7 @@ that ensures that the correct configuration is pushed onto the network ...@@ -17,7 +17,7 @@ that ensures that the correct configuration is pushed onto the network
GAP is part based on Open Source Software, and part internally developed. GAP integrates with most of the tooling GAP is part based on Open Source Software, and part internally developed. GAP integrates with most of the tooling
already in use in GÉANT. already in use in GÉANT.
!!! Credits !!! abstract "Credits"
The OSS components that GAP uses are mainly: The OSS components that GAP uses are mainly:
...@@ -28,22 +28,26 @@ More information about the GAP architecture is available in the [Architecture](. ...@@ -28,22 +28,26 @@ More information about the GAP architecture is available in the [Architecture](.
## About this documentation portal ## About this documentation portal
This site is organized in 4 main sections: !!! info
This documentation does not cover the design of network services, just the
- [Architecture](./architecture/index.md): covers the architecture of GAP including all the components and the modelling and the mechanics related to automation.
interactions between them
- [Legacy GAP](./legacy_platform/overview.md): provides operational guides of the legacy GAP platform based on Ansible
and Jenkins
- [Admin guide](./admin_guide/index.md): covers the detail information of the domain models in WFO, descriptions of the
workflows, and all the Ansible mechanics
- [User guide](./user_guide/index.md): provides operational guides of the Workflow Orchestrator based GAP
The documentation provided in this portal is final and reviewed. For information about the ongoing work please refer to This site is organized in 4 main sections:
the [internal wiki page](https://wiki.geant.org/display/NNAT/GOAT+-+Geant+Orchestration+and+Automation+Team).
Also, this documentation does not cover the design of network services, just the modelling and the mechanics related to
automation.
!!! Info - [Architecture](./architecture/index.md): covers the architecture of GAP
including all the components and the interactions between them
- [Legacy GAP](./legacy_platform/overview.md): provides operational guides
of the legacy GAP platform based on Ansible and Jenkins
- [User guide](./user_guide/index.md): provides operational guides of the
Workflow Orchestrator based GAP
- [Admin guide](./admin_guide/index.md): covers the detail information of
the domain models in WFO, descriptions of the workflows, and all the
Ansible mechanics
The documentation provided in this portal is final and reviewed. For information
about the ongoing work please refer to the [internal wiki page](https://wiki.
geant.org/display/NNAT/GOAT+-+Geant+Orchestration+and+Automation+Team).
!!! Tip
For any info or clarification you can refer to `goat`@`geant.org`. For any info or clarification you can refer to `goat`@`geant.org`.
...@@ -51,17 +51,17 @@ nav: ...@@ -51,17 +51,17 @@ nav:
- architecture/index.md - architecture/index.md
- architecture/config_decomposition/index.md - architecture/config_decomposition/index.md
- Components: - Components:
- architecture/components/index.md - architecture/components/index.md
- WFO: architecture/components/wfo/index.md - WFO: architecture/components/wfo/index.md
- Netbox: architecture/components/netbox/index.md - Netbox: architecture/components/netbox/index.md
- Ansible: architecture/components/ansible/index.md - Ansible: architecture/components/ansible/index.md
- LSO: architecture/components/lso/index.md - LSO: architecture/components/lso/index.md
- DTAP: - DTAP:
- architecture/dtap/index.md - architecture/dtap/index.md
- Development: architecture/dtap/development.md - Development: architecture/dtap/development.md
- Test: architecture/dtap/test.md - Test: architecture/dtap/test.md
- Acceptance: architecture/dtap/acceptance.md - Acceptance: architecture/dtap/acceptance.md
- Production: architecture/dtap/production.md - Production: architecture/dtap/production.md
- User Guide: - User Guide:
- user_guide/index.md - user_guide/index.md
- Sites: - Sites:
...@@ -76,15 +76,16 @@ nav: ...@@ -76,15 +76,16 @@ nav:
- Ansible: - Ansible:
- admin_guide/ansible/ansible.md - admin_guide/ansible/ansible.md
- WFO: - WFO:
- Diagram: admin_guide/wfo/overview.md - admin_guide/wfo/wfo.md
- Sites: admin_guide/wfo/sites.md - Diagram: admin_guide/wfo/overview.md
- Routers: admin_guide/wfo/routers.md - Sites: admin_guide/wfo/sites.md
- Iptrunks: admin_guide/wfo/iptrunks.md - Routers: admin_guide/wfo/routers.md
- IP trunks: admin_guide/wfo/iptrunks.md
- OSS/BSS integration: - OSS/BSS integration:
- Infoblox: admin_guide/oss_bss/ipam.md - Infoblox: admin_guide/oss_bss/ipam.md
- Netbox: admin_guide/oss_bss/netbox.md - Netbox: admin_guide/oss_bss/netbox.md
- LibreNMS: admin_guide/oss_bss/librenms.md - LibreNMS: admin_guide/oss_bss/librenms.md
- Kentik: admin_guide/oss_bss/kentik.md - Kentik: admin_guide/oss_bss/kentik.md
- Legacy Platform: - Legacy Platform:
- Overview: legacy_platform/overview.md - Overview: legacy_platform/overview.md
- New Router Deployment: legacy_platform/new_router_deployment.md - New Router Deployment: legacy_platform/new_router_deployment.md
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment