We are happy to announce the release of Habitat 1.5.71!
You can now trigger a service rollback by demoting a package from Builder. This release adds the --update-condition
CLI argument to the hab sup run
and hab svc load
commands. This argument sets the condition the Supervisor uses to trigger a service update. There are currently two options for this argument: latest
and track-channel
. latest
is the default value and keeps the previous behavior. The service updates when a more recent package is available. track-channel
updates the service when the head of the channel is changed even if the change is to a previous package. This allows package demotion to trigger a service rollback. When a service rollback occurs, all packages more recent than the package at the head of the channel are automatically uninstalled from the system.
Service PID files are restored in this release. In release 1.5.50, the Launcher and Supervisor were modified so that the Launcher itself became the source of truth for the PIDs of supervised services, rather than the contents of a file on disk. While this improves overall Supervisor reliability, a blanket removal of the PID files can break things like reconfigure hooks, which need a way to access a service’s PID in order to do things like send the service signals. This release re-introduces PID files for services, but only as a means to communicate with hooks. The Launcher is still the ultimate source for the PID itself.
The plan context can now be rooted in the target folder. This is useful when writing a plan to support multiple targets. Check out the documentation!
This release also fixes a bug introduced in 1.5.50 when using Habitat with proxies.
Be sure to read on for additional changes! If you just want the binaries, head on over to Install Habitat. Thanks!
1.5.71 (2020-03-19)
Bug Fixes
-
Make better use of
Instant::elapsed()
for safer timing operations #7533 (christophermaier) -
http-client: use env_proxy from git #7532 (stevendanna)
New Features & Enhancements
- Add service
--update-condition
enabling service rollback #7513 (davidMcneil)
Behavioral Changes
-
When follower services restart during a rolling update all packages newer than the package the leader updated to are automatically uninstalled. This ensures that the leader and followers are running the same package. #7556 (davidMcneil)
-
Always write out service PID files #7526 (christophermaier)
Merged Pull Requests
-
Update CODEOWNERS #7562 (davidMcneil)
-
Update changelog with new rolling update logic #7561 (davidMcneil)
-
Fix rolling update when using track-channel update condition #7556 (davidMcneil)
-
only stop the studio container at the end of the docker studio supervisor test #7560 (mwrock)
-
fix failing test where windows and linux expect different error codes #7557 (mwrock)
-
fix powershell builds when giving a path not ending in a slash #7553 (mwrock)
-
allow plan context to be rooted in target folder #7548 (mwrock)
-
Remove one-off release tool #7546 (davidMcneil)
-
Fix at-once update test #7543 (davidMcneil)
-
Fix pwsh binlink dir for e2e tests #7542 (davidMcneil)
-
Miscellaneous Butterfly timing refactorings #7540 (christophermaier)
-
[CI] Silently continue on errors to remove the Habitat cache #7539 (christophermaier)
-
Update changelog post 1.5.50 #7521 (smacfarlane)
-
Cargo Update #7519 (chef-expeditor[bot])
-
Rustfmt and Nightly Rust Bump to nightly-2020-03-03 #7518 (chef-expeditor[bot])
-
Automated update of Habitat Documentation #7517 (chef-expeditor[bot])