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
should be replaced with
Using optional value syntax in template strings
The optional value syntax in template strings is no longer supported in 0.14.
The question mark is now considered as a regular character in the template strings. For example, if you have defined variable baseUrl: http://example.com
, then the template string ${var.baseUrl}?foo=bar
will result in http://example.com?foo=bar
.
If you need to reference a potentially undefined variable, please use an explicit fallback value like ${var.baseUrl || 'defaultValue'}
instead.
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
The command sync start
will only be available inside dev console in a future breaking change release. Do not use it as a standalone Garden command. Instead, we recommend running garden deploy --sync
or starting syncs inside the dev console with either deploy --sync
or sync start
.
The `sync stop` command
The command sync stop
will only be available inside dev console in a future breaking change release. Do not use it as a standalone Garden command. Instead, we recommend stopping syncs inside the dev console with sync stop
.
The `sync restart` command
The command sync restart
will only be available inside dev console in a future breaking change release. Do not use it as a standalone Garden command. Instead, we recommend restarting syncs inside the dev console with sync restart
.
The `sync status` command
The command sync status
will only be available inside dev console in a future breaking change release. Do not use it as a standalone Garden command. Instead, we recommend getting sync statuses inside the dev console with sync status
.
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
Action 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
.
Garden action types
The `configmap Deploy` action type
Use the kubernetes Deploy
action type instead.
The `persistentvolumeclaim Deploy` action type
Use the kubernetes Deploy
action type instead.
Template strings
The optional template value syntax (like `${var.foo}?`)
Use explicit fallback values instead.
For more information, please refer to the Migration guide for optional values in template strings.
Default configuration values
`spec.waitForJobs` of `kubernetes Deploy`
The new default value is true
Last updated
Was this helpful?