From 41e8034184a5b53712beab00cfdb83248d889fb9 Mon Sep 17 00:00:00 2001 From: Ilias Bertsimas Date: Tue, 29 Nov 2016 15:44:48 +0000 Subject: [PATCH 1/4] Add the following parameters in consul config supported in version 0.7.1 and after: - max_stale - reap - retry_join_ec2_tag_key - retry_join_ec2_tag_value - retry_join_ec2_region - serf_lan_bind - serf_wan_bind --- libraries/consul_config.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/consul_config.rb b/libraries/consul_config.rb index f8fbe3e4..58466a24 100644 --- a/libraries/consul_config.rb +++ b/libraries/consul_config.rb @@ -69,10 +69,12 @@ class ConsulConfig < Chef::Resource attribute(:key_file, kind_of: String) attribute(:leave_on_terminate, equal_to: [true, false], default: false) attribute(:log_level, equal_to: %w(INFO DEBUG WARN), default: 'INFO') + attribute(:max_stale, kind_of: String) attribute(:node_name, kind_of: String) attribute(:performance, kind_of: [Hash, Mash]) attribute(:ports, kind_of: [Hash, Mash]) attribute(:protocol, kind_of: String) + attribute(:reap, equal_to: [true, false]) attribute(:reconnect_timeout, kind_of: String) attribute(:reconnect_timeout_wan, kind_of: String) attribute(:recursor, kind_of: String) @@ -82,7 +84,12 @@ class ConsulConfig < Chef::Resource attribute(:retry_interval_wan, kind_of: String) attribute(:retry_join, kind_of: Array) attribute(:retry_join_wan, kind_of: Array) + attribute(:retry_join_ec2_tag_key, kind_of: String) + attribute(:retry_join_ec2_tag_value, kind_of: String) + attribute(:retry_join_ec2_region, kind_of: String) attribute(:rejoin_after_leave, equal_to: [true, false], default: true) + attribute(:serf_lan_bind, kind_of: String) + attribute(:serf_wan_bind, kind_of: String) attribute(:server, equal_to: [true, false], default: true) attribute(:server_name, kind_of: String) attribute(:session_ttl_min, kind_of: String) @@ -107,7 +114,7 @@ class ConsulConfig < Chef::Resource # Transforms the resource into a JSON format which matches the # Consul service's configuration format. def to_json - for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level node_name performance ports protocol reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_wan rejoin_after_leave server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} + for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level max_stale node_name performance ports protocol reap reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_ec2_tag_key retry_join_ec2_tag_value retry_join_ec2_region retry_join_wan rejoin_after_leave serf_lan_bind serf_wan_bind server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} for_keeps << %i{bootstrap bootstrap_expect} if server for_keeps << %i{ca_file cert_file key_file} if tls? for_keeps = for_keeps.flatten From 47253977ded95a5a6c2f5483e464415a14038cc9 Mon Sep 17 00:00:00 2001 From: Ilias Bertsimas Date: Tue, 29 Nov 2016 16:04:21 +0000 Subject: [PATCH 2/4] Use retry_join_ec2 hash instead of parameters. --- libraries/consul_config.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/consul_config.rb b/libraries/consul_config.rb index 58466a24..cff102c4 100644 --- a/libraries/consul_config.rb +++ b/libraries/consul_config.rb @@ -74,6 +74,7 @@ class ConsulConfig < Chef::Resource attribute(:performance, kind_of: [Hash, Mash]) attribute(:ports, kind_of: [Hash, Mash]) attribute(:protocol, kind_of: String) + attribute(:raft_multiplier, kind_of: Integer) attribute(:reap, equal_to: [true, false]) attribute(:reconnect_timeout, kind_of: String) attribute(:reconnect_timeout_wan, kind_of: String) @@ -84,9 +85,7 @@ class ConsulConfig < Chef::Resource attribute(:retry_interval_wan, kind_of: String) attribute(:retry_join, kind_of: Array) attribute(:retry_join_wan, kind_of: Array) - attribute(:retry_join_ec2_tag_key, kind_of: String) - attribute(:retry_join_ec2_tag_value, kind_of: String) - attribute(:retry_join_ec2_region, kind_of: String) + attribute(:retry_join_ec2, kind_of: [Hash, Mash]) attribute(:rejoin_after_leave, equal_to: [true, false], default: true) attribute(:serf_lan_bind, kind_of: String) attribute(:serf_wan_bind, kind_of: String) @@ -114,7 +113,7 @@ class ConsulConfig < Chef::Resource # Transforms the resource into a JSON format which matches the # Consul service's configuration format. def to_json - for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level max_stale node_name performance ports protocol reap reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_ec2_tag_key retry_join_ec2_tag_value retry_join_ec2_region retry_join_wan rejoin_after_leave serf_lan_bind serf_wan_bind server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} + for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level max_stale node_name performance ports protocol reap reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_ec2 retry_join_wan rejoin_after_leave serf_lan_bind serf_wan_bind server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} for_keeps << %i{bootstrap bootstrap_expect} if server for_keeps << %i{ca_file cert_file key_file} if tls? for_keeps = for_keeps.flatten From 7dd2bb7a88c46664afcfeb5ef2a5bbbc91ad759e Mon Sep 17 00:00:00 2001 From: Ilias Bertsimas Date: Tue, 29 Nov 2016 16:17:58 +0000 Subject: [PATCH 3/4] Remove max_stale attribute already part of dns_config hash. --- libraries/consul_config.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/consul_config.rb b/libraries/consul_config.rb index cff102c4..a1ec2e94 100644 --- a/libraries/consul_config.rb +++ b/libraries/consul_config.rb @@ -69,7 +69,6 @@ class ConsulConfig < Chef::Resource attribute(:key_file, kind_of: String) attribute(:leave_on_terminate, equal_to: [true, false], default: false) attribute(:log_level, equal_to: %w(INFO DEBUG WARN), default: 'INFO') - attribute(:max_stale, kind_of: String) attribute(:node_name, kind_of: String) attribute(:performance, kind_of: [Hash, Mash]) attribute(:ports, kind_of: [Hash, Mash]) @@ -113,7 +112,7 @@ class ConsulConfig < Chef::Resource # Transforms the resource into a JSON format which matches the # Consul service's configuration format. def to_json - for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level max_stale node_name performance ports protocol reap reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_ec2 retry_join_wan rejoin_after_leave serf_lan_bind serf_wan_bind server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} + for_keeps = %i{acl_datacenter acl_default_policy acl_down_policy acl_master_token acl_replication_token acl_token acl_ttl addresses advertise_addr advertise_addr_wan atlas_acl_token atlas_infrastructure atlas_join atlas_token atlas_endpoint bind_addr check_update_interval client_addr data_dir datacenter disable_anonymous_signature disable_compression disable_remote_exec disable_update_check dns_config domain enable_debug enable_syslog encrypt leave_on_terminate log_level node_name performance ports protocol reap reconnect_timeout reconnect_timeout_wan recursor recursor_timeout recursors retry_interval retry_interval_wan retry_join retry_join_ec2 retry_join_wan rejoin_after_leave serf_lan_bind serf_wan_bind server server_name session_ttl_min skip_leave_on_interrupt start_join start_join_wan statsd_addr statsite_addr statsite_prefix telemetry syslog_facility translate_wan_addrs udp_answer_limit ui ui_dir verify_incoming verify_outgoing verify_server_hostname watches dev_mode unix_sockets} for_keeps << %i{bootstrap bootstrap_expect} if server for_keeps << %i{ca_file cert_file key_file} if tls? for_keeps = for_keeps.flatten From c82524ff84038e5cf616224696eb1ed4f52d42ae Mon Sep 17 00:00:00 2001 From: Ilias Bertsimas Date: Tue, 29 Nov 2016 16:20:46 +0000 Subject: [PATCH 4/4] Put retry_join_ec2 attribute in correct alphabetical order. --- libraries/consul_config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/consul_config.rb b/libraries/consul_config.rb index a1ec2e94..a4115aa6 100644 --- a/libraries/consul_config.rb +++ b/libraries/consul_config.rb @@ -83,8 +83,8 @@ class ConsulConfig < Chef::Resource attribute(:retry_interval, kind_of: String) attribute(:retry_interval_wan, kind_of: String) attribute(:retry_join, kind_of: Array) - attribute(:retry_join_wan, kind_of: Array) attribute(:retry_join_ec2, kind_of: [Hash, Mash]) + attribute(:retry_join_wan, kind_of: Array) attribute(:rejoin_after_leave, equal_to: [true, false], default: true) attribute(:serf_lan_bind, kind_of: String) attribute(:serf_wan_bind, kind_of: String)