SR2017 Deployment - PeterJCLaw/srcomp GitHub Wiki

This page provides an outline of the deployment of SRComp pieces used for the SR2017 competition

The basic structure of SRComp is that a collection of tools and services operate on a "compstate" git repo (specifically http://github.com/srobo/sr2017-comp this year) which contains information about the competition.

GitHub

Hosts the main compstate (http://github.com/srobo/sr2017-comp)

Heroku

On Heroku we hosted copies of:

Main server (saffron)

Saffron will hosted:

Venue server (compbox)

Compbox hosted:

  • The internal HTTP API
    • The live compstate for the API (/srv/state)
    • The reference compstate for the API (/home/srcomp/compstate.git)
  • The competition state stream
  • The arena, shepherding and venue screens
  • An instance of the system monitoring page, which checks:
    • internet uplink
    • compbox stream and API being up
    • saffron API being up
    • IDE (hosted on saffron) being up
    • compbox state and saffron state being in sync
    • heroku stream being up

This was a raspberry Pi 3 which Peter configured ahead of the competition.

Network

The arena area network was the only hardwire network at the competition this year. The external networking contractor provided a hardwire connection to the internet, which was then fed into an OpenWRT box called "littleblackrouter".

That router had been configured with the MAC addresses of the Pis in order to give the fixed IPs. It was intended to host DNS, but this didn't seem to work on

Score-entry machines

There were two score-entry stations, Tom used his laptop to check the score entry. We hired a laptop from ITR for the primary.

SRComp admin laptop(s)

The people doing SRComp admin (both making sure the system stays up and deploying updates to the state) had a copy of the entire SRComp suite on their machines.

Compstate deployment

Actual compstate deployment is performed using the 'srcomp' user on each of the hosts, per the descriptions on Trac Ticket 2496 and Trac Ticket 2664 (mostly Trac Ticket 2496 on the former).

This is implemented by the srcomp-cli deploy command.

Screens

Kiosk screens as follows:

  • 1 on each arena start corner (4 per arena)
  • 1 shepherding screen, in the betting shop in the staging area. This was originally on a table by the staging area entrance but was moved inside the betting shop so that the person monitoring it (and relaying instructions to the shepherds) was somewhere quiet.
  • 1 staging screen, on the desk with the robot badges and competition usb keys. This was also originally on a table by the staging area entrance but was moved so that it could more easily be seen by the person managing the badges and usb keys.
  • 2 large 'outside' displays showing a rotating informational display, including:
    • Knockout diagram (see also Trac Ticket 3218, this was visually too large)
    • League leaderboard
    • All league points
    • Match schedule

All screens will ran on Raspberry Pis which SR already owns. SR also has 6 screens. 4 were used for the areans, 4 more will need to be hired. The other 2 SR owned screens were used for the shepherding/staging screens (on desk mounts).

Hardware Summary

  • 4 "small" displays per arena facing inwards, on unicol stands. Each with Pi.
  • 2 big displays, on unicol stands, each with pi. On bottom and top floor.
  • Shepherding: 2 "small" displays, each with pi on a desk stand.
  • Competition box: VM image running on one of the router boxes
  • 1 comp-ops workstation (Peter on his laptop)
  • 2 score entry workstations:
    • 1 was Tom on his laptop
    • 1 was a laptop hired from ITR (which was sent to Peter ahead of the competition for setting up)

Total pis required: 12