Skip to main content

Service Group Updates

[edit on GitHub]

The Chef Habitat Supervisor can be configured to leverage an optional update strategy, which describes how the Supervisor and its peers within a service group should respond when a new version of a package is available.

To use an update strategy, configure the Supervisor to subscribe to Chef Habitat Builder, and more specifically, a channel for new versions.

Configuring an Update Strategy

Chef Habitat supports three update strategies: none, rolling, and at-once.

To start a Supervisor with the auto-update strategy, pass the --strategy argument to a Supervisor run command, and optionally specify the depot URL:

hab sup run --strategy rolling --url
hab svc load <ORIGIN>/<NAME>

None Strategy

This strategy means your package will not automatically be updated when a newer version is available. By default, Supervisors start with their update strategy set to none unless explicitly set to one of the other two update strategies.

Rolling Strategy

This strategy requires Supervisors to update to a newer version of their package one at a time in their service group. An update leader is elected which all Supervisors within a service group will update around. All update followers will first ensure they are running the same version of a service that their leader is running, and then the leader will poll Builder for a newer version of the service’s package.

Once the update leader finds a new version, it will update and wait until all other alive members in the service group have also been updated before once again attempting to find a newer version of software to update to. Updates will happen more or less one at a time until completion with the exception of a new node being introduced into the service group during the middle of an update.

If your service group is also running with the --topology leader flag, the leader of that election will never become the update leader, so all followers within a leader topology will update first.

It’s important to note that because we must perform a leader election to determine an update leader, you must have at least 3 Supervisors running a service group to take advantage of the rolling update strategy.

At-Once Strategy

This strategy does no peer coordination with other Supervisors in the service group; it merely updates the underlying Chef Habitat package whenever it detects that a new version has either been published to a depot or installed to the local Chef Habitat pkg cache. No coordination between Supervisors is done, each Supervisor will poll Builder on their own.

Was this page helpful?