Sign inSign up

measurementlab/dash

By measurementlab

•Updated about 4 years ago

neubot/dash experiment for M-Lab

Image
0

50K+

measurementlab/dash repository overview

⁠Neubot DASH Go client and server

GoDoc Golang Status Coverage Status Go Report Card

This repository contains an implementation of Neubot's DASH experiment client and server, both written in Go.

⁠Server

The server is meant to be deployed at Measurement Lab. For this reason the release procedure for the server, described below, uses Docker. Images will be available as neubot/dash⁠.

⁠Build
docker build -t neubot/dash .
docker tag neubot/dash neubot/dash:`git describe --tags --dirty`-`date -u +%Y%m%d%H%M%S`
⁠Test locally

The following command should work on a Linux system:

rm -f ./certs/cert.pem ./certs/key.pem &&    \
./mkcerts.bash &&                            \
sudo chown root:root ./certs/*.pem &&        \
docker run --network=bridge                  \
           --publish=80:8888                 \
           --publish=443:4444                \
           --publish=9990:9999               \
           --volume `pwd`/certs:/certs:ro    \
           --volume `pwd`/datadir:/datadir   \
           --read-only                       \
           --cap-drop=all                    \
           neubot/dash                       \
           -datadir /datadir                 \
           -http-listen-address :8888        \
           -https-listen-address :4444       \
           -prometheusx.listen-address :9999 \
           -tls-cert /certs/cert.pem         \
           -tls-key /certs/key.pem

This command will run dash-server in a container as the root user, with no capabilities, limiting access to the file system and exposing all the relevant ports: 80 for HTTP based tests, 443 for HTTPS tests, and 9990 to access prometheus metrics.

⁠Release

To push the container at DockerHub, run:

docker push neubot/dash

The procedure to update the version that runs on M-Lab is the following:

  1. open a pull request at m-lab/dash so they know they need to sync from this repo
  2. ask the m-lab staff to pull the tagged version
  3. open a pull request for neubot.jsonnet at m-lab/k8s-support⁠

At this point, neubot/dash is deployed in staging. To test, use

https://locate-dot-mlab-staging.appspot.com/v2/nearest/neubot/dash

as the locate URL instead of the canonical one.

⁠Client

Build using:

go build -v ./cmd/dash-client

Make sure you read PRIVACY.md⁠ before running. The command will anyway refuse to run unless you acknowledge the privacy policy by passing the -y command line flag.

Tag summary

Content type

Image

Digest

sha256:7353e0489…

Size

4.1 MB

Last updated

about 4 years ago

docker pull measurementlab/dash