We are happy to announce the release of Habitat 1.6.39!
With this release, the Supervisor can now be configured with a file,
rather than solely through environment variables and commandline
options. This should provide users with a lot more flexibility for how
they deploy and manage Habitat Supervisors. Check out the
docs for
the details.
Also in this release, our Docker exporter has a few new features.
First of all, it has been renamed! While you can still call it as hab pkg export docker
, the preferred way to call it going forward is hab pkg export container
.
The reason it has been renamed is because now you have the option of
not using Docker at all! Now, with the new --engine
option, you have
the ability to use Buildah as a backend for
creating container images. This means that you will be able to create
container images without involving the Docker daemon, and thus without
the security implications of potentially providing root access to your
system. While this isn’t usually an issue on developer workstations,
it can be a big deal on shared infrastructure and CI systems.
As Buildah only works on Linux, this ability is thus necessarily
limited to Linux platforms. To enable this functionality, use the new
--engine
option:
hab pkg export container core/redis --engine=buildah
The default engine remains Docker. While the --engine
option is
technically available on Windows, docker
is the only allowed value.
One important thing to note is that Docker and Buildah store their
local images in different locations. This means that, despite the
tools creating compatible images, you will not be able to (directly)
run a Buildah-built container under Docker, in contrast to what your
typical “export a container, run that container” development
workflow might be. There are two options, though.
First, use podman. Podman and Buildah are sister
projects in an overall effort to tease apart the features of the
Docker monolith. While Buildah handles construction of images, Podman
handles the running of those images as containers (that is, buildah
is to docker build
as podman
is to docker run
). As such, Podman
looks for images in the same place that Buildah creates them. Like
Buildah, Podman also does not require a privileged account to
run. And, as a bonus, you can essentially use podman
as an alias for
docker
.
The second alternative is to use buildah
to export your image to
your Docker daemon. This effectively copies your image from “Buildah
space” to “Docker space”.
buildah push core/redis:TAG docker-daemon:core/redis:TAG
(where TAG
is the tag of the image you want to transfer)
Since this command does interact with a Docker daemon, you will
require suitable privileges to execute this operation.
It should be noted that these approaches are not required if you wish
to export a container and push the generated images to a remote
repository as part of the same hab pkg export container
invocation. The Buildah engine implementation knows how to push to
remote repositories without any additional effort on the part of the
user.
Also be aware that this feature does not currently work from within a
Studio. That will come soon, but we wanted to get this feature out for
people to start experimenting with.
Be sure to read on for additional changes! If you just want the
binaries, head on over to Install
Habitat. Thanks!
1.6.39 (2020-05-28)
Behavioral Changes
-
hab pkg export docker
is nowhab pkg export container
#7674 (christophermaier)
New Features & Enhancements
- Add Bulidah as an engine for unprivileged container builds #7685 (christophermaier)
- Config file support for
hab sup run
#7658 (davidMcneil)
Merged Pull Requests
- Add a signature policy file for Buildah exports #7711 (christophermaier)
- Revert "Merge pull request #7688 from habitat-sh/cm/static-launcher" #7709 (christophermaier)
- Use docker executor for kernel2 verify #7707 (smacfarlane)
- Feature/windows logging #7691 (collinmcneese)
- [CI] Build kernel2 packages in verify stage #7706 (christophermaier)
- Update rust and dependencies #7575 (davidMcneil)
- Add several
ok_***
macros for each logging level #7700 (christophermaier) - Revert ZMQ Update #7701 (christophermaier)
- supervisor config doc #7675 (kagarmoe)
- core: move from users to nix crate #7620 (stevendanna)
- Statically compile the Launcher on Linux #7688 (christophermaier)
- Upgrade ZMQ dependency off of our fork #7681 (christophermaier)
- Fix minimum health check interval #7683 (davidMcneil)
- Update sodiumoxide dependency #7680 (davidMcneil)
- REFACTOR: Remove ImageBuilder struct #7682 (christophermaier)
- [REFACTOR] Introduce "Engine" abstraction to
hab pkg export container
#7677 (christophermaier) - Cleanup health checking #7676 (davidMcneil)
- Remove duplicated serialization logic in SvcMember #7673 (davidMcneil)
- [REFACTOR] Use TryFrom for BuildSpec #7669 (christophermaier)
- [REFACTOR] Factor out an Identified trait for DockerBuilder and DockerImage #7668 (christophermaier)
- [REFACTOR] Extract and consolidate naming data for Docker exporter #7659 (christophermaier)
- [REFACTOR] Remove some lifetimes to simplify Docker exporter #7660 (christophermaier)
- Correct bootstrap typo #7665 (smacfarlane)
- Update MacOS Bootstrapper version #7663 (smacfarlane)
- Bump jquery from 3.4.1 to 3.5.0 in /components/habitat-chef-io/themes/docs-new #7656 (dependabot[bot])
- [CI] Fix e2e test that broke after the core plans refresh #7661 (christophermaier)
- [REFACTOR] Use FullyQualifiedPackageIdent in Docker exporter #7657 (christophermaier)
- [REFACTOR] Docker Exporter CLI consolidation, cleanup #7654 (christophermaier)
- [REFACTOR] Push Windows Docker Engine check earlier #7655 (christophermaier)
- [TYPO] Gigabytes are "gb", not "bg" #7652 (christophermaier)
- Cleanup
FS_ROOT
#7642 (davidMcneil) - Cargo Update #7633 (chef-expeditor[bot])
- [CI] Ensure release pipeline is not poisoned by old dependencies #7650 (christophermaier)
- Post-refresh cleanup #7648 (christophermaier)
- Update configopt #7600 (davidMcneil)
- Automated update of Habitat Documentation #7632 (chef-expeditor[bot])
- Rustfmt and Nightly Rust Bump to nightly-2020-04-21 #7631 (chef-expeditor[bot])
- New Documentation Component #7544 (kagarmoe)
- Update changelog post 1.6.0 #7630 (davidMcneil)