github garden-io/garden v0.12.3

Garden v0.12.3 is out!

Along with several bugfixes, this release introduces a new dashboard command, and adds a few usability improvements for working with your Garden configuration files. Below are a few highlights, but check out the changelog below for a full listing.

Dashboard command

The new garden dashboard command is designed to run standalone, and receive events from other Garden processes. Any other process running with the same project, environment and namespace will pipe events to this process when it's running.

This means that the Garden dashboard no longer has to sit on top of a single watch-mode command, but instead stays up to date with everything your Garden commands are doing in your project in real time.

We've also added a new provider for Octant, which is a nice web UI for Kubernetes. Just drop it into your project config, and it will show up in your dashboard the next time you load it:

kind: Project
...
providers:
  - name: octant
...

YAML and JSON varfiles

Garden now supports YAML- and JSON-formatted varfiles. This enables you to use e.g. objects and arrays as values in your varfiles, making them more flexible and expressive.

$merge key for merging maps together in configs

All objects and mapping fields in Garden configs now support a special $merge key, which allows you to merge two objects together.

This can help make your Garden configs more concise by avoiding repetition:

kind: Project
...
variables:
  - commonEnvVars:
      LOG_LEVEL: info
      SOME_API_KEY: abcdefg
      EXTERNAL_API_URL: http://api.example.com
  ...
kind: Module
type: container
name: service-a
...
services:
  env:
    # <- Because this is above the $merge key, SOME_API_KEY from
    #    commonEnvVars will override this
    SOME_API_KEY: default
    $merge: ${var.commonEnvVars}
    OTHER_ENV_VAR: something
    # <- This overrides the value set in commonEnvVars, because it is
    #    below the $merge key
    LOG_LEVEL: debug
  ...

Acknowledgements

Big thanks to @demon for his contribution to this release, and as always, many thanks to everyone who has filed issues and given us feedback!

Changelog

Features

  • config: support YAML and JSON varfiles (34cfd8ed)
  • config: allow explicitly declaring provider dependencies (79f38268)
  • config: add $merge key for merging maps together in configs (921bb6fd)
  • dashboard: add octant provider and dashboard integration (#2006) (5c6273c1)
  • dashboard: new garden dashboard command (a5ad44ad)
  • terraform: add allowDestroy flags to automatically destroy stacks (7d39ff2d)
  • workflows: add skip option for workflow steps (d23ddbc0)

Improvements

  • dashboard: render ANSI color in log views (d8aaa606)
  • dashboard: change font to Nunito Sans (03381459)
  • dashboard: better error message handling for server errors (e96ad4c4)
  • k8s: reduce usage of kubectl, use APIs directly (5cdbcea2)

Bug Fixes

  • reference error in error handling clause (4c849bee)
  • config: allow empty strings in commands and args (5a9228b2)
  • config: incorrect handling of bracketed template keys with dots (f1cdfeee)
  • container: don't append version to Deployment name for rolling upd. (00cf3bde)
  • core: undefined tool error in container module derivatives (03f6fccf)
  • core: error with rsync v3.2.3 and later on certain OSes (3cb4da64)
  • dashboard: set correct icon hover color (d6aee9f8)
  • dashboard: attempt to reconnect when ws connection is lost (15fc73be)
  • dashboard: incorrect padding on service name in logs (eb2cd07f)
  • enterprise: fix login flow (36865bc4)
  • enterprise: validate domain as URI (85ae9ee7)
  • enterprise: include workflow run config (8dd08744)
latest releases: 0.12.5, 0.12.5-0, 0.12.4...
26 days ago