Skip to content

Releases: garden-io/garden

v0.9.5

12 Mar 20:36
a67a68f
Compare
Choose a tag to compare

This release includes a number of bug fixes and stability improvements.

Also new is the ability to add environment variables to container module task specs, and an early version of a maven-container plugin, which facilitates containerized build workflows for Maven-based Java projects.

Features

  • add maven-container plugin type (7414898)
  • container: add env field to task spec (950536f)

Bug Fixes

  • increase init delay for liveness probe (e2a1e87)
  • occasional concurrency issue when fetching external tools (9d61d71)
  • use abs target paths in HR copy commands (94619f6)
  • include container name in pod log requests (247272d)
  • add tasks for all affected modules on watch (badb2b2)
  • respect level when using logger type env var (c5a5d6b)
  • stream container build output and cap max buffer size (2a885c8)
  • make sure to log build task success (d0c896a)
  • build: always sync sources when building (874e23c)
  • cli: log test duration in CLI output (61a0e40)
  • container: error when getting status ahead of building (6c4b0b4)
  • container: handle image IDs with multi-level namespace (342b987)
  • container: use configured image ID locally (bf5d428)
  • dashboard: fix undefined color (a0f0b43)
  • examples: use different ingress hostnames for vote-helm example (e4ad813)
  • k8s: handle CRDs properly (73f48bf)
  • openfaas: error when getting status of func not created by Garden (d7da089)
  • openfaas: update faas-cli to 0.8.3 (7915008)

v0.9.4

04 Mar 10:55
Compare
Choose a tag to compare

Before this fix, the module provided to the change handlers of watch-mode commands didn't have an up-to-date version, reflecting the latest dirty timestamp of the changed module.

This resulted in errors due to version discrepancies between e.g. build and deploy tasks in watch mode commands.

Changelog

Bug Fixes

  • ensure module is up to date in watch handler (44e8871)

v0.9.3

01 Mar 18:57
Compare
Choose a tag to compare

This release fixes a handful of issues (see below), and adds a few small but useful features:

  • Support for annotations on the container module type. Check out our Ambassador example project to see how you can use annotations to configure a custom ingress controller for your Garden project. The same feature can also be used to configure other ingress controllers, such as Traefik.
  • The CLI prints the URL for all services with defined ingresses. Nice usability feature, thanks @adnaan for suggesting this! Keep the suggestions coming :)
  • Added a build.targetImage parameter for container modules, which allows building specific parts of multi-stage Dockerfiles. See the docker build docs for details. Thanks @bfosberry for the suggestion!

Changelog

Bug Fixes

  • allow ingress annotations in service status (fac3193)
  • openfaas plugin bug (d7cf528)
  • k8s: don't abort deployment on FailedMount warning (90ac36c)
  • vcs: untracked files didn't update version timestamp correctly (3b85c35)

Features

  • cli: print ingress endpoints after deploying (b7961ec)
  • container: add build.targetImage parameter (9bf6aa1)
  • k8s: support service and ingress annotations on container module (894bd1f)

v0.9.3-0

01 Mar 16:45
Compare
Choose a tag to compare
v0.9.3-0 Pre-release
Pre-release
chore(release): release v0.9.3-0

v0.9.2

22 Feb 16:42
Compare
Choose a tag to compare

This release fixes a handful of issues, mostly relating to Helm support and minikube, and adds support for defining multiple modules in a single directory. Please refer to the v0.9.0 release notes for details on new features and changes in the 0.9 release.

Features

  • add support for flat config style (fecde8bf)
  • allow multiple modules in a single file (ff4d3702)
  • don't restart command when config is invalid (2a534b12)

Bug Fixes

  • don't emit taskPending if task is skipped (74e2c5d8)
  • helm: filter out test pods when deploying charts (b6462360)
  • k8s: don't error on pod scheduling warning (49f81157)
  • helm: allow duplicate keys in template (51538570)
  • k8s: fix RBAC issues with kubernetes-dashboard on minikube (291f3687)
  • k8s: don't use --wait when installing using Helm (02cd157a)
  • local-k8s: remove hardcoded ingress class (9eb60520)
  • local-k8s: don't install nginx when running with Minikube (056924b9)
  • templates: add prefix to versionString (fe9cd49c)
  • k8s: kubernetes dashboard wasn't showing up in dashboard (2b76841d)
  • local-k8s: always use force flag when deploying to garden-system ns (6cbe0643)

v0.9.1

12 Feb 16:17
Compare
Choose a tag to compare

This release enables the Garden dashboard by default when running the garden dev and garden serve commands.

Changelog

Bug Fixes

  • dashboard: set min select width (06386bf)
  • server: serve dashboard from all dashboard routes (5abf580)

Features

  • dashboard: update font colour (dccbf87)
  • dashboard: conform colours to style guide (44b54e0)
  • dashboard: ui improvments (4d38659)
  • dashboard: enable by default (574f56d)

v0.9.1-0

12 Feb 15:02
Compare
Choose a tag to compare
v0.9.1-0 Pre-release
Pre-release
chore(release): release v0.9.1-0

v0.9.0

08 Feb 23:03
Compare
Choose a tag to compare

Garden 0.9 is out!

We're pleased to share with you a new version of Garden that packs lots of exciting new functionality, improvements and fixes. Note that there are breaking changes in this release, please see the migration guide below for details.

Helm support

The Helm package manager is one of the most commonly used tools for managing Kubernetes applications. Helm Charts let you define, install and upgrade your application's components repeatedly and reliably. Additionally, the Helm Hub contains more than 500 actively maintained Charts for commonly used applications.

You can now use Helm Charts in your Garden projects. This integration removes the need to maintain separate stack definitions for your development and production environments. It also makes it easier to adopt Garden for existing applications and provides a robust mechanism to deploy your changes to QA environments and/or production.

