cookbook 'kvexpress', '= 1.1.1'
kvexpress (4) Versions 1.1.1 Follow0
Installs/Configures kvexpress
cookbook 'kvexpress', '= 1.1.1', :supermarket
knife supermarket install kvexpress
knife supermarket download kvexpress
kvexpress Cookbook
Installs kvexpress and provides an LWRP to use it from within Chef.
Requirements
- Consul
- Ubuntu
If you're not using Ubuntu - you can download binary releases from Github.
Attributes
default['kvexpress']['version'] = '1.9-1' default['datadog']['url'] = 'https://app.datadoghq.com' # Where to place the JSON watches. default['consul']['config_dir'] = '/etc/consul.d' # If you're using Consul ACLs to protect the 'kvexpress/' KV space and kvexpress::server_config: # default['consul']['acl']['kvexpress'] = 'acl-goes-here' # If you're using the Datadog API to send events and kvexpress::server_config: # default['datadog']['api_key'] = 'api_key_goes_here' # default['datadog']['application_key'] = 'app_key_goes_here' # If you're using the Datadog agent: default['kvexpress']['dogstatsd'] = false
Default Usage with a Consul watch
Use kvexpress::default
to install the binary.
Use the LWRP to get configuration from Consul during a Chef run - here's an example kvexpress resource:
kvexpress 'consul_dns_hosts' do location '/etc/hosts.consul' compress true key 'hosts' mode '00644' command 'sudo pkill -HUP dnsmasq' notifies :reload, 'service[consul]', :delayed end
During the Chef run, that resource will do the following:
- If there's no file at
/etc/hosts.consul
, it will try to download the keykvexpress/hosts/data
and save it. It will fail silently if there's no key there - that's by design. - It will create a Consul watch inside of
/etc/consul.d
and reload Consul so any updates are automatically replicated. - If it saves a new file, it will send a SIGHUP to dnsmasq to reload it.
The Consul watch will look something like this:
{ "watches": [ { "type": "key", "key": "/kvexpress/hosts/checksum", "handler": "kvexpress out -k hosts -f /etc/hosts.consul -l 10 -c 00644 -e 'sudo pkill -HUP dnsmasq' -z true" } ] }
If you don't use Chef - you can manually create the JSON needed for the Consul watch - use the above as a template.
Ad-Hoc Usage with Consul exec
Detailed here.
Contributing
We love pull requests from anyone. Details are available here.
Code of Conduct
This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.
Dependent cookbooks
apt >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
kvexpress CHANGELOG
This file is used to list changes made in each version of the kvexpress cookbook.
0.1.0
- [Darron Froese] - Initial release of kvexpress
0.2.0
- [Darron Froese] - Added
kvexpress_group
for subgroup deployments.
1.0.0
- [Darron Froese] - Public release.
Foodcritic Metric
1.1.1 passed this metric
1.1.1 passed this metric