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
Show Logs
$ 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"