voxpupuli / puppet-consul

A Puppet Module to Manage Consul
Apache License 2.0
121 stars 315 forks source link

Allow to not restart consul when updating the binary #650

Open gmenuel opened 8 months ago

gmenuel commented 8 months ago

After updating the consul binary, the module will notify the service in order to restart consul. Unfortunately when doing this, it seems complicated to follow the consul upgrade documentation https://developer.hashicorp.com/consul/docs/upgrading/instructions/general-process#perform-the-upgrade which specify an order for restarting consul servers and clients.

In order to comply with the consul documentation I wanted to upgrade the binary with the consul puppet module, but only restart consul either manually or with a set of scripts which would check the versions of the other nodes. I'm curious as how other people handle this update process, and I think an option should be added to bypass the notify when the version is changed.

How to reproduce (e.g Puppet code you use)

Change the consul::version to a newer version than the one currently installed.

What are you seeing

Notice: /Stage[main]/Consul::Install/File[/usr/local/bin/consul]/target: target changed '/var/consul/archives/consul-1.7.1/consul' to '/var/consul/archives/consul-1.7.0/consul'
Info: /Stage[main]/Consul::Install/File[/usr/local/bin/consul]: Scheduling refresh of Class[Consul::Run_service]
Info: Class[Consul::Run_service]: Scheduling refresh of Service[consul]
Notice: /Stage[main]/Consul::Run_service/Service[consul]: Triggered 'refresh' from 1 event

What behaviour did you expect instead

Having the option to not restart the service.

Output log

Any additional information you'd like to impart