Commit e4ba021f authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Merge branch 'develop' into 'master'

Release v1.0.0

See merge request teraflow-h2020/controller!94
parents 697cb73f 6f9c6e9b
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ share/python-wheels/
.installed.cfg
*.egg
MANIFEST
# requirements.txt  # removed to enable tracking versions of packages over time

# PyInstaller
#  Usually these files are written by a python script from a template
@@ -41,6 +42,7 @@ htmlcov/
.tox/
.nox/
.coverage
.coveragerc
.coverage.*
.cache
nosetests.xml
@@ -49,6 +51,7 @@ coverage.xml
*.py,cover
.hypothesis/
.pytest_cache/
.benchmarks/
cover/

# Translations
@@ -73,7 +76,11 @@ docs/_build/

# PyBuilder
.pybuilder/
target/
**/target/*
!**/target/generated-sources/
!**/target/kubernetes/
**/target/kubernetes/kubernetes.json
!**/target/kubernetes/kubernetes.yml

# Jupyter Notebook
.ipynb_checkpoints
@@ -82,10 +89,13 @@ target/
profile_default/
ipython_config.py

# PyCharm
.idea/

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version
.python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
@@ -117,6 +127,9 @@ venv.bak/
.spyderproject
.spyproject

# VSCode project settings
.vscode/

# Rope project settings
.ropeproject

@@ -137,3 +150,8 @@ dmypy.json
# Cython debug symbols
cython_debug/

# Other
/tmp

# Sqlite
*.db

.gitlab-ci.yml

0 → 100644
+26 −0
Original line number Diff line number Diff line
# stages of the cicd pipeline
stages:
  - dependencies
  - build
  - test
  - unit_test
  - integ_test
  - deploy
  - funct_test

# include the individual .gitlab-ci.yml of each micro-service
include:
  - local: '/manifests/.gitlab-ci.yml'
  - local: '/src/monitoring/.gitlab-ci.yml'
  - local: '/src/compute/.gitlab-ci.yml'
  - local: '/src/context/.gitlab-ci.yml'
  - local: '/src/device/.gitlab-ci.yml'
  - local: '/src/service/.gitlab-ci.yml'
  - local: '/src/dbscanserving/.gitlab-ci.yml'
  - local: '/src/opticalattackmitigator/.gitlab-ci.yml'
  - local: '/src/opticalcentralizedattackdetector/.gitlab-ci.yml'
  - local: '/src/automation/.gitlab-ci.yml'
  - local: '/src/webui/.gitlab-ci.yml'
  - local: '/src/l3_distributedattackdetector/.gitlab-ci.yml'
  - local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml'
  - local: '/src/l3_attackmitigator/.gitlab-ci.yml'

INSTALL.md

0 → 100644
+4 −0
Original line number Diff line number Diff line
# TeraFlow OS SDN Controller Installation Instructions 
Assuming you have a running Kubernetes deployment installed following the instructions provided in [Wiki: Installing Kubernetes on your Linux machine](https://gitlab.com/teraflow-h2020/controller/-/wikis/Installing-Kubernetes-on-your-Linux-machine), the following instructions will let you deploy TeraFlow OS SDN Controller in your local Kubernetes environment.

Then, follow the instructions in [Wiki: Deploying a TeraFlow OS test instance](https://gitlab.com/teraflow-h2020/controller/-/wikis/Deploying-a-TeraFlow-OS-test-instance) to deploy your instance of TeraFlow OS.
+14 −5
Original line number Diff line number Diff line
TeraFlow OS
===========
# TeraFlow OS SDN Controller

This project is part of EC 5GPPP project TeraFlow. More information is available at: https://www.teraflow-h2020.eu/
[Teraflow H2020 project](https://teraflow-h2020.eu/) - Secured autonomic traffic management for a Tera of SDN Flows

A detailed description on how to use our framework is available in our wiki page: https://gitlab.com/teraflow-h2020/controller/-/wikis/home
Branch "master" : [![pipeline status](https://gitlab.com/teraflow-h2020/controller/badges/master/pipeline.svg)](https://gitlab.com/teraflow-h2020/controller/-/commits/master) [![coverage report](https://gitlab.com/teraflow-h2020/controller/badges/master/coverage.svg)](https://gitlab.com/teraflow-h2020/controller/-/commits/master)

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 101015857.
Branch "develop" : [![pipeline status](https://gitlab.com/teraflow-h2020/controller/badges/develop/pipeline.svg)](https://gitlab.com/teraflow-h2020/controller/-/commits/develop) [![coverage report](https://gitlab.com/teraflow-h2020/controller/badges/develop/coverage.svg)](https://gitlab.com/teraflow-h2020/controller/-/commits/develop)

# Installation Instructions
To install TeraFlow OS SDN Controller in your local Kubernetes deployment, we assume you deployed Kubernetes following the instructions provided in [Wiki: Installing Kubernetes on your Linux machine](https://gitlab.com/teraflow-h2020/controller/-/wikis/Installing-Kubernetes-on-your-Linux-machine).

Then, follow the instructions in [Wiki: Deploying a TeraFlow OS test instance](https://gitlab.com/teraflow-h2020/controller/-/wikis/Deploying-a-TeraFlow-OS-test-instance) to deploy your instance of TeraFlow OS.

# Functional Tests
A functional test has been defined to enable experimentation with the TeraFlow OS:

__Important:__ The OpenConfigDriver, the P4Driver, and the TrandportApiDriver have to be considered as experimental. The configuration and monitoring capabilities they support are limited or partially implemented. Use them with care.

[Demo at OFC'22 (Bootstrap devices, Manage L3VPN services, Monitor Device Endpoints)](./src/tests/ofc22)
+31 −0
Original line number Diff line number Diff line
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


docker pull ghcr.io/google/addlicense:latest
docker run -it -v ${PWD}:/src ghcr.io/google/addlicense \
    -l apache -c "H2020 TeraFlow (https://www.teraflow-h2020.eu/)" -y 2021-2023 \
    -ignore "data/*" -ignore "data/**" -ignore "tmp/*" -ignore "tmp/**" -ignore "manifests/cttc-ols/*" \
    -ignore "coverage/*" -ignore "coverage/**" -ignore ".vscode/*" -ignore ".vscode/**" \
    -ignore ".git/*" -ignore ".git/**" -ignore "proto/uml/*" -ignore "proto/uml/**" \
    -ignore "src/**/__pycache__/*" -ignore "src/**/__pycache__/**" \
    -ignore "src/.benchmarks/*" -ignore "src/.benchmarks/**" -ignore ".benchmarks/*" -ignore ".benchmarks/**" \
    -ignore "src/.pytest_cache/*" -ignore "src/.pytest_cache/**" -ignore ".pytest_cache/*" -ignore ".pytest_cache/**" \
    -ignore "src/**/target/generated-sources/grpc/*" -ignore "src/**/target/generated-sources/grpc/**" \
    -ignore "src/**/*_pb2.py" -ignore "src/**/*_pb2_grpc.py" \
    -ignore "src/device/service/drivers/openconfig/templates/**/*.xml" \
    -ignore "src/dlt/*" -ignore "src/dlt/**" \
    -ignore "src/**/.mvn/*" -ignore "src/**/.mvn/**" \
    *
Loading