Design & Motivation
First we will describe how jarvis-cd
is organized and the files that it creates.
Jarvis Config
The Jarvis configuration file is stored under ${JARVIS_ROOT}/config/jarvis_config.yaml
.
It stores the ${CONFIG_DIR}
, ${PRIVATE_DIR}
, and ${SHARED_DIR}
variables described in the Home page.
Additionally, it stores the currently-active hostfile and the set of repos to search for pkgs.
This file essentially determines where Jarvis will store metadata for pipelines.
The resource graph for the current machine is stored under ${JARVIS_ROOT}/config/resource_graph.yaml
.
The resource graph stores information about the machine state, including hardware and networks.
Pkg
s
Jarvis-cd deploys complex applications. In Jarvis, we consider applications
"pkg
s". Pkg
s can be connected to form a pipeline, which is a series of
applications to deploy all at once.
Jarvis has three general pkg
types:
- Service: a program which runs forever, until forcibly stopped.
- Application: a program which runs to a definite completion. For example, run IOR over OrangeFS, BeeGFS, and Hermes.
- Interceptor: Used to intercept code for a benchmark or storage system.
Pipelines
Jarvis-cd provides a CLI to create pipelines. A pipeline specifies an ordered set of configured pkgs to execute. An example of a jarvis pipeline would be as follows: