diff --git a/changelog/18684.txt b/changelog/18684.txt new file mode 100644 index 000000000..803c7cc57 --- /dev/null +++ b/changelog/18684.txt @@ -0,0 +1,3 @@ +```release-note:improvement +agent: Add note in logs when starting Vault Agent indicating if the version differs to the Vault Server. +``` diff --git a/command/agent.go b/command/agent.go index 75ae5acdc..4fbcd6ba2 100644 --- a/command/agent.go +++ b/command/agent.go @@ -250,7 +250,7 @@ func (c *AgentCommand) Run(args []string) int { return 0 } - // Ignore any setting of agent's address. This client is used by the agent + // Ignore any setting of Agent's address. This client is used by the Agent // to reach out to Vault. This should never loop back to agent. c.flagAgentAddress = "" client, err := c.Client() @@ -261,6 +261,17 @@ func (c *AgentCommand) Run(args []string) int { return 1 } + serverHealth, err := client.Sys().Health() + if err == nil { + // We don't exit on error here, as this is not worth stopping Agent over + serverVersion := serverHealth.Version + agentVersion := version.GetVersion().VersionNumber() + if serverVersion != agentVersion { + c.UI.Info("==> Note: Vault Agent version does not match Vault server version. " + + fmt.Sprintf("Vault Agent version: %s, Vault server version: %s", agentVersion, serverVersion)) + } + } + // ctx and cancelFunc are passed to the AuthHandler, SinkServer, and // TemplateServer that periodically listen for ctx.Done() to fire and shut // down accordingly.