From a51f9981b0dd843009ab2c2bfa98d9c67011d278 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 14 Dec 2022 16:00:22 -0600 Subject: [PATCH 1/5] docs(command/agent): fix copy-paste error --- command/agent/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/agent/config.go b/command/agent/config.go index 1266ad26d0f..60de2d2eaad 100644 --- a/command/agent/config.go +++ b/command/agent/config.go @@ -547,7 +547,7 @@ type ServerConfig struct { RetryIntervalHCL string `hcl:"retry_interval" json:"-"` // RejoinAfterLeave controls our interaction with the cluster after leave. - // When set to false (default), a leave causes Consul to not rejoin + // When set to false (default), a leave causes Nomad to not rejoin // the cluster until an explicit join is received. If this is set to // true, we ignore the leave, and rejoin the cluster on start. RejoinAfterLeave bool `hcl:"rejoin_after_leave"` From 344d877d31e8a488148d59460aa89c10eec307c9 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 14 Dec 2022 16:25:17 -0600 Subject: [PATCH 2/5] fix(nomad): rejoin_after_leave configuration was not used --- .changelog/15552.txt | 3 +++ command/agent/agent.go | 1 + nomad/server.go | 1 - website/content/docs/upgrade/upgrade-specific.mdx | 14 ++++++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .changelog/15552.txt diff --git a/.changelog/15552.txt b/.changelog/15552.txt new file mode 100644 index 00000000000..61f2ad4115a --- /dev/null +++ b/.changelog/15552.txt @@ -0,0 +1,3 @@ +```release-note:bug +server: Fixed a bug where rejoin_after_leave config was not being respected +``` diff --git a/command/agent/agent.go b/command/agent/agent.go index 9b61112cf00..900b16f3f2d 100644 --- a/command/agent/agent.go +++ b/command/agent/agent.go @@ -309,6 +309,7 @@ func convertServerConfig(agentConfig *Config) (*nomad.Config, error) { conf.RPCAddr.IP = rpcAddr.IP conf.SerfConfig.MemberlistConfig.BindPort = serfAddr.Port conf.SerfConfig.MemberlistConfig.BindAddr = serfAddr.IP.String() + conf.SerfConfig.RejoinAfterLeave = agentConfig.Server.RejoinAfterLeave // Set up the advertise addresses rpcAddr, err = net.ResolveTCPAddr("tcp", agentConfig.AdvertiseAddrs.RPC) diff --git a/nomad/server.go b/nomad/server.go index a0b0bf16fb4..a796a393161 100644 --- a/nomad/server.go +++ b/nomad/server.go @@ -1531,7 +1531,6 @@ func (s *Server) setupSerf(conf *serf.Config, ch chan serf.Event, path string) ( return nil, err } } - conf.RejoinAfterLeave = true // LeavePropagateDelay is used to make sure broadcasted leave intents propagate // This value was tuned using https://www.serf.io/docs/internals/simulator.html to // allow for convergence in 99.9% of nodes in a 10 node cluster diff --git a/website/content/docs/upgrade/upgrade-specific.mdx b/website/content/docs/upgrade/upgrade-specific.mdx index 4d18594d8be..d7d79fcc272 100644 --- a/website/content/docs/upgrade/upgrade-specific.mdx +++ b/website/content/docs/upgrade/upgrade-specific.mdx @@ -62,6 +62,20 @@ from the Nomad client by setting [`set_environment_variables`][artifact_env]. The use of filesystem isolation can be disabled in Client configuration by setting [`disable_filesystem_isolation`][artifact_fs_isolation]. +## Nomad 1.4.4 + +#### Server `rejoin_after_leave` (default: `false`) now enforced + +All Nomad versions prior to v1.4.4 have incorrectly ignored the Server [`rejoin_after_leave`][rejoin_after_leave] +configuration option. This bug has been fixed in Nomad version v1.4.4. + +Previous to v1.4.4 the behavior of Nomad `rejoin_after_leave` was always `true`, regardless of +Nomad server configuration, while the documentation incorrectly indicated a default of `false`. + +Cluster operators should be aware that explicit `leave` events (such as `nomad server force-leave`) +will now result in behavior which matches this configuration, and should review whether they +were inadvertently relying on the buggy behavior. + ## Nomad 1.4.0 #### Possible Panic During Upgrades From 03f57854ea20936686bf1c900b7524acd0583e65 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Fri, 6 Jan 2023 17:16:13 -0600 Subject: [PATCH 3/5] docs: move rejoin_after_leave doc to 1.5.0 release --- website/content/docs/upgrade/upgrade-specific.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/content/docs/upgrade/upgrade-specific.mdx b/website/content/docs/upgrade/upgrade-specific.mdx index d7d79fcc272..9063065f57b 100644 --- a/website/content/docs/upgrade/upgrade-specific.mdx +++ b/website/content/docs/upgrade/upgrade-specific.mdx @@ -62,8 +62,6 @@ from the Nomad client by setting [`set_environment_variables`][artifact_env]. The use of filesystem isolation can be disabled in Client configuration by setting [`disable_filesystem_isolation`][artifact_fs_isolation]. -## Nomad 1.4.4 - #### Server `rejoin_after_leave` (default: `false`) now enforced All Nomad versions prior to v1.4.4 have incorrectly ignored the Server [`rejoin_after_leave`][rejoin_after_leave] From c58a6d157948da62657157a1a5b99445389d276c Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 11 Jan 2023 11:26:31 -0600 Subject: [PATCH 4/5] docs: fix broken link --- website/content/docs/upgrade/upgrade-specific.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/content/docs/upgrade/upgrade-specific.mdx b/website/content/docs/upgrade/upgrade-specific.mdx index 9063065f57b..a765aa7c3db 100644 --- a/website/content/docs/upgrade/upgrade-specific.mdx +++ b/website/content/docs/upgrade/upgrade-specific.mdx @@ -64,7 +64,7 @@ setting [`disable_filesystem_isolation`][artifact_fs_isolation]. #### Server `rejoin_after_leave` (default: `false`) now enforced -All Nomad versions prior to v1.4.4 have incorrectly ignored the Server [`rejoin_after_leave`][rejoin_after_leave] +All Nomad versions prior to v1.4.4 have incorrectly ignored the Server [`rejoin_after_leave`] configuration option. This bug has been fixed in Nomad version v1.4.4. Previous to v1.4.4 the behavior of Nomad `rejoin_after_leave` was always `true`, regardless of @@ -1557,6 +1557,7 @@ deleted and then Nomad 0.3.0 can be launched. [`sidecar_task.config`]: /docs/job-specification/sidecar_task#config [`raft_protocol`]: /docs/configuration/server#raft_protocol [`raft protocol`]: /docs/configuration/server#raft_protocol +[`rejoin_after_leave`]: /docs/configuration/server#rejoin_after_leave [reserved]: /docs/configuration/client#reserved-parameters [task-config]: /docs/job-specification/task#config [tls-guide]: https://learn.hashicorp.com/tutorials/nomad/security-enable-tls From 4fc9c85241438c86b4b44f887143e5007c9a5098 Mon Sep 17 00:00:00 2001 From: Anthony Davis Date: Wed, 11 Jan 2023 15:12:26 -0600 Subject: [PATCH 5/5] docs: fix typo in 1.5.0 upgrade doc Co-authored-by: Tim Gross --- website/content/docs/upgrade/upgrade-specific.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/content/docs/upgrade/upgrade-specific.mdx b/website/content/docs/upgrade/upgrade-specific.mdx index a765aa7c3db..f79271920c8 100644 --- a/website/content/docs/upgrade/upgrade-specific.mdx +++ b/website/content/docs/upgrade/upgrade-specific.mdx @@ -64,10 +64,10 @@ setting [`disable_filesystem_isolation`][artifact_fs_isolation]. #### Server `rejoin_after_leave` (default: `false`) now enforced -All Nomad versions prior to v1.4.4 have incorrectly ignored the Server [`rejoin_after_leave`] -configuration option. This bug has been fixed in Nomad version v1.4.4. +All Nomad versions prior to v1.5.0 have incorrectly ignored the Server [`rejoin_after_leave`] +configuration option. This bug has been fixed in Nomad version v1.5.0. -Previous to v1.4.4 the behavior of Nomad `rejoin_after_leave` was always `true`, regardless of +Previous to v1.5.0 the behavior of Nomad `rejoin_after_leave` was always `true`, regardless of Nomad server configuration, while the documentation incorrectly indicated a default of `false`. Cluster operators should be aware that explicit `leave` events (such as `nomad server force-leave`)