Remco
remco is a lightweight configuration management tool. It's highly influenced by confd. Remcos main purposes are (like confd's):
- keeping local configuration files up-to-date using data stored in a key/value store like etcd or consul and processing template resources.
- reloading applications to pick up new config file changes
Differences between remco and confd
- Multiple source/destination pairs per template resource - useful for programs that need more than one config file
- Multiple backends per template resource - get normal config values from etcd and secrets from vault
- Pongo2 template engine instead of go's text/template
- Zombie reaping support (if remco runs as pid 1)
- Additional backends can be provided as plugins.
- Create your own custom template filters easily with JavaScript.
- Exec mode similar to consul-template.
Overview
Documentation
See: https://heavyhorst.github.io/remco/
Installation
Building from source
$ go get github.com/HeavyHorst/remco/cmd/remco
$ go install github.com/HeavyHorst/remco/cmd/remco
You should now have remco
in your $GOPATH/bin
directory
Building from the repository
$ git clone https://github.com/HeavyHorst/remco
$ cd remco
$ make
$ ls bin/
remco
Building a given release
$ export VERSION=v0.12.2
$ git checkout ${VERSION}
$ make release -j
$ ls bin/
remco_0.12.2_darwin_amd64.zip remco_0.12.2_linux_amd64.zip remco_0.12.2_windows_amd64.zip remco_darwin remco_linux remco_windows
Using a pre-built release
Download the releases and extract the binary.
$ REMCO_VER=0.12.2
$ wget https://github.com/HeavyHorst/remco/releases/download/v${REMCO_VER}/remco_${REMCO_VER}_linux_amd64.zip
$ unzip remco_${REMCO_VER}_linux_amd64.zip
Optionally move the binary to your PATH
$ mv remco_linux /usr/local/bin/remco
Now you can run the remco command!
Execution
run remco from local dir, configuration is read as default from /etc/remco/config
Command line params:
parameter | description |
---|---|
-config | path to the configuration file |
-onetime | flag to one run templating once, overriding "Onetime" flag for all backend resources |
-version | print version and exit |
Contributing
See Contributing for details on submitting patches.