Skip to content

jmccann/consul-docker-cookbook

Repository files navigation

consul-docker

Cookbook to setup consul using docker.

Supported Platforms

Tested And Validated On

  • Ubuntu 16.04

Usage

Recipe: consul-docker::default

Include consul-docker in your run_list.

{
  "run_list": [
    "recipe[consul-docker::default]"
  ]
}

Attributes

Attribute Description Type Default
node['consul-docker']['config'] Hash of configuration environment variables for Consul. Primary way to configure how consul starts. See consul docker image and consul configuration file docs for more information. See .kitchen.yml for examples of using this to drive behavior. Hash nil
node['consul-docker']['entrypoint'] Start the consul container with your own entrypoint. Must be added as volume to container. String nil
node['consul-docker']['port'] Port(s) to expose from docker container. See docker cookbook for more info. Array ['8300', '8301', '8302', '8400', '8500', '8600']
node['consul-docker']['repo'] The docker repo for the image to use String 'consul'
node['consul-docker']['tag'] The docker tag for the image to use String '0.8.3'
node['consul-docker']['sensitive'] Whether to consider container resource sensitive or not Boolean false
node['consul-docker']['vault']['bag'] Vault bag to use for secrets String nil
node['consul-docker']['vault']['items'] Vault items to load into config Array nil
node['consul-docker']['volumes'] Volumes to have added to your container Array nil

ACL Configuration

The .kitchen.yml has an example of setting up ACLs. More info can be found at the ACL System Docs.

Currently this can't be totally automated to work with default deny policy. This is documented at hashicorp/consul#3054 and manual steps required at https://gist.github.com/slackpad/d89ce0e1cc0802c3c4f2d84932fa3234.

TLS Configuration

The .kitchen.yml has an example of setting up TLS for encyption. More info cab be found at the Encryption Docs.

Testing

  • Linting - Cookstyle and Foodcritic
  • Spec - ChefSpec
  • Integration - Test Kitchen

Testing requires ChefDK be installed using it's native gems.

foodcritic -f any -X spec .
cookstyle
rspec --color --format progress

If you run into issues testing please first remove any additional gems you may have installed into your ChefDK environment. Extra gems can be found and removed at ~/.chefdk/gem.

License and Authors

Author:: Jacob McCann (jacob.mccann2@target.com)

Copyright:: 2017, Jacob McCann

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Chef cookbook to setup consul using docker

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published