Nostalgic Punchcard Missing

    denver

    0.3.2 • Public • Published

    denver

    Denver

    Travis

    Create layers of ENV variables saved to etcd and deploy docker containers using them

    installation

    $ npm install denver -g
    

    usage

    denver will save ENV variables for a stack under a key in etcd.

    it will merge stacks in order so one stack can inherit from another.

    it will spit out stacks environment in a few useful formats.

    api

    var den = denver(options)

    create a new denver object using the options:

    • host - the etcd host (defaults to 127.0.0.1)
    • port - the etcd port (defaults to 4001)
    • key - the base key (default to /denver)

    You can always use the envrionment variables to set these values:

    • DENVER_HOST
    • DENVER_PORT
    • DENVER_KEY
    var denver = require('denver');
     
    var den = denver({
        host:'127.0.0.1',
        port:4001,
        key:'/denver'
    });

    den.set(stack, key, value, callback)

    set a value for a stack

    den.set('app1', 'test', 'hello', function(err){
        // value is written
    })

    den.get(stack, key, callback)

    get a value from a stack

    den.get('app1', 'test', function(err, value){
        // value is here!
    })

    den.ls(callback)

    list all of the stacks

    den.ls(function(err, stacks){
        // stacks is an array of stack names
    })

    den.rm(stack, callback)

    remove a stack from the db

    den.rm('app1', function(err){
        // the app is gone
    })

    den.env(stacks, callback)

    get an object with the values for the environment that is created from merging the stacks array.

    den.env([
        'basestack',
        'applicationstack'
    ], function(err, env){
        // env is an object that is a merged stack env
    })

    You can also just get a single stack env:

    den.env('app1', function(err, env){
     
    })

    events

    den.on('set', function(stack, key, value){})

    emitted when a value is set

    den.on('del', function(stack, key, value){})

    emitted when a value is deleted

    cli

    denver ls

    List the stack names we have environments for

    $ denver ls

    denver rm

    Remove a stack from the database

    $ denver rm myapp

    denver get

    Print the value of a single environment variable

    $ denver get myapp ADMIN_EMAIL

    denver set

    Write the value of a single environment variable

    $ denver set myapp ADMIN_EMAIL bob@thebuilder.com

    denver del

    Remove a value from an environment

    $ denver del myapp ADMIN_EMAIL

    denver env

    Print the whole environment for a stack

    $ denver env myapp

    You can 'merge' several stacks with the env command - this lets you have 'global' envs or whatever:

    $ denver env defaultenv myapp

    When you merge - the last stack will take precendence - so myapp -> ADMIN_EMAIL would overwrite defaultenv -> ADMIN_EMAIL.

    You can merge as many stacks as you want.

    denver docker

    You can also print the environment in a docker friendly format:

    $ denver docker defaultenv myapp
    

    This would output:

    -e ADMIN_EMAIL=bob@thebuilder.com -e HOSTNAME=bobthebuilder.com
    

    denver inject

    Read env vars one per line from stdin

    file - myenv.txt:

    HELLO=world
    ADMIN_EMAIL=bob@thebuilder.com
    
    $ cat myenv.txt | denver inject myapp
    $ denver docker myapp

    This would print:

    -e HELLO=world -e ADMIN_EMAIL=bob@thebuilder.com
    

    license

    MIT

    Install

    npm i denver

    DownloadsWeekly Downloads

    2

    Version

    0.3.2

    License

    MIT

    Last publish

    Collaborators

    • binocarlos