Release Announcement: Garden 0.12.22

Garden 0.12.22 is out! :tada:

This release brings several major improvements to stability and reliability, a greatly improved garden logs command, and several new templating options for even more flexibility.

Many thanks to @tvollstaedt for his contribution to this release.

See the changelog in the release notes for a full list of changes.

Happy hacking!

New and improved logs command

The garden logs command now interleaves log lines from different services, color-coding the log lines from each service.

If the connection to one or more services is lost, the new garden logs command automatically reconnects to the service when possible, without needing to restart the command. This way, you can simply leave your garden logs command running

This new setup is fast, reliable and intuitive for observing activity and data flows that span several services (which is great for debugging).

Removed dependency on NFS for kaniko build mode

We now no longer rely on NFS for the kaniko build mode, which improves stability and greatly simplifies maintenance and operations (especially for larger teams who are heavy users of Garden).

Custom min/max resources and health check timeouts for container services

The resource requests/limits of container services, tests and tasks can now be set via the new cpu and memory fields.

This allows you to use different resource requests/limits as appropriate in each case, which helps resource-intensive tests/tasks execute faster and more reliably, or to use less resources for lightweight services/tests/tasks (to name a few examples).

Enjoy!

Automatic retry for Kubernetes API calls

By default, Garden now retries Kubernetes operations when timeouts or network-related errors occur. When the cluster is under high load, or when challenging workloads are being built, deployed or tested, this means that Garden gracefully handles most intermittent network issues without the larger build/deploy/test pipeline having to be retried.

This is very useful both in the inner loop of development and in CI, where such retries can improve the reliability of your pipelines under challenging operating conditions.

Nobody likes having to tell the computer twice to do something. Garden is happy to take care of that, leaving you free to focus on your code!

Run arbitrary commands in kubernetes and helm service workloads

The garden exec command can now be used with kubernetes and helm modules (previously, this was only supported for container services).

This is handy for quickly getting a shell prompt in your service to run scripts, debuggers, generate database migrations or for any other ad-hoc commands.

Use Garden template strings in kubernetes module manifest files

Previously, Garden template strings were only available in kubernetes module manifests when they were located inline in the module configuration.

With this release, you have access to the full power of Garden’s templating in your kubernetes manifest files, which is very useful for kubernetes modules that have several manifests (and/or when the manifests are too large to fit non-awkwardly into the module configuration file).