cookbook 'etcd', '= 3.2.1'
etcd
(91) Versions
3.2.1
-
-
9.1.31
-
9.1.30
-
9.1.29
-
9.1.28
-
9.1.27
-
9.1.26
-
9.1.25
-
9.1.24
-
9.1.23
-
9.1.22
-
9.1.21
-
9.1.20
-
9.1.19
-
9.1.18
-
9.1.17
-
9.1.16
-
9.1.15
-
9.1.14
-
9.1.13
-
9.1.12
-
9.1.11
-
9.1.10
-
9.1.9
-
9.1.8
-
9.1.7
-
9.1.6
-
9.1.5
-
9.1.4
-
9.1.3
-
9.1.2
-
9.1.1
-
9.1.0
-
9.0.1
-
9.0.0
-
8.0.0
-
7.0.3
-
7.0.2
-
7.0.1
-
7.0.0
-
6.3.0
-
6.2.0
-
6.1.0
-
6.0.0
-
5.6.3
-
5.6.2
-
5.6.1
-
5.6.0
-
5.5.1
-
5.5.0
-
5.4.0
-
5.3.1
-
5.3.0
-
5.2.1
-
5.1.0
-
5.0.0
-
4.1.1
-
4.1.0
-
4.0.0
-
3.2.5
-
3.2.4
-
3.2.3
-
3.2.2
-
3.2.1
-
3.2.0
-
3.1.6
-
3.1.5
-
3.1.4
-
3.1.3
-
3.1.2
-
3.1.1
-
3.1.0
-
3.0.0
-
2.2.2
-
2.2.1
-
2.2.0
-
2.1.3
-
2.1.2
-
2.1.1
-
2.0.1
-
2.0.0
-
1.3.5
-
1.3.4
-
1.3.3
-
1.3.1
-
1.2.4
-
1.2.3
-
1.2.2
-
1.2.1
-
1.1.1
-
1.1.0
-
1.0.0
Follow10
- 9.1.31
- 9.1.30
- 9.1.29
- 9.1.28
- 9.1.27
- 9.1.26
- 9.1.25
- 9.1.24
- 9.1.23
- 9.1.22
- 9.1.21
- 9.1.20
- 9.1.19
- 9.1.18
- 9.1.17
- 9.1.16
- 9.1.15
- 9.1.14
- 9.1.13
- 9.1.12
- 9.1.11
- 9.1.10
- 9.1.9
- 9.1.8
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.1.2
- 9.1.1
- 9.1.0
- 9.0.1
- 9.0.0
- 8.0.0
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.3.0
- 6.2.0
- 6.1.0
- 6.0.0
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.1
- 5.3.0
- 5.2.1
- 5.1.0
- 5.0.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.3
- 2.1.2
- 2.1.1
- 2.0.1
- 2.0.0
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.1
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.1.1
- 1.1.0
- 1.0.0
Installs and configures etcd
cookbook 'etcd', '= 3.2.1', :supermarket
knife supermarket install etcd
knife supermarket download etcd
Etcd Cookbook
The Etcd Cookbook is a library cookbook that provides custom resources
for use in recipes.
Scope
This cookbook is concerned with the Etcd
distributed key/value store as distributed by CoreOS, Inc.
Requirements
- Chef 12.0.0 or higher. Chef 11 is NOT SUPPORTED, please do not open issues about it.
- Ruby 2.1 or higher (preferably, the Chef full-stack installer)
- Network accessible web server hosting the etcd binary.
Platform Support
The following platforms have been tested with Test Kitchen. It will
most likely work on other platforms as well
|--------------+-------+
| | 2.2.2 |
|--------------+-------+
| debian-8 | X |
|--------------+-------+
| centos-5 | X |
|--------------+-------+
| centos-6 | X |
|--------------+-------+
| centos-7 | X |
|--------------+-------+
| fedora-21 | X |
|--------------+-------+
| ubuntu-12.04 | X |
|--------------+-------+
| ubuntu-14.04 | X |
|--------------+-------+
| ubuntu-15.10 | X |
|--------------+-------+
Cookbook Dependencies
Usage
- Add
depends 'etcd', '~> 3.0'
to your cookbook's metadata.rb - Use the resources shipped in cookbook in a recipe, the same way you'd use core Chef resources (file, template, directory, package, etc).
etcd_service 'etcd0' do advertise_client_urls 'http://127.0.0.1:2379,http://127.0.0.1:4001' listen_client_urls 'http://0.0.0.0:2379,http://0.0.0.0:4001' initial_advertise_peer_urls 'http://127.0.0.1:2380' listen_peer_urls 'http://0.0.0.0:2380' initial_cluster_token 'etcd-cluster-1' initial_cluster 'etcd0=http://127.0.0.1:2380,etcd1=http://127.0.0.1:3380,etcd2=http://127.0.0.1:4380' initial_cluster_state 'new' action :start end etcd_service 'etcd1' do advertise_client_urls 'http://127.0.0.1:3379,http://127.0.0.1:5001' listen_client_urls 'http://0.0.0.0:3379,http://0.0.0.0:5001' initial_advertise_peer_urls 'http://127.0.0.1:3380' listen_peer_urls 'http://0.0.0.0:3380' initial_cluster_token 'etcd-cluster-1' initial_cluster 'etcd0=http://127.0.0.1:2380,etcd1=http://127.0.0.1:3380,etcd2=http://127.0.0.1:4380' initial_cluster_state 'new' action :start end etcd_service 'etcd2' do advertise_client_urls 'http://127.0.0.1:4379,http://127.0.0.1:6001' listen_client_urls 'http://0.0.0.0:4379,http://0.0.0.0:6001' initial_advertise_peer_urls 'http://127.0.0.1:4380' listen_peer_urls 'http://0.0.0.0:4380' initial_cluster_token 'etcd-cluster-1' initial_cluster 'etcd0=http://127.0.0.1:2380,etcd1=http://127.0.0.1:3380,etcd2=http://127.0.0.1:4380' initial_cluster_state 'new' action :start end
Test Cookbooks as Examples
The cookbooks ran under test-kitchen make excellent usage examples.
The test recipes are found at:
ruby
test/cookbooks/etcd_test/
Resources Overview
-
etcd_service
: composite resource that uses etcd_installation and etcd_service_manager -
etcd_installation
: automatically selects an installation method -
etcd_service_manager
: automatically selects a service manager etcd_key
: manages keys in etcdetcd_installation_binary
: copies a pre-compiled etcd binary onto disketcd_installation_docker
: pulls a docker image to the DOCKER_HOSTetcd_service_manager_execute
: manage etcd daemon with Chefetcd_service_manager_sysvinit
: manage etcd daemon with a sysvinit scriptetcd_service_manager_upstart
: manage etcd daemon with upstart scriptetcd_service_manager_systemd
: manage etcd daemon with systemd unit filesetcd_service_manager_docker
: starts a docker process on the DOCKER_HOST
Resources Details
etcd_installation
The etcd_installation
resource auto-selects one of the below
resources with the provider resolution system. Currently only the
binary installation is available. Packages will be supported in the
future versions.
Example
etcd_installation 'default' do action :create end
etcd_installation_binary
The etcd_installation_binary
resource copies the precompiled Go binary onto
the disk. It exists to help run older Etcd versions. It should not
be used in production, especially with devicemapper.
Example
etcd_installation_binary 'default' do version '2.2.2' source 'https://my.computers.biz/dist/etcd' checksum '90aff7364caa43932fd46974825af20e0ecb70fe7e01981e2d3a496106f147e7' action :create end
etcd_installation_docker
The etcd_installation_docker
resource uses the docker_image
resource
to pull an image to the DOCKER_HOST.
Properties
-
repo
- The image name to pull. Defaults to 'quay.io/coreos/etcd' -
tag
- The image tag to pull. -
version
- String used to calculate tag string when tag is ommited. Defaults to '2.2.2'
etcd_service_manager
The etcd_service_manager
resource auto-selects one of the below
resources with the provider resolution system. The
etcd_service
family all share a common set of properties, which
are listed under the etcd_service
composite resource.
Example
etcd_service_manager 'default' do action :start end
etcd_service_manager_execute
Example
etcd_service_manager_execute 'default' do action :start end
etcd_service_manager_sysvinit
Example
etcd_service_manager_sysvinit 'default' do action :stop end
etcd_service_manager_upstart
Example
etcd_service_manager_upstart 'default' do action :start end
etcd_service_manager_systemd
Example
etcd_service_manager_systemd 'default' do action :start end
etcd_service_manager_docker
Example
etcd_service_manager_docker 'default' do action :start end
properties
- repo - defaults to 'quay.io/coreos/etcd'
- tag - default calculated from version
- version - defaults to '2.2.2',
- container_name - defaults to resource name
- port - defaults to ['2379/tcp4:2379', '4001/tcp4:4001']
etcd_service
The etcd_service
: resource is a composite resource that uses
etcd_installation
and etcd_service_manager
resources.
- The
:create
action uses anetcd_installation
- The
:delete
action uses anetcd_installation
- The
:start
action uses anetcd_service_manager
- The
:stop
action uses anetcd_service_manager
The service management strategy for the host platform is dynamically
chosen based on platform, but can be overridden.
Properties
The etcd_service
resource property list corresponds to the options
found in
Etcd Configuration Flags documentation
- Member flags
source
node_name
data_dir
wal_dir
-
snapshot_count
snapshot to disk. heartbeat_interval
election_timeout
listen_peer_urls
listen_client_urls
max_snapshots
max_wals
cors
Clustering Flags
initial
initial_advertise_peer_urls
initial_cluster
initial_cluster_state
initial_cluster_token
advertise_client_urls
discovery
discovery_srv
discovery_fallback
discovery_proxy
Proxy Flags
proxy
-proxy_failure_wait
proxy_refresh_interval
proxy_dial_timeout
proxy_write_timeout
proxy_read_timeout
Security Flags
cert_file
key_file
client_cert_auth
trusted_ca_file
peer_cert_file
peer_key_file
peer_client_cert_auth
peer_trusted_ca_file
Logging Flags
debug
Unsafe Flags
force_new_cluster
Experimental Flags
experimental_v3demo
Misc
http_proxy
https_proxy
no_proxy
auto_restart
etcd_key
The etcd_key
resource sets, watches and deletes keys in etcd.
Actions
- The
:set
action sets a key - The
:delete
action deletes a key - The
:watch
action waits for a key to update
Properties
-
key
- The key name -
value
- The desired value -
ttl
- The ttl for the key (optional) -
host
- The hostname of the etcd server, defaults to127.0.0.1
-
port
- The port that etcd is listening on, defaults to2379
Examples
etcd_key "/test" do
value "a_test_value"
action :set
end
License and Author
Original Author | Jesse Nelson |
Contributor | Soulou |
Contributor | Aaron O'Mullan |
Contributor | Anthony Scalisi |
Contributor | Robert Coleman |
Contributor | James Gregory |
Contributor | Sean OMeara |
Copyright | Copyright (c) 2013, Jesse Nelson |
License
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.
3.2.1
- Adding etcd_key resource
- Removing unused property previous_state
- Adding desired_state: false to various properties
3.2.0
- Adding etcd_key resource
3.1.6
- Fix redirecting stderr to stdout in upstart manaager
3.1.5
- Fix timeout pattern in systemd-wait-ready
3.1.4
- Fixing up docker service manager tests
3.1.3
- Fixing incorrectly named classes in service managers
3.1.2
- Fixing wait-ready script to use etcdctl_cmd
3.1.1
- Adding docker to etcd_service
3.1.0
- Supporting run_user on service manager resources
3.0.0
- New major version, non-backwards compatible with 2.x.x
- Rewritten as Custom Resources
- Defaulting to etcd version 2.2.2
2.2.2
- update to etcd 0.4.6
- adds debian support
2.2.1
- update to etcd 0.4.5
- Add centos 7 support
- Support centos cloud images without tar
- Dry out compile time recipe
- Move to berks3
2.2.0
- update to etcd 0.4.2
- Removed node[:etcd][:local] No longer needed in new etcd. Etcd will default bind :4001 and :7001. The cookbook default is now to use node[:ipaddress] as the addr and peer_addr.
- add auto-respawn instruction in upstart config file
- Fix Gem deps in the ci build
2.1.3
- add peer and peer_addr support / attributes
- add name attribute and computation
- fixup cmdline argument computation
- ensure cluster members are always sorted
- fix spec tests
2.1.2
- fix bug in cluster recipe where Resolv was spelled wrong
- fix kitchen test on cluster to pickup this issue.
- add basic chefspec as well to ensure this sort of issue doesn't occur
- fix bug with name attribute methods
- fix searching for wrong recipe when using cluster recipe
2.1.1
- update to etcd 0.3.0
- Add support for new discovery mode
- refactor common functions into library methods
- Add specs
- Use rubocop to replace tailor/cane
- Fixup testing (add travis integration)
2.0.0
- update to etcd 0.2.0
- remove
name_switch
attribute. It was marked for deprication in 1.3 - enable snapshotting by default
- add optional local listener
- support chef-solo
- Add support of explicitely specifying a cluster's nodes
1.3.5
- silence foodcritic by accessing attributes in a consistent manner,
- trigger a restart when etcd conf is updated
- include git if source install
- metadata depends on git recipe
- Update Documentation
- Update contributors
1.3.4
- fix compile_time to use the right tarball path
1.3.3
- Bump to etcd 1.2
- Added source install recipe
1.3.1
- default binding to node[:ipaddress]
1.2.4
- update to etcd 0.1.1 release
- add compile_time recipe that does the whole bit in chef compile time
1.2.3
- hotfix to add missing
node[:etcd][:env_scope]
attribute - bugfix: use
node[:fqdn]
instead of hostname when matching local machine name
1.2.2
- add cluster recipe for setting up clusters of etcd nodes
- re-add seed-node attribute
1.2.1
- fix the startup args so it is easier to specify custom args
- supports release version and current master on git
- add in tests for both release and git versions of etcd
1.1.1
- Make everything work with release 0.1.0 of etcd
- fixup some syntax issues
1.1.0
- move binary install to using coreos/etcd releases from github
- for now the install locattion is fixed to /usr/local and links in /usr/local/bin
- Use ark for managing tarballs
- move bats tests to using etcdctl instead of curl
Foodcritic Metric
3.2.1 passed this metric
3.2.1 passed this metric