Skip to content

Releases: garden-io/garden

edge-cedar

11 Mar 10:33
4e7128d

Choose a tag to compare

edge-cedar Pre-release
Pre-release

This is an automatic build of Garden 0.14 (Cedar).

Note: This is not a stable release

0.14.20

27 Feb 10:42

Choose a tag to compare

Garden 0.14.20 is out! 🎉

This release introduces local volume mounting for Kubernetes and Helm Deploys — a new way to get instant file visibility in your local development clusters without needing background sync processes.

Local volume mounts (experimental)

When developing against a local Kubernetes cluster (Docker Desktop, Orbstack, kind, or minikube), you can now configure localVolumes on your kubernetes or helm Deploy actions to mount host directories directly into running containers via hostPath volumes.

This is an alternative to Mutagen-based code synchronization that gives you:

  • Zero sync delay — file changes are visible instantly because the container reads directly from your host filesystem
  • No background process — no Mutagen daemon to start, monitor, or troubleshoot
  • Works with any file watcher — hot-reload tools (nodemon, webpack-dev-server, air, etc.) already in your container just work

Garden handles the platform-specific path conversion automatically for each cluster type and OS (Docker Desktop path prefixes, kind extraMounts validation, minikube auto-mounting).

An excludes option lets you overlay emptyDir volumes on subdirectories like node_modules that shouldn't come from the host.

spec:
  localVolumes:
    volumes:
      - name: frontend-src
        sourcePath: .
        containerPath: /app
        excludes:
          - node_modules

See the local volume mounts guide and the examples/local-volume-mounts project for full details.

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

0.14.20 (2026-02-27)

Features

  • k8s: local volume mounting assistance (57f95326b)

0.14.19

26 Feb 14:03

Choose a tag to compare

Garden 0.14.19 is out! 🎉

This is a mainenance release with no new user-facing changes (mostly library updates to improve security).

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

0.14.18

25 Feb 12:45

Choose a tag to compare

Garden 0.14.18 is out! 🎉

This is a big release with several new features:

Highlights

Experimental garden plan command

A new garden plan command (and garden deploy --plan flag) lets you preview what would happen before actually executing actions. For Deploy actions, it shows a diff of Kubernetes resources that would be created, updated, or deleted. For Build, Run, and Test actions, it shows what commands would be executed. This is especially useful for reviewing infrastructure changes before deployment.

Traefik as bundled ingress controller

Traefik is now supported as a bundled ingress controller for local Kubernetes clusters. The existing nginx controller is deprecated (but still the default) — users will see a deprecation warning and can migrate with a single command: garden plugins kubernetes migrate-ingress-controller. Traefik includes cluster-specific configurations for kind, k3s, minikube, microk8s, and generic clusters.

Major improvements to custom commands

Custom commands now support a steps field, allowing you to define multiple ordered steps in a single command. Additionally, many more templating expressions are supported, and needed references are auto-resolved before executing.

removeOnCleanup flag for Deploys

A new removeOnCleanup flag on Deploy actions lets you control whether resources are removed when running garden cleanup. This gives more fine-grained control over which deployments should persist across cleanup operations.

Action-specific log level override

You can now set the log level on a per-action basis, making it easier to debug specific actions without flooding your terminal with verbose output from the entire graph.

Variable supersession visibility

The garden get remote-vars command now shows whether a variable has been superseded, making it easier to understand variable resolution and precedence.

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

0.14.18 (2026-02-25)

Bug Fixes

Features

  • commands: major improvements to custom commands (1ee512f47)
  • k8s: support Traefik as bundled ingress controller (8b1fa1a8f)

Improvements

  • core: show if var is superseded in get remote-vars command (a866eb284)

edge-bonsai

01 Feb 18:23

Choose a tag to compare

edge-bonsai Pre-release
Pre-release

This is an automatic build of Garden 0.13 (Bonsai).

Note: This is not a stable release

0.14.17

11 Feb 13:33

Choose a tag to compare

Garden 0.14.17 is out! 🎉

This release adds a few new features, outlined below, as well some bug fixes. Enjoy!

Many thanks to Kevin Castro me@kevincastro.dev for their contribution to this release!

Overview

Garden plan command

Experimental garden plan command and garden deploy --plan option which shows what would happen if you ran the specified actions, without actually executing them. This is useful for previewing changes before deployment, especially for Kubernetes resources.

Conditionally remove deploys on cleanup

You can now set removeOnCleanup: false on your Deploy actions if you do not want them removed when running the garden cleanup command. This is useful to e.g. prevent PVCs being deleted when cleaning up an environment.

This can be overridden with garden cleanup --force which will remove all deploys, even if removeOnCleanup: false.

For example:

kind: Deploy
type: kubernetes
name: pvc-that-should-not-be-removed
removeOnCleanup: false
spec:
  # ...