You can use the newly added helm module type to integrate your own charts, or reference external ones. Check out the documentation here. We've also added an example project to showcase the integration in action.

Dashboard (alpha version)

The 0.9 release includes the first version of the Garden Dashboard. It visualizes the
dependency graph of your stack and reflects the status of services in real-time, as you develop. Having a comprehensive overview of the internal structure of your application makes it easier to debug and identify issues, particularly for applications with many dependencies between build steps, tasks, and tests. The dashboard also features in-browser access to your service logs and a summary of your stack's modules and services. As the Dashboard is still in alpha phase you will need to run Garden with the GARDEN_ENABLE_SERVER=1 flag. E.g. GARDEN_ENABLE_SERVER=1 garden dev.

And more

Apart from the Helm integration and dashboard, we've also enabled the use of custom ingresses, added hot-reloading support for remote Kubernetes clusters and other minor improvements and bugfixes. You can find the full changelog below and here.

--

We're looking for a frontend engineer and a platform engineer to join our team in Berlin. Check out the job descriptions here and feel free to reach out if you have any questions!

If you have any questions about the product, need help, or just feel like geeking out about dev tooling, hop into our Slack channel.

Migration Guide

After upgrading, the default namespace given to projects in Kubernetes clusters has been changed. Any project that doesn't have an explicitly configured namespace will be installed into a new namespace, and the old namespace needs to be manually removed using kubectl.

For projects using Kubernetes, Garden's new Helm functionality relies on installing Tiller in each project's namespace.

Because of this (and a few other related behind-the-scenes changes), you may need to run the following command in your project:

garden init --force

If you still encounter issues upgrading and are running a local Kubernetes cluster, resetting/wiping the cluster may be the quickest route.

However, this is not feasible for all users, so feel free to ask for help from the team in our community Slack workspace. We'll be happy to assist.

Breaking Changes to Project/Module Configuration

  • Module configurations using the services template key need to be updated to use the modules key instead.

  • We no longer default to nginx as the ingress class to use as an annotation on container module ingresses. If you need it configured, you need to set it via the ingressClass parameter in the local-kubernetes provider configuration.

  • The following configuration fields for container modules must be renamed as indicated:

    • service.command -> service.args
    • service.hotReloadCommand -> service.hotReloadArgs
    • test.command -> test.args
    • task.command -> task.args

    This is done in preparation for a new configuration option (using the key command, hence the rename) that's planned for release soon, whereby users can override the container entrypoint in configs.

  • Projects using the generic module type need to update the relevant garden.yml files to reference the exec module type instead.

Please see the full list of changes below.

CHANGELOG

Bug Fixes

  • improved error messages when deps are missing (#484) (c5e6dce)
  • add path to module validation error messages (b1c54b0)
  • delete outdated system namespaces (cda0c7c)
  • add missing package to garden-service/package.json (4688e56)
  • don't watch project-level log files (81c8d04)
  • core: error in actions.getStatus helper (a4cf625)
  • core: missing module configs in dumpConfig response (c8609a2)
  • core: using module version in templates didn't work with watch (6c209af)
  • core: certain template strings could not be resolved in configs (3d582c4)
  • dashboard: conform to new "get config" response (bfa2c0f)
  • dashboard: handle empty ingress in service status (870d5f3)
  • dashboard: limit number of log lines that are fetched (#461) (3c214ce)
  • deploy: make watch parameter implicit when hot-reloading (0819605)
  • exec: missing tasks key in module schema (cc13f33)
  • get-tasks: print msg if no tasks found (f64d59c)
  • k8s: configure RBAC properly for Tiller (d182929)
  • k8s: fix issue with log following for K8s (6624964)
  • k8s: incorrect role binding for tiller service account (9a61840)
  • logger: only inherit parent level if option is set (#493) (99fdb12)
  • openfaas: override release name to avoid conflict across namespaces (2eea9bd)
  • perf: reuse port-forwards when hot-reloading (6db83a7)
  • server: ensure log entries have level silly (#496) (5b11322)
  • status: return more correct/granular statuses (d4a7cf2)

Code Refactoring

  • add configureProvider plugin action (bdf6994)
  • rename generic plugin to exec (4c85d46)
  • use events for file watching instead of callbacks (f6a99c2)
  • rename validate module action to configure (7b02fdd)
  • allow consecutive dashes in identifier regex (37fe9c3)
  • remove experimental Go CLI (e9ef3aa)
  • commands: remove create commands (88d18d8)
  • dashboard: use React Hooks API for state management (588dd6c)
  • dashboard: rename root dir to dashboard (6b48430)
  • go-cli: replace unison with mutagen (wip) (b7a0d33)
  • k8s: minor change to speed up container deploys (91da102)
  • k8s: shorten default namespace names (15aa5de)
  • logger: remove root prop from LogNode class (b1e8fa6)
  • logger: rename preserveLevel opt to childEntriesInheritLevel (0b3efab)

Features

  • rename command to args for container type (84f5a8d)
  • added get tasks command (250315d)
  • add servicePort config option (57b23f3)
  • cli: add --hot alias for --hot-reload flag (22ac4f6)
  • dashboard: update UI (closes #460) (e59897c)
  • dashboard: expose provider links in sidebar (48c9e13)
  • k8s: add Helm...
Read more

v0.9.0-rc3

06 Feb 10:06
Compare
Choose a tag to compare
v0.9.0-rc3 Pre-release
Pre-release
chore(release): release v0.9.0-rc3

v0.9.0-rc2

04 Feb 20:25
Compare
Choose a tag to compare
v0.9.0-rc2 Pre-release
Pre-release
chore(release): release v0.9.0-rc2