Newer
Older
TeraFlow Traffic Engineering Service
====================================
This service is mean as an example of a Teraflow Service made in Erlang.
The Traffic Engineering service is tested on Ubuntu 20.04. Follow the instructions below to build, test, and run this service on your local environment.
## Build
First the TeraFlow protocol buffer code must have been generated:
$ ../../proto/generate_code_erlang.sh
Then the TE service can be built:
$ rebar3 compile
## Execute Unit Tests
$ rebar3 eunit
## Run Service Console
First you need to crete a configuration file if not already done, and customize it if required:
$ cp config/dev.config.template config/dev.config
Then you can start the service in console mode:
$ rebar3 shell
## Docker
### Build Image
The docker image must be built from the root of the Teraflow project:
$ docker build -t te:dev -f src/te/Dockerfile .
### Run a shell from inside the container
$ docker run -ti --rm --entrypoint sh te:dev
### Run Docker Container
$ docker run -d --name te --init te:dev
### Open a Console to a Docker Container's Service
$ docker exec -it te /tfte/bin/tfte remote_console
### Show Logs
$ docker logs te
## Kubernetes
### Open a Console
$ kubectl --namespace tfs exec -ti $(kubectl --namespace tfs get pods --selector=app=teservice -o name) -c server -- /tfte/bin/tfte remote_console
$ kubectl --namespace tfs logs $(kubectl --namespace tfs get pods --selector=app=teservice -o name) -c server
## Teraflow
To build and deploy the TE service as part of Teraflow, the following line must be added or uncomented in your `my_deploy.sh`:
export TFS_COMPONENTS="${TFS_COMPONENTS} te"