Skip to main content

Conventions

Roverd looks for some information stored in files on disk. The following are the conventions for filenames and their contents which roverd assumes.

System PathTypeDescription
/etc/roverd/roverd.yamlYAML fileMain runtime configuration of the rover's pipeline, validated by roverd.
/etc/roverd/info.txtText fileSimple read-only file generated by ansible which has id, rover_name and password_hash separated by newlines
/etc/roverd/daemonsDirectoryContains the long-running services that live with roverd. Completely invisible to the API and thus the user.
/home/debix/.rover/DirectoryMain configuration directory containing all services and source code. More detailed information below.

The /etc/roverd/roverd.yaml File

Contains the main run-time configuration of the rover. Currently only consists of list of enabled services, for example:

enabled:
- /home/debix/.rover/vu-ase/imaging/1.0.0
- /home/debix/.rover/vu-ase/controller/1.0.0
- /home/debix/.rover/vu-ase/actuator/1.0.0

The ~/.rover Directory

We assume by default all rovers are used with the default debix user which means that the placing the .rover directory into the home directory of this user will never change. This directory contains all services on the system, regardless of whether they are enabled or not. Each service is fully qualified through the following directory hierarchy:

~/.rover/{author}/{service}/{version}/

  • author - For example, all service provided by the ase team will have the github organization name here, so the author in this case would be "vu-ase".
  • service - The name of a service, for example "controller".
  • version - The SemVer of the service, for example "0.1.0".

The /etc/roverd/info.txt File

12
zenith
e887ecf790605da0544a71b29fe91f21a44a0ec2d5934d77a06831a7d0afc2fa

This static file is created during the setup and never changes. The id and name of the rover are on the first and second line respectively. They both serve as unique identifiers of a rover in the fleet. On the third line is a sha256 digest of the string of the debix user's password which is also "debix".

The hash is checked by roverd for all web authentication. This file should be read-only and must be protected with elevated privileges.

NOTE: Currently all rovers have the same password "debix", however we have the option to change this in the future.