fsconsul

command module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2015 License: Apache-2.0 Imports: 13 Imported by: 0

README

fsconsul

fsconsul writes data to the filesystem by reading it from Consul's K/V store.

fsconsul allows configuration data to be placed on disk without a consuming application needing to know about the existence of Consul. This makes it especially easy to configure applications throughout all your environments: development, testing, production, etc. On any change, fsconsul will run the provided command, so you can perform any additional actions (restarting your application, for example) necessary.

fsconsul is a port of envconsul which in turn was inspired by envdir in its simplicity, name, and function.

Download & Usage

To install fsconsul, clone this repo into your go workspace and do a go install.

Configuration

fsconsul can be configured entirely by command-line switches, but for more complex cases, you may wish to provide the path to a config JSON file as the -configFile switch. The format of the JSON file is:

{
	"consul" : {
		"addr": "127.0.0.1:8500"
		"dc": "dc1",
		"token" : "my-reader-token"
	},
	"mappings" : [{
		"onchange": "service restart app1",
		"prefix": "/myteam/dev/app1/config/",
		"path": "/etc/app1/",
		"keystore": "/var/lib/encryption_keys"
	},{
		"onchange": "service restart app2",
		"prefix": "/myteam/dev/app2/config/",
		"path": "/etc/app2/",
		"keystore": "/var/app2/encryption_keys"
	}]
}

Run fsconsul to see the usage help:


$ fsconsul
Usage: fsconsul [options] prefix path onchange

  Write files to the specified locations on the local system by reading K/Vs
  from Consul's K/V store with the given prefixes and executing a program on
  any change.  Prefixes and paths must be pipe-delimited if provided as
  command-line switches.

Options:

  -addr="": consul HTTP API address with port
  -configFile="": json file containing all configuration (if this is provided, all other config is ignored)
  -dc="": consul datacenter, uses local if blank
  -keystore="": directory of keys used for decryption
  -once=false: run once and exit
  -token="": token to use for ACL access

CI

Builds are automatically run by Travis on any push or pull request.

Travis Status

TODO

  • Once Consul 0.5 is out, support file deletes.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