The Chef Habitat Pattern Library is an evolving set of design patterns to use as starting-points. These patterns are examples and require configuration and customization for your unique situation.
For help with Chef Habitat and these patterns, ask:
A bastion ring is a robust type of Supervisor network in which a small number of Supervisors are set up as permanent peers and that are dedicated to anchoring Supervisor network communication. These Supervisors are designated solely for communication between Supervisor and do not run services. These solely to anchor the entire Supervisor network. See Robust Supervisor Networks for more information. The following examples demonstrate running a bastion ring in Kubernetes.
hab pkg download command can be used to download individual
packages (along with their dependencies and keys) from Builder,
without installing them. This allows you to more easily transfer
packages from one Builder instance to another, or to take a selective
snapshot of particular packages.
While you can download packages one-at-a-time, it can be more convenient to use a file to specify your packages. Two formats are recognized: plain text and TOML.
Plain Text Download Descriptors
The simplest thing you can do is create a plain text file with a package identifier on each line, like so:
Each line is a valid package identifier. You can also add comments using
To download these packages (and their dependencies), save that to a
supervisor.txt and run:
This will download the packages into your existing Habitat cache
directory. Alternatively, you can specify a directory using the
(You can also specify
--target to further control
which specific packages you download; run
hab pkg download --help
TOML Download Descriptors
Plain text is fine for simple cases, but has drawbacks. For instance, all packages will come from the same channel and will be for the same platform target. For maximum flexibility, you'll want to use TOML to write your download descriptor. Here is an example of one that the Habitat core team uses to take periodic snapshots of everything needed to run Builder itself:
This format allows us to specify multiple subsets of packages from
different channels and for different architectures. Here, we are
pulling down all the core service packages, which run on Linux, but
are also pulling down the platform-specific versions of the
habitat/builder-worker package. Without this format, we would have
hab pkg download multiple times with different
parameters. The file allows us to capture our full intention in one