Skip to content
Cookbook for HubSpot Baragon
Ruby HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
attributes
recipes
resources
templates/default
test/integration
.gitignore
.kitchen.yml
.travis.yml
Berksfile
Gemfile
LICENSE
README.md
chefignore
metadata.rb

README.md

baragon-cookbook

Installs Baragon (service or agent) on a node. Baragon is the loadbalancer management service for HubSpot's Singularity cluster management system.

Supported Platforms

Tested on an extensive range of platforms including Ubuntu 14.04 and nothing else.

Requirements

Zookeeper

Baragon depends on ZooKeeper to store internal state, and perform coordination between multiple BaragonService instances if high availability is desired. Using an existing Zookeeper cluster is totally fine if you happen to have one. Separate Baragon installations can also share the same Zookeeper cluster, provided they use different zkNamespace values.

Nginx

Baragon writes nginx-style config files by default. In theory other load balancers could be used, but the tool is designed around the style of config files used by nginx.

The main requirement is that each application and upstream has its own file containing all necessary configuration directives (as opposed to, say, haproxy, where all configuration is parsed in order from top to bottom from a single, monolithic file).

Attributes

Key Type Description Default
['baragon']['group_name'] String Load Balancer Group Name default
['baragon']['proxy_conf_dir'] String Directory where the proxy config files are placed /tmp
['baragon']['upstream_conf_dir'] String Directory where the upstream config files are placed Value of node['baragon']['proxy_conf_dir']
['baragon']['server_port'] Integer Baragon service listener port 8080

Usage

baragon::server

Include baragon::server in your node's run_list:

{
  "run_list": [
    "recipe[baragon::server]"
  ]
}

…or in a wrapper cookbook:

include_recipe 'baragon::server'

baragon::agent

Include baragon::agent in your node's run_list:

{
  "run_list": [
    "recipe[baragon::agent]"
  ]
}

…or in a wrapper cookbook:

include_recipe 'baragon::agent'

License and Authors

Author:: EverTrue, Inc. (devops@evertrue.com)

You can’t perform that action at this time.