From: whitestar Date: Fri, 3 Nov 2017 13:13:31 +0000 (+0900) Subject: adds data persistent volumes. X-Git-Tag: etcd-grid-0.1.1^0 X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=04321c92b48be9b726ecd95dd48a7f2643f18fd4;p=metasearch%2Fgrid-chef-repo.git adds data persistent volumes. --- diff --git a/cookbooks/etcd-grid/CHANGELOG.md b/cookbooks/etcd-grid/CHANGELOG.md index da97860..858e523 100644 --- a/cookbooks/etcd-grid/CHANGELOG.md +++ b/cookbooks/etcd-grid/CHANGELOG.md @@ -1,5 +1,10 @@ # etcd-grid CHANGELOG +0.1.1 +----- +- refactoring. +- adds data persistent volumes. + 0.1.0 ----- - Initial release of etcd-grid diff --git a/cookbooks/etcd-grid/README.md b/cookbooks/etcd-grid/README.md index 16341cb..baeccb2 100644 --- a/cookbooks/etcd-grid/README.md +++ b/cookbooks/etcd-grid/README.md @@ -37,6 +37,7 @@ This cookbook sets up a etcd cluster. |`['etcd-grid']['node']['port4client']`|String|Port number for client requests.|`'2379'`| |`['etcd-grid']['node']['port4peer']`|String|Port number for peer communication.|`'2380'`| |`['etcd-grid']['docker-compose']['app_dir']`|String||`"#{node['docker-grid']['compose']['app_dir']}/etcd"`| +|`['etcd-grid']['docker-compose']['data_dir']`|String||`"#{node['etcd-grid']['docker-compose']['app_dir']}/data"`| |`['etcd-grid']['docker-compose']['config']`|Hash|`docker-compose.yml` configurations.|See `attributes/default.rb`| ## Usage diff --git a/cookbooks/etcd-grid/attributes/default.rb b/cookbooks/etcd-grid/attributes/default.rb index 5cf9cac..bf085fe 100644 --- a/cookbooks/etcd-grid/attributes/default.rb +++ b/cookbooks/etcd-grid/attributes/default.rb @@ -29,11 +29,13 @@ default['etcd-grid']['cluster']['size'] = 3 # recommended: 3, 5, 7 default['etcd-grid']['node']['port4client'] = '2379' default['etcd-grid']['node']['port4peer'] = '2380' default['etcd-grid']['docker-compose']['app_dir'] = "#{node['docker-grid']['compose']['app_dir']}/etcd" +default['etcd-grid']['docker-compose']['data_dir'] = "#{node['etcd-grid']['docker-compose']['app_dir']}/data" image = "#{node['etcd-grid']['image']['url']}:#{node['etcd-grid']['image']['version']}" cluster_size = node['etcd-grid']['cluster']['size'].to_i port4client = node['etcd-grid']['node']['port4client'] port4peer = node['etcd-grid']['node']['port4peer'] +data_dir = node['etcd-grid']['docker-compose']['data_dir'] nodes = [] services = {} @@ -52,14 +54,19 @@ services = {} ], 'environment' => { 'ETCD_NAME' => "node#{num}", + 'ETCD_DATA_DIR' => "node#{num}.etcd", + 'ETCD_LISTEN_CLIENT_URLS' => "http://etcd#{num}:#{port4client},http://localhost:#{port4client}", + 'ETCD_ADVERTISE_CLIENT_URLS' => "http://etcd#{num}:#{port4client}", + 'ETCD_LISTEN_PEER_URLS' => "http://etcd#{num}:#{port4peer}", 'ETCD_INITIAL_ADVERTISE_PEER_URLS' => "http://etcd#{num}:#{port4peer}", 'ETCD_INITIAL_CLUSTER' => nodes.join(','), - 'ETCD_INITIAL_CLUSTER_STATE' => 'new', 'ETCD_INITIAL_CLUSTER_TOKEN' => 'etcd-test-token', # TODO: stored in Vault. - 'ETCD_LISTEN_CLIENT_URLS' => "http://etcd#{num}:#{port4client},http://localhost:#{port4client}", - 'ETCD_LISTEN_PEER_URLS' => "http://etcd#{num}:#{port4peer}", - 'ETCD_ADVERTISE_CLIENT_URLS' => "http://etcd#{num}:#{port4client}", + 'ETCD_INITIAL_CLUSTER_STATE' => 'new', + 'ETCDCTL_API' => '3', }, + 'volumes' => [ + "#{data_dir}/node#{num}.etcd:/node#{num}.etcd:rw", + ], } } diff --git a/cookbooks/etcd-grid/recipes/docker-compose.rb b/cookbooks/etcd-grid/recipes/docker-compose.rb index e3ccd42..dc2022d 100644 --- a/cookbooks/etcd-grid/recipes/docker-compose.rb +++ b/cookbooks/etcd-grid/recipes/docker-compose.rb @@ -22,10 +22,13 @@ doc_url = 'https://quay.io/repository/coreos/etcd' include_recipe 'platform_utils::kernel_user_namespace' include_recipe 'docker-grid::compose' +cluster_size = node['etcd-grid']['cluster']['size'].to_i app_dir = node['etcd-grid']['docker-compose']['app_dir'] +data_dir = node['etcd-grid']['docker-compose']['data_dir'] [ app_dir, + data_dir, ].each {|dir| resources(directory: dir) rescue directory dir do owner 'root' @@ -35,6 +38,16 @@ app_dir = node['etcd-grid']['docker-compose']['app_dir'] end } +(1..cluster_size).each {|num| + dir = "#{data_dir}/node#{num}.etcd" + resources(directory: dir) rescue directory dir do + owner 'root' + group 'root' + mode '0755' + recursive true + end +} + #config_srvs = node['etcd-grid']['docker-compose']['config']['services'] #override_config_srvs = node.override['etcd-grid']['docker-compose']['config']['services'] #force_override_config_srvs = node.force_override['etcd-grid']['docker-compose']['config']['services'] diff --git a/cookbooks/etcd-grid/version b/cookbooks/etcd-grid/version index 6e8bf73..17e51c3 100644 --- a/cookbooks/etcd-grid/version +++ b/cookbooks/etcd-grid/version @@ -1 +1 @@ -0.1.0 +0.1.1