From d13c988dc98dcda4a2d1301a3e29b8d38eaa9879 Mon Sep 17 00:00:00 2001 From: Mahmood Ali Date: Fri, 3 May 2019 16:27:30 -0400 Subject: [PATCH] Update peers info with new raft config details --- nomad/server.go | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/nomad/server.go b/nomad/server.go index 0fccdda641c4..1d62a9d8e089 100644 --- a/nomad/server.go +++ b/nomad/server.go @@ -1470,10 +1470,47 @@ func (s *Server) ReplicationToken() string { // location. const peersInfoContent = ` As of Nomad 0.5.5, the peers.json file is only used for recovery -after an outage. It should be formatted as a JSON array containing the address -and port (RPC) of each Nomad server in the cluster, like this: - -["10.1.0.1:4647","10.1.0.2:4647","10.1.0.3:4647"] +after an outage. The format of this file depends on what the server has +configured for its Raft protocol version. Please see the agent configuration +page at https://www.consul.io/docs/agent/options.html#_raft_protocol for more +details about this parameter. +For Raft protocol version 2 and earlier, this should be formatted as a JSON +array containing the address and port of each Consul server in the cluster, like +this: +[ + "10.1.0.1:8300", + "10.1.0.2:8300", + "10.1.0.3:8300" +] +For Raft protocol version 3 and later, this should be formatted as a JSON +array containing the node ID, address:port, and suffrage information of each +Consul server in the cluster, like this: +[ + { + "id": "adf4238a-882b-9ddc-4a9d-5b6758e4159e", + "address": "10.1.0.1:8300", + "non_voter": false + }, + { + "id": "8b6dda82-3103-11e7-93ae-92361f002671", + "address": "10.1.0.2:8300", + "non_voter": false + }, + { + "id": "97e17742-3103-11e7-93ae-92361f002671", + "address": "10.1.0.3:8300", + "non_voter": false + } +] +The "id" field is the node ID of the server. This can be found in the logs when +the server starts up, or in the "node-id" file inside the server's data +directory. +The "address" field is the address and port of the server. +The "non_voter" field controls whether the server is a non-voter, which is used +in some advanced Autopilot configurations, please see +https://www.nomadproject.io/guides/operations/outage.html for more information. If +"non_voter" is omitted it will default to false, which is typical for most +clusters. Under normal operation, the peers.json file will not be present.