Deprecations and major-version updates

Deprecations and major-version updates

The next major version of Garden, 0.14, will contain breaking changes. To make the update as seamless as possible for your team, avoid functionality that has been deprecated in Garden 0.13.

When using apiVersion: garden.io/v1 in your project configuration file, Garden will warn you if your configuration depends on features that will be removed in Garden 0.14.

EXPERIMENTAL: You can opt-in to the new behaviour in Garden 0.14 by using apiVersion: garden.io/v2. This setting will make Garden throw errors whenever it detects usage of deprecated functionality.

Please note that as of today, not all warnings are in place, so we are still working on the list of breaking changes. Once the list of breaking changes is final, we will make this known here.

Migration hints

Updating action configs

To get rid of the deprecated build usages, you need to replace all root-level configuration entries like build: my-app with the dependencies: [build.my-app].

For example, a configuration like

kind: Build
name: backend
description: Backend service container image
type: container

---
kind: Deploy
name: backend
description: Backend service container
type: container
build: backend # <-- old config style uses `build` field

spec:
image: ${actions.build.backend.outputs.deploymentImageId}
...

should be replaced with

kind: Build
name: backend
description: Backend service container image
type: container

---
kind: Deploy
name: backend
description: Backend service container
type: container

# use `dependencies` field instead of the `build`
dependencies:
- build.backend

spec:
image: ${actions.build.backend.outputs.deploymentImageId}
...

Breaking changes

Kubernetes provider configuration

The `deploymentStrategy` config field

Do not use this config field. It has no effect as the experimental support for blue/green deployments (via the blue-green strategy) has been removed.

Project configuration

The `dotIgnoreFiles` config field

Use the dotIgnoreFile field instead. It only allows specifying one filename.

For more information, please refer to the dotIgnoreFile reference documentation.

Using `apiVersion: garden.io/v0` in the project config

Use apiVersion: garden.io/v1 or higher instead.

For more information, please refer to the apiVersion reference documentation.

The `modules` config field

Please use the scan field instead.

For more information, please refer to the scan reference documentation.

Garden commands

The Kubernetes plugin command `cluster-init`

Do not use this command. It has no effect.

Sync mode

The `sync-start` command.

Behaviour of sync start is now deprecated and will be changed in a future breaking change release. Instead, we recommend running garden deploy --sync or starting syncs inside the dev console with either deploy --sync or sync start.

Garden Plugins

The plugin `hadolint`

This plugin is still enabled by default in Garden 0.13, but will be removed in Garden 0.14. Do not use this plugin explicitly in Garden 0.14.

The plugin `octant`

This plugin is still enabled by default in Garden 0.13, but will be removed in Garden 0.14. Do not use this plugin explicitly in Garden 0.14.

The plugin `conftest`

This plugin is still enabled by default in Garden 0.13, but will be removed in Garden 0.14. Do not use this plugin explicitly in Garden 0.14.

Local mode

The `local mode` feature for container, kubernetes and helm deploys

Please do not use this in Garden 0.14

Acton configs

The `build` config field in runtime action configs

Use dependencies config build to define the build dependencies.

For more information, please refer to the Migration guide for action configs.

Build Staging

The `legacy rsync-based file syncing` for build staging

Do not use GARDEN_LEGACY_BUILD_STAGE environment variable in 0.14.

Garden action types

The `configmap Deploy` action type

Do not use this action in Garden 0.14.

The `persistentvolumeclaim Deploy` action type

Do not use this action in Garden 0.14.

Last updated

Was this helpful?