Skip to content

Creating Golden Paths for Developers with Blueprints

→ Register for the October 10 webinar

YAML reference»

This document is a reference for the Spacelift configuration keys that are used in the .spacelift/config.yml file to configure one or more Stacks.

Warning

The .spacelift/config.yml file must be located at the root of your repository, not at the project root.

Stack settings»

Module settings»

version»

The version property is optional and currently ignored but for the sake of completeness you may want to set the value to "1".

stack_defaults»

stack_defaults represent default settings that will apply to every stack defined in the id-settings map. Any default setting is overridden by an explicitly set stack-specific value.

Key Required Type Description
after_apply N list<string> List of commands executed after applying changes.
after_destroy N list<string> List of commands executed after destroying managed resources.
after_init N list<string> List of commands executed after first interacting with the backend (eg. terraform init).
after_perform N list<string> List of commands executed after performing a custom task
after_plan N list<string> List of commands executed after planning changes
after_run N list<string> List of commands executed after every run, regardless of its outcome
before_apply N list<string> List of commands executed before applying changes.
before_destroy N list<string> List of commands executed before destroying managed resources.
before_init N list<string> List of commands executed before first interacting with the backend (eg. terraform init).
before_perform N list<string> List of commands executed before performing a custom task
before_plan N list<string> List of commands executed before planning changes
environment N map<string, string> Map of extra environment variables and their values passed to the job
project_root N string Optional folder inside the repository serving as the root of your stack
runner_image N string Name of the custom runner image, if any
terraform_version N string For Terraform stacks, Terraform version number to be used

stacks»

The stacks section is a map using stack public ID (slug) as keys and stack settings - described in this section - as values. If you're using this mapping together with stack defaults, note that any default setting is overridden by an explicitly set stack-specific value. This is particularly important for list and map fields where one may assume that these are merged. In practice, they're not merged - they're replaced. If you want merging semantics, YAML provides native methods to merge arrays and maps.

module_version»

Module version is a required string value that must conform to the semantic versioning scheme. Note that pre-releases and builds/nightlies are not supported - only the standard $major.$minor.$patch format will work.

test_defaults»

Test defaults are runtime settings following this scheme that will apply to all test cases for a module.

tests»

The tests section represents a list of test cases for a module, each containing the standard runtime settings in addition to the test-specific settings:

Key Required Type Description
name Y string Unique name of the test case
negative N bool Indicates whether the test is negative (expected to fail)
id N string Unique identifier of the test case which can be used to refer to the test case
depends_on N list<string> List of test case ids this test depends on