/remco

remco is a lightweight configuration management tool

Primary LanguageGoMIT LicenseMIT

Build Status Go Report Card MIT licensed

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

remco 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.