From 63011dd3930909535d0c9940a0fe39865ae2db63 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 13 Dec 2017 10:31:45 -0800 Subject: [PATCH 1/3] Copies the autopilot settings from the runtime config. Fixes #3730 --- agent/agent.go | 31 ++++++++++--------------------- agent/config/default.go | 6 ++++++ 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/agent/agent.go b/agent/agent.go index 2ebdd1b76..de5371027 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -767,30 +767,19 @@ func (a *Agent) consulConfig() (*consul.Config, error) { if a.config.SessionTTLMin != 0 { base.SessionTTLMin = a.config.SessionTTLMin } - if a.config.AutopilotCleanupDeadServers { - base.AutopilotConfig.CleanupDeadServers = a.config.AutopilotCleanupDeadServers - } - if a.config.AutopilotLastContactThreshold != 0 { - base.AutopilotConfig.LastContactThreshold = a.config.AutopilotLastContactThreshold - } - if a.config.AutopilotMaxTrailingLogs != 0 { - base.AutopilotConfig.MaxTrailingLogs = uint64(a.config.AutopilotMaxTrailingLogs) - } - if a.config.AutopilotServerStabilizationTime != 0 { - base.AutopilotConfig.ServerStabilizationTime = a.config.AutopilotServerStabilizationTime - } if a.config.NonVotingServer { base.NonVoter = a.config.NonVotingServer } - if a.config.AutopilotRedundancyZoneTag != "" { - base.AutopilotConfig.RedundancyZoneTag = a.config.AutopilotRedundancyZoneTag - } - if a.config.AutopilotDisableUpgradeMigration { - base.AutopilotConfig.DisableUpgradeMigration = a.config.AutopilotDisableUpgradeMigration - } - if a.config.AutopilotUpgradeVersionTag != "" { - base.AutopilotConfig.UpgradeVersionTag = a.config.AutopilotUpgradeVersionTag - } + + // These are fully specified in the agent defaults, so we can simply + // copy them over. + base.AutopilotConfig.CleanupDeadServers = a.config.AutopilotCleanupDeadServers + base.AutopilotConfig.LastContactThreshold = a.config.AutopilotLastContactThreshold + base.AutopilotConfig.MaxTrailingLogs = uint64(a.config.AutopilotMaxTrailingLogs) + base.AutopilotConfig.ServerStabilizationTime = a.config.AutopilotServerStabilizationTime + base.AutopilotConfig.RedundancyZoneTag = a.config.AutopilotRedundancyZoneTag + base.AutopilotConfig.DisableUpgradeMigration = a.config.AutopilotDisableUpgradeMigration + base.AutopilotConfig.UpgradeVersionTag = a.config.AutopilotUpgradeVersionTag // make sure the advertise address is always set if base.RPCAdvertise == nil { diff --git a/agent/config/default.go b/agent/config/default.go index 6bc3295c4..1c52c7ac3 100644 --- a/agent/config/default.go +++ b/agent/config/default.go @@ -54,6 +54,12 @@ func DefaultSource() Source { syslog_facility = "LOCAL0" tls_min_version = "tls10" + autopilot = { + cleanup_dead_servers = true + last_contact_threshold = "200ms" + max_trailing_logs = 250 + server_stabilization_time = "10s" + } dns_config = { allow_stale = true udp_answer_limit = 3 From 984de6e2e0181b24ca54c1ab46bd56c20b7cc545 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 13 Dec 2017 10:52:06 -0800 Subject: [PATCH 2/3] Adds TODOs referencing #3744. --- agent/config/default.go | 2 ++ agent/consul/config.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/agent/config/default.go b/agent/config/default.go index 1c52c7ac3..f3a0adfc5 100644 --- a/agent/config/default.go +++ b/agent/config/default.go @@ -54,6 +54,8 @@ func DefaultSource() Source { syslog_facility = "LOCAL0" tls_min_version = "tls10" + // TODO (slackpad) - Until #3744 is done, we need to keep these + // in sync with agent/consul/config.go. autopilot = { cleanup_dead_servers = true last_contact_threshold = "200ms" diff --git a/agent/consul/config.go b/agent/consul/config.go index ffbd35ef9..5bc89ebaa 100644 --- a/agent/consul/config.go +++ b/agent/consul/config.go @@ -416,12 +416,15 @@ func DefaultConfig() *Config { TLSMinVersion: "tls10", + // TODO (slackpad) - Until #3744 is done, we need to keep these + // in sync with agent/config/default.go. AutopilotConfig: &structs.AutopilotConfig{ CleanupDeadServers: true, LastContactThreshold: 200 * time.Millisecond, MaxTrailingLogs: 250, ServerStabilizationTime: 10 * time.Second, }, + ServerHealthInterval: 2 * time.Second, AutopilotInterval: 10 * time.Second, } From b4265aeef15d56a9d3e1073c9575dda8fd798da1 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 13 Dec 2017 11:26:09 -0800 Subject: [PATCH 3/3] Updates the change log. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6629a21f7..7d6fe1af2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ BUG FIXES: * agent: Updated memberlist to pull in a fix for negative RTT measurements and their associated log messages about rejected coordinates. [[GH-3704](https://github.com/hashicorp/consul/issues/3704)] * server: Fixed an issue with KV store tombstone tracking where bin tracking was being confused by monotonic time information carried in time stamps, resulting in many unnecessary bins. [[GH-3670](https://github.com/hashicorp/consul/issues/3670)] * server: (Consul Enterprise) Fixed an issue with Network Segments where servers would not properly flood-join each other into all segments. +* server: Fixed an issue where it wasn't possible to disable Autopilot's dead server cleanup behavior using configuration files. [[GH-3730](https://github.com/hashicorp/consul/issues/3730)] ## 1.0.1 (November 20, 2017)