Skip to main content
Version: 5.18

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"