blob: 2f98beab1aa2c45f1d45f23df36a21c6e38a4350 [file] [log] [blame]
Bogdan Capritac87a9142014-07-21 10:38:13 -07001// Package node contains the implementation for the veyron2/mgmt/node APIs.
2//
3// The node manager is a server that is expected to run on every Veyron-enabled
4// node, and it handles both node management and management of the applications
5// running on the node.
6//
7// The node manager is responsible for installing, updating, and launching
8// applications. It therefore sets up a footprint on the local filesystem, both
9// to maintain its internal state, and to provide applications with their own
10// private workspaces.
11//
12// The node manager is responsible for updating itself. The mechanism to do so
13// is implementation-dependent, though each node manager expects to be supplied
14// with the file path of a symbolic link file, which the node manager will then
15// update to point to the updated version of itself before terminating itself.
16// The node manager should therefore be launched via this symbolic link to
17// enable auto-updates. To enable updates, in addition to the symbolic link
18// path, the node manager needs to be told what its application metadata is
19// (such as command-line arguments and environment variables, i.e. the
20// application envelope defined in the veyron2/services/mgmt/application
21// package), as well as the object name for where it can fetch an updated
22// envelope, and the local filesystem path for its previous version (for
23// rollbacks).
24//
25// Finally, the node manager needs to know its own object name, so it can pass
26// that along to the applications that it starts.
27//
28// The impl subpackage contains the implementation of the node manager service.
29//
30// The config subpackage encapsulates the configuration settings that form the
31// node manager service's 'contract' with its environment.
32//
33// The noded subpackage contains the main driver.
34package node