Skip to main content
Version: 5.x

Config Variables

DevSpace allows you to make your configuration dynamic by using variables in devspace.yaml.

While there is no need to explicitly define a config variable, it allows you to customize the behavior of DevSpace when working with the variable. Variables are defined within the vars section of devspace.yaml.

images:
database:
image: "mysql:${MYSQL_VERSION}"
vars:
- name: MYSQL_VERSION
question: Which mysql version do you want to use?
default: "5.7"
Source

The source option of a config variable expects either:

  • all means to check environment variables first and then ask a question if no env variable is defined (default)
  • env means to check environment variables only
  • input means to ask the user a question once (values will be cached in .devspace/generated.yaml)
  • command means DevSpace will not ask the user a question and instead execute a command to determine the value of the variable.
Pass Variables via CLI

A useful feature in DevSpace is that you can also specify variables as flags, which will override previous values (if there are any):

devspace deploy --var VAR1=VALUE1 --var VAR2=VALUE2
Input Caching

If source is either all or input and the variable is not defined, the user will be asked to provide a value either using a generic question or the one provided via the question option. The user-provided value will be cached encrypted in .devspace/generated.yaml and the user will only be asked again after the cache has been cleared first using:

devspace reset vars

To disable this functionality set the field noCache to true. This will make devspace prompt for the variable on every run.

Useful Commands

devspace list vars

To get a list of all variables defined in the devspace.yaml, you can run this command:

devspace list vars

devspace reset vars

Once DevSpace asks you to provide a value for a variable, this value will be stored in the variables cache, so you will not asked about this variable again. To reset the variables cache, run:

devspace reset vars

DevSpace will fill the variables cache again, once you run the next build or deployment command.

devspace print

The following command prints the config after all variables have been replaced:

devspace print

You can optionally add the -p / --profiles flag to this command.

export VAR_NAME=value

The value for a config variable can also be set by defining an environment variable named [VAR_NAME]. Setting the value of a config variable with name ${IMAGE_NAME} would be possible by setting an environment value IMAGE_NAME.

$env:IMAGE_NAME = "some-value"