'''reference-repository''' is Grid'5000's ''single source of truth'' about sites, clusters, nodes, and network topology.
Thereference API data of Grid'5000 is stored in a git repository as JSON files. Those files are organized into hierarchical folders (see data/). The git repository comes with scripts to ease the generation of those API files (see generators/). The generator uses data from input/. The node information (input/grid5000/sites/*/clusters/*/nodes/*.yaml) is fetched using [g5k-checks](https://github.com/grid5000/g5k-checks). The other input files are created manually.
There are several important parts:
The git repository also includes scripts for generating:
* The OAR properties ie. the node information that is registered in OAR databases. OAR properties allow user to select resources matching their experiment requirements.
* The configuration files of the following puppet modules: bindg5kb, conmang5k, dhcpg5k, kadeployg5k and lanpowerg5k.
* data/ is the set of JSON files that describe Grid'5000. They are exposed by the ''reference API'' (for example: `curl -k https://api.grid5000.fr/sid/sites/nancy/clusters/graoully/nodes/graoully-1.json?pretty`
* input/ is the set of YAML files used to generate data/. The files in input/ are either:
+ manually created and edited by admins
+ generated by g5k-checks (this is the case of the nodes descriptions, in the nodes/ directory of each cluster)
* validators and generators
+ to check input/ data for consistency
+ to generate the configuration of various services (and the list of OAR properties)
Automated tasks are provided to validate and generate data:
All tasks are executed using '''rake'''. To see the list of tasks, use '''rake -T'''.