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

update structure of the pages

parent 2d47c575
No related branches found
No related tags found
2 merge requests!12Move to MkDocs material,!11Move to MkDocs material
......@@ -3,10 +3,6 @@ stages:
- publish-prod-2
- publish-prod-1
include:
# Documentation pipelines, both building and linting
- local: '/docs/.gitlab-ci.yml'
#image: python:latest
#pages:
# stage: deploy
......@@ -18,3 +14,81 @@ include:
# - public
# rules:
# - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
##### Sphinx - Generate documentation
build-documentation:
stage: documentation
tags:
- docker-executor
image: sphinxdoc/sphinx:latest
# Only run this pipeline if the committed changes are somewhere within the docs subdirectory
only:
changes:
- docs/**/*
before_script:
- cd $CI_PROJECT_DIR/docs
- pip install sphinx_rtd_theme myst-parser
script:
- make html
artifacts:
paths:
- docs/build/html
##### Vale - Documentation linter
lint-documentation:
stage: documentation
image:
name: jdkato/vale:latest
entrypoint: [""]
tags:
- docker-executor
needs:
- job: build-documentation # Only run when documentation has been built
artifacts: true
before_script:
- cd $CI_PROJECT_DIR/docs/vale
- vale sync
script:
- vale $CI_PROJECT_DIR/docs/build/html/_sources
##### Publish documentation artefacts
publish-prod-2:
stage: publish-prod-2
# First deploy to prod-2
tags:
- gap-docs-prod-2
only:
refs:
- main # Only publish when on the main branch
needs:
- job: build-documentation
artifacts: true
script:
- rm -r /var/www/gap-docs/*
- mv $CI_PROJECT_DIR/docs/build/html/* /var/www/gap-docs/
publish-prod-1:
stage: publish-prod-1
# When successful, also deploy to prod-1
tags:
- gap-docs-prod-1
only:
refs:
- main # Only publish when on the main branch
needs:
- job: build-documentation
artifacts: true
script:
- rm -r /var/www/gap-docs/*
- mv $CI_PROJECT_DIR/docs/build/html/* /var/www/gap-docs/
---
##### Sphinx - Generate documentation
build-documentation:
stage: documentation
tags:
- docker-executor
image: sphinxdoc/sphinx:latest
# Only run this pipeline if the committed changes are somewhere within the docs subdirectory
only:
changes:
- docs/**/*
before_script:
- cd $CI_PROJECT_DIR/docs
- pip install sphinx_rtd_theme myst-parser
script:
- make html
artifacts:
paths:
- docs/build/html
##### Vale - Documentation linter
lint-documentation:
stage: documentation
image:
name: jdkato/vale:latest
entrypoint: [""]
tags:
- docker-executor
needs:
- job: build-documentation # Only run when documentation has been built
artifacts: true
before_script:
- cd $CI_PROJECT_DIR/docs/vale
- vale sync
script:
- vale $CI_PROJECT_DIR/docs/build/html/_sources
##### Publish documentation artefacts
publish-prod-2:
stage: publish-prod-2
# First deploy to prod-2
tags:
- gap-docs-prod-2
only:
refs:
- main # Only publish when on the main branch
needs:
- job: build-documentation
artifacts: true
script:
- rm -r /var/www/gap-docs/*
- mv $CI_PROJECT_DIR/docs/build/html/* /var/www/gap-docs/
publish-prod-1:
stage: publish-prod-1
# When successful, also deploy to prod-1
tags:
- gap-docs-prod-1
only:
refs:
- main # Only publish when on the main branch
needs:
- job: build-documentation
artifacts: true
script:
- rm -r /var/www/gap-docs/*
- mv $CI_PROJECT_DIR/docs/build/html/* /var/www/gap-docs/
......@@ -35,7 +35,7 @@ The base configuration includes all configuration necessary to provision a new n
It covers aspects such as:
* Standard routing configuration for node reachability.
* User access configuration and AAA (Authentication, Authorisation, Accounting).
* User access configuration and AAA.
* Standard configuration related to security and hardening of the device.
* Monitoring and event management.
......
......@@ -6,6 +6,7 @@ for describing the network, and the services as a composition of abstract object
## Decomposition of objects
Every object -- both services and access ports -- is composed of the following building blocks:
* Administrative metadata
* Object ID
* Status
......
File moved
<mxfile host="Electron" modified="2023-08-04T07:43:55.097Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="yny_tqDxbk-8OQmxMuUl" version="21.2.1" type="device">
<diagram name="Page-1" id="k83DaNArxDXSbVKD7Knm">
<mxGraphModel dx="2490" dy="1944" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="tLlyI6g2dAklqoHCJuop-1" value="" style="rounded=1;whiteSpace=wrap;html=1;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="200" y="-60" width="310" height="230" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-2" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Jenkins&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="-160" y="-110" width="160" height="40" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-3" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Ansible&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="-160" y="20" width="160" height="60" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-4" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="210" y="33" width="310" height="133" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-5" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
<mxGeometry y="33" width="290" height="60" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-6" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Config Templates&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
<mxGeometry x="58" y="30" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-15" value="Vendor specific implementation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
<mxGeometry x="30" y="93" width="230" height="40" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-7" value="" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="-286" y="190" width="330" height="200" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-8" value="&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Geant&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;IP/MPLS Network&lt;/font&gt;&lt;br&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="-211" y="230" width="205" height="70" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-9" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-5" target="tLlyI6g2dAklqoHCJuop-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="170" y="160" as="sourcePoint" />
<mxPoint x="220" y="110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.625;entryY=0.2;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-7">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="140" y="190" as="sourcePoint" />
<mxPoint x="190" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-11" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-2">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="-320" y="20" as="sourcePoint" />
<mxPoint x="-220" y="-80" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="210" y="-30" width="290" height="60" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-13" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Inventory&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="268" y="-33" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-14" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-12" target="tLlyI6g2dAklqoHCJuop-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="90" as="sourcePoint" />
<mxPoint x="140" y="-50" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-16" value="Global variables + Services" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="310" y="-62" width="200" height="40" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-17" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.004;entryY=0.113;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-13">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="220" y="-20" as="sourcePoint" />
<mxPoint x="282.5" y="-60" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-18" value="&lt;font style=&quot;font-size: 15px;&quot;&gt;Netconf&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="-120" y="140" width="150" height="40" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-19" value="Updates via python scripts" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="44" y="-120" width="186" height="30" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-20" value="Sync every minute &amp;amp; on demand" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry y="-33" width="186" height="30" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-22" value="" style="shape=actor;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="342" y="-290" width="40" height="60" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-23" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-16" target="tLlyI6g2dAklqoHCJuop-22">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="430" y="-150" as="sourcePoint" />
<mxPoint x="530" y="-250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-24" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-22">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="-170" y="-190" as="sourcePoint" />
<mxPoint x="-70" y="-290" as="targetPoint" />
<Array as="points">
<mxPoint x="-80" y="-245" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-25" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Changes to intended configuration via MR&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;We use Merge Requests to incorporate changes to the intended configuration or mechanics.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
<mxGeometry x="390" y="-220" width="410" height="150" as="geometry" />
</mxCell>
<mxCell id="tLlyI6g2dAklqoHCJuop-26" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Apply changes to the live network&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;Jenkins web interface is used to run changes in an ordered manner, leveraging pipelines.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
<mxGeometry x="-68" y="-240" width="410" height="150" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
# -- Project information -----------------------------------------------------
project = 'GÉANT Automation Platform'
copyright = '2023, GÉANT Vereniging'
author = 'GÉANT Orchestration and Automation Team'
# -- General configuration ---------------------------------------------------
extensions = ['sphinx_rtd_theme', 'myst_parser']
templates_path = ['templates']
exclude_patterns = ['build', 'Thumbs.db', '.DS_Store', 'venv', 'vale']
source_suffix = {
'.md': 'markdown'
}
# -- Options for Markdown support --------------------------------------------
myst_enable_extensions = ['attrs_block', 'deflist', 'replacements', 'smartquotes', 'strikethrough']
suppress_warnings = ['myst.strikethrough']
# -- Options for HTML output -------------------------------------------------
html_theme = 'sphinx_rtd_theme'
html_static_path = ['static']
html_theme_options = {
'style_nav_header_background': 'rgb(0 63 95)',
'collapse_navigation': True,
'sticky_navigation': True,
'navigation_depth': 4,
'includehidden': True,
'titles_only': False
}
html_css_files = ['custom.css']
html_logo = 'static/geant_logo_white.svg'
......@@ -2,45 +2,3 @@
Welcome to the documentation of the GÉANT Automation Platform, or GAP for short. \
The focus of this platform is configuration management and service orchestration for the GÉANT IP/MPLS network.
This documentation has the following sections:
```{toctree}
:caption: Architecture
:maxdepth: 1
overview/index.md
modeling/index.md
modeling/ports.md
architecture/index.md
processes/deploy_router.md
processes/node_provisioning.md
```
```{toctree}
:caption: User guide
:glob:
:maxdepth: 3
user_guide/index.md
user_guide/Sites/*
user_guide/Routers/*
user_guide/IPtrunks/*
```
```{toctree}
:caption: Admin guide
:maxdepth: 1
admin_guide/index.md
```
```{toctree}
:caption: Legacy GAP
:maxdepth: 1
legacy_platform/overview.md
legacy_platform/new_router_deployment.md
```
```{toctree}
:caption: —
:maxdepth: 1
glossary.md
```
File moved
# Node provisioning
A node can either be a router, a switch, or a terminal server. In general -- as laid out more extensively
A node consists of router(s), a switch, and a terminal server. In general -- as laid out more extensively
<a href="https://wiki.geant.org/display/NETENG/001+-+Topology+and+physical+layout" target="_blank">here</a> (behind
login) -- a PoPconsists of:
login) -- a PoP consists of:
* One or two routers
* One switch
......
*[AAA]: Authentication, Authorisation, Accounting
*[BGP]: Border Gateway Protocol
*[CFS]: Customer Facing Service
*[eBGP]: External BGP
......@@ -8,6 +9,7 @@
*[iBGP]: Internal BGP
*[IFS]: Interface Facing Service
*[IS-IS]: Intermediate System to Intermediate System
*[L3VPN]: Layer 3 VPN
*[MPLS]: Multi-Protocol Label Switching
*[MTTR]: Mean Time To Repair
*[MTU]: Maximum Transmission Unit
......
......@@ -36,11 +36,25 @@ extra_css:
# Page tree
nav:
- Home: index.md
- Overview: overview/index.md
- Architecture:
- Overview: overview/index.md
- Modeling:
- modeling/index.md
- Ports: modeling/ports.md
- architecture/index.md
- Modeling:
- architecture/modeling/index.md
- Ports: architecture/modeling/ports.md
- User Guide:
- user_guide/index.md
- Sites:
- user_guide/sites/index.md
- Node Provisioning: user_guide/sites/node_provisioning.md
- Routers:
- user_guide/routers/index.md
- user_guide/routers/deploy_router.md
- IP Trunks: user_guide/iptrunks/index.md
- Admin Guide: admin_guide/index.md
- Legacy Platform:
- Overview: legacy_platform/overview.md
- New Router Deployment: legacy_platform/new_router_deployment.md
# Extras
markdown_extensions:
......
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