This repository contains Hammer specs for building generic Mantl utilities.
Table of Contents
Dynamic configuration is performed with Consul. The
{package}-dynamic
entries in this README describe the key spaces they look for
to render configuration to disk. Be aware that most of these daemons need to be
restarted when configuration changes, so account for that when you're changing
keys.
In addition to the documented keys under each package, you can set per-node global options for these packages with certain flags. These will be documented in the config files if not set, but here's a short list:
Key | Description |
---|---|
config/nodes/{node}/external_ip |
node's external IP address |
config/nodes/{node}/internal_ip |
node's internal IP address |
config/nodes/{node}/hostname |
node's hostname |
A script to generate certificates with a number of sensible defaults set.
Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) to manage its configuration automatically and dynamically.
A cron.hourly script and a few configuration files to take out the garbage.
Uses spotify/docker-gc
and martin/docker-cleanup-volumes
Docker containers in tandem.
First, spotify/docker-gc
runs, and removes any containers that have been in an exit status for more than an hour.
Spotify's container also supports excluding containers at this step. Two files control this:
/etc/docker-cleanup/docker-gc-exclude
to match image names and docker hashes, and
/etc/docker-cleanup/docker-gc-exclude-containers
to match container names. Both of these files have example lines
for your reference.
Second, martin/docker-cleanup-volumes
removes orphaned Docker volumes, something that removing containers with docker
commands normally does not do. Docker version 1.9 is beginning to address this issue, but this adds support for previous versions.
Packages consul.io with systemd. Check /etc/sysconfig/consul
for
configuration.
Packages consul-template with
systemd. Check /etc/sysconfig/consul-template
for configuration.
Packages consul-cli with the currently released version.
A Distributed, Highly Available, Datacenter-Aware Scheduler
If you're on linux, run hammer
to build all of the packages, which will end up
in out
. If you're on another platform, run ./build.sh
to fire up a Vagrant
VM that will provision itself with hammer and do the same.