Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    fleet-atcpublic

    Fleet-ATC

    Fleet Air Traffic Controller (fleet-atc) manages processes that run on your fleet drones.

    fleet is an excellent tool to manage processes in a cluster. However respawning commands after an such as a server reboot can be difficult. fleet-atc allows you to specify and execute all your fleet spawn commands across all your repos with a single command.

    Installation

    [sudo] npm install -g fleet-atc

    Installing globally will create a command line tool fleet-atc that you can use to manage your spawned fleet processes

    Usage

    Create an empty git repo in a fresh directory. Add a fleet.json file with a default hub.

    fleet.json

    {
      "remote": {
      "default": {
        "hub": "localhost:7000",
        "secret": "beepboop"
      }
    }

    spawn.json In this directory also create a spawn.json

    The spawn.json file indicates what process you want to ensure get spawned. Each element in the spawn.json file should contain the command you wish to pass to the fleet-spawn command, as well as the directory of the repo. The directory can either be an absolute path or a relative path to the current directory containing the spawn.json file.

    [
      {
        "command": "node grapeServer.js",
        "directory": "../grapes/",
      },
      {
        "command": "node catsServer.js",
        "directory": "../cats/",
        "drone": "drone001"
      },
    ]

    In the example above, there are 2 repos, grapes.git and cats.git. In each repo you want to issue a different spawn command. fleet-atc will go into each repo specified and execute the given command. Note that you can optionally specify a drone name if the spawned process needs to run on a specific drone. Internally fleet-atc calls fleet-spawn --drone=drone1 if you specify drone: drone1

    To spawn everything in the spawn.json file, execute in the same directory

    fleet-atc

    If any of the elements in spawn.json has already been spawned and thus appears in the output of fleet-ps, fleet-atc will ignore it and move on to the next element

    Deploy

    If you wish, you can have fleet-atc deploy the lastest commit of your repo before running the spawn command. To enable deployment, set "deploy": true in your spawn.json element. You can also enable deploy across all repos by passing the command line argument --deploy=true. Note that the individual deploy directives in spawn.json will override the command-line --deploy argument

    [
      {
        "command": "node grapeServer.js",
        "directory": "../grapes/",
        "deploy": true
      },
      {
        "command": "node catsServer.js",
        "directory": "../cats/",
        "drone": "drone001"
      },
    ]

    Todo

    Allow users to specify the max number of times a process can be spawned by including an optional maxProcesses field in the json element. Currently fleet-atc only allows for 1 process for a given repo directory and command

    Keywords

    none

    install

    npm i fleet-atc

    Downloadsweekly downloads

    18

    version

    0.0.7

    license

    none

    last publish

    collaborators

    • avatar