Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 1 | // 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. |
| 34 | package node |