Action-specific log levels

You can now set the log level of individual actions. For example:

kind: Run
type: exec
name: script-that-produces-too-much-output
logLevel: silent
---
kind: Test
type: container
name: test-that-needs-investigating
logLevel: silly

Note that Garden always logs actionn errors, even if the action specific log level is silent.

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

0.14.17 (2026-02-11)

Features

  • experimental garden plan command and deploy --plan (f086c3fba)
  • core: add removeOnCleanup flag to Deploys (#7967) (402051d16)
  • core: action-specific log level override (#7965) (025cf5e41)

Improvements

Bug Fixes

  • cloud: throw if user doesn't have access to org (#7953) (7a4207a3c)
  • cloud: better error around invalid org IDs (5d450dae4)
  • cloud: more fixes to project config rewriting (f801065d6)
  • core: fixes to project config rewriting logic (440994221)
  • k8s: clean up webhooks for bundled ingress (#7962) (3f77ac467)
  • plugins: add retry to tool fetching (ad0682098)
  • terraform: fix force-unlock plugin command (e95112913)

Fixed Issues

0.13.63

12 Feb 04:53

Choose a tag to compare

Garden 0.13.63 is out! 🎉

This is a maintenance release that includes bug fixes and updates versions of utility images.

Assets

Download the Garden binary for your platform from below or simply run garden self-update 0.13.63 if you already have it installed.

Changelog

0.13.63 (2026-02-11)

Bug fixes and maintenance work

0.14.16

04 Feb 10:47

Choose a tag to compare

Garden 0.14.16 is out! 🎉

This is a maintenance release that includes more sophisticated failure detection during Helm deploys and a fix to the installation procedure for Garden's bundled ingress controller.

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

0.14.16 (2026-02-04)

Bug Fixes

  • core: wait before emitting first heartbeat event (#7948) (84ea483dd)
  • k8s: don't create validating webhook for nginx (1739b01d0)
  • k8s: fix fail-fast Helm deploys (aee8a2043)

0.14.15

26 Jan 16:27

Choose a tag to compare

Garden 0.14.15 is out! 🎉

Note

This is an immediate follow up to the Garden 0.14.14 release which was missing a feature that got accidentally left out. So we'll include the release notes from both releases below.

This release adds a few new features, outlined below. Enjoy!

Allow upserting Garden Cloud variables

The create remote-variables command can now update existing variables if they exist via the new --uspert CLI flag.

This is useful e.g. for Cloud users who want to rotate their secrets.

Load secrets from a file, or generate from script

This adds from: "file" and from: "command" to entries in the importVariables stanza in project configs.

This enables users to populate Garden secrets and variables from other sources than Garden Cloud.

Terraform and Pulumi: New option to specify path to local binary

We now allow passing an absolute path to the version field on the Terraform and Pulumi providers.

This tells Garden to use the binary found at that path (or throw an error if none is found).

This offers more control than just using the global one on PATH when none of the bundled versions are suitable.

Print link to logs in Garden Cloud when applicable

For Garden Cloud users we now print links to error logs when running Test and Run actions instead of dumping the entire output to the console (which can add a lot of noise).

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

Features

  • cloud: allow upserting remote variables (3e9eb9126)
  • cloud: print links to logs (3039a54fd)
  • terraform: allow specifying binary path (5d4e35758)
  • variables: support loading vars/secrets from files and exec (ed859d32c)

Bug Fixes

  • aec: set last-deployed annotation when creating namespaces (985e325f8)

Fixed Issues

0.14.14

26 Jan 14:39

Choose a tag to compare

Garden 0.14.14 is out! 🎉

This release adds a few new features, outlined below. Enjoy!

Allow upserting Garden Cloud variables

The create remote-variables command can now update existing variables if they exist via the new --uspert CLI flag.

This is useful e.g. for Cloud users who want to rotate their secrets.

Load secrets from a file, or generate from script

This adds from: "file" and from: "command" to entries in the importVariables stanza in project configs.

This enables users to populate Garden secrets and variables from other sources than Garden Cloud.

Terraform and Pulumi: New option to specify path to local binary

We now allow passing an absolute path to the version field on the Terraform and Pulumi providers.

This tells Garden to use the binary found at that path (or throw an error if none is found).

This offers more control than just using the global one on PATH when none of the bundled versions are suitable.

Assets

Download the Garden binary for your platform from below or simply run garden self-update if you already have it installed.

Changelog

Bug Fixes

  • aec: set last-deployed annotation when creating namespaces (985e325f8)

Features

  • cloud: allow upserting remote variables (3e9eb9126)
  • terraform: allow specifying binary path (5d4e35758)
  • variables: support loading vars/secrets from files and exec (ed859d32c)

Fixed Issues