Skip to main content
Version: 5.14

Config Reference

version#

version: v1beta10 # string | Version of the config

images#

images: # map[string]struct | Images to be built and pushed
image1: # string | Name of the image
image: gcr.io/username/image # string | Image repository and name
tags: # string[] | Image tags (may be a tagging schema with variables)
- latest
- 0.0.1
- dev-${DEVSPACE_GIT_COMMIT}
- random-#### # | Each hashtag is replaced with a random character during building
dockerfile: ./Dockerfile # string | Relative path to the Dockerfile used for building (Default: ./Dockerfile)
context: ./ # string | Relative path to the context used for building (Default: ./)
entrypoint: [] # string[] | Override ENTRYPOINT defined in Dockerfile
cmd: [] # string[] | Override CMD defined in Dockerfile
createPullSecret: true # bool | Create a pull secret containing your Docker credentials (Default: false)
rebuildStrategy: '' # string | One of [always, ignoreContextChanges] which determines when DevSpace rebuilds the image
injectRestartHelper: true # bool | If true will inject the restart helper into the container to restart the container automatically
restartHelperPath: ./script.sh # string | If configured devspace will inject this script into the container and wrap the ENTRYPOINT around this
appendDockerfileInstructions: # string[] | Dockerfile instructions that should be appended for the current build
- USER root
build: ... # struct | Build options for this image
image2: ...

Learn more about how to configure image building.

images[*].build#

build: # struct | Build configuration for an image
docker: ... # struct | Build image with docker and set options for docker
kaniko: ... # struct | Build image with kaniko and set options for kaniko
custom: ... # struct | Build image using a custom build script
disabled: false # bool | Disable image building (Default: false)
info

Setting the key docker, kaniko, custom or disabled will define the build tool for this image.

  • If neither docker, kaniko, custom nor disabled is specified, docker will be used by default.
  • By default, docker will use kaniko as fallback when DevSpace is unable to reach the Docker host.
Build Tool Priority

If you specify multiple build tools, DevSpace will try to use them in the following order:

  1. disabled
  2. custom
  3. docker (uses kaniko as fallback if Docker host not reachable)
  4. kaniko

images[*].build.docker#

docker: # struct | Options for building images with Docker
preferMinikube: true # bool | If available, use minikube's in-built docker daemon instaed of local docker daemon (default: true)
skipPush: false # bool | Skip pushing image to registry, enabled automatically for minikube and docker-desktop (Default: false)
disableFallback: false # bool | Disable using kaniko as fallback when Docker is not installed (Default: false)
useCli: false # bool | If true will use the docker cli for building
args: # []string | Additional arguments that should be used for executing the docker cli
- --any-flag
options: ... # struct | Set general build options

images[*].build.buildKit#

buildKit:
skipPush: false # bool | If this is true, DevSpace will not push any images
preferMinikube: true # bool | If false, will not try to use the minikube docker daemon to build the image
args: [] # string[] | Additional arguments to call docker buildx build with
command: [] # string[] | Override the base command to create a builder and build images. Defaults to ["docker", "buildx"]
options: ... # struct | Set build general build options
inCluster: # struct | If specified, DevSpace will use BuildKit to build the image within the Kubernetes cluster
name: "" # string | Name is the name of the builder to use. If omitted, DevSpace will try to create
# | or reuse a builder in the form devspace-$NAMESPACE
namespace: "" # string | Namespace where to create the builder deployment in. Defaults to the current active namespace.
rootless: false # bool | If enabled will create a rootless BuildKit deployment.
image: "" # string | The docker image to use for the BuildKit deployment
nodeSelector: "" # string | The node selector to use for the BuildKit deployment
createArgs: [] # string[] | Additional args to create the builder with.
noCreate: false # bool | By default, DevSpace will try to create a new builder if it cannot be found.
# | If this is true, DevSpace will fail if the specified builder cannot be found.
noRecreate: false # bool | By default, DevSpace will try to recreate the builder if the builder configuration
# | in the devspace.yaml differs from the actual builder configuration. If this is
# | true, DevSpace will not try to do that.
noLoad: false # bool | If enabled, DevSpace will not try to load the built image into the local docker
# | daemon if skip push is defined

images[*].build.kaniko#

kaniko: # struct | Options for building images with kaniko
cache: true # bool | Use caching for kaniko build process
annotations: {} # map | Extra annotations for the kaniko build pod
labels: {} # map | Extra labels for the kaniko build pod
snapshotMode: "time" # string | Type of snapshotMode for kaniko build process (compresses layers)
insecure: false # bool | Allow working with an insecure registry by not validating the SSL certificate (Default: false)
command: [] # string[] | Array of strings for the kaniko pod
args: [] # string[] | Array of additional args for kaniko build command
image: "" # string | Allows to change the kaniko image or kaniko version / image tag.
initImage: "" # string | Allows to change the init container kaniko image (defaults to alpine)
serviceAccount: "" # string | The service account to use for this build pod
nodeSelector: {} # map | A key value map of node labels to select a node for the build pod
pullSecret: "" # string | Mount this Kubernetes secret instead of creating one to authenticate to the registry (default: "")
additionalMounts: [] # struct[] | Array of mount configurations for Kubernetes Secrets and ConfigMaps that should be mounted into the kaniko build container
namespace: "" # string | Kubernetes namespace to run kaniko build pod in (Default: "" = deployment namespace)
options: ... # struct | Set build general build options
skipPullSecretMount: true # bool | If true devspace will not mount and create any image pull secret for the kaniko pod
env: # map | Key value pairs of environment variables that should be added to the kaniko container (fills the env.value field)
my-string-env: value
envFrom: # map | Key value pairs of environment variables that should be added to the kaniko container (fills the env.valueFrom field)
my-env-from-secret:
secretKeyRef: ...
my-env-from-configmap:
configMapKeyRef: ...
initEnv: {} # map | Key value pairs of enviroment variables that should be added to the kaniko init pod

images[*].build.custom#

custom: # struct | Options for building images with a custom build script
command: "./scripts/builder" # string | Command to be executed for building (e.g. path to build script or executable)
commands: [] # struct[] | An array of objects with keys command and os to exchange the command for a specific os
args: [] # string[] | Array of arguments for the custom build command
appendArgs: [] # string[] | Args are prepended to the command (before the image tags) and appendArgs are appended
imageFlag: string # string | Name of the flag that DevSpace uses to pass the image name + tag to the build script
imageTagOnly: false # bool | If true devspace will only use the image tag as argument
skipImageArg: false # bool | If true devspace will skip adding image:tag as argument completely
onChange: [] # string[] | Array of paths (glob format) to check for file changes to see if image needs to be rebuilt

images[*].build.disabled#

build: # struct | Build configuration for an image
disabled: true # bool | Disable image building (Default: false)

images[*].build.*.options#

options: # struct | Options for building images
target: "" # string | Target used for multi-stage builds
network: "" # string | Network mode used for building the image
buildArgs: {} # map[string]string | Key-value map specifying build arguments that will be passed to the build tool (e.g. docker)

deployments#

deployments: # struct[] | Array of deployments
- name: my-deployment # string | Name of the deployment
namespace: "" # string | Namespace to deploy to (Default: "" = namespace of the active namespace/Space)
helm: ... # struct | Use Helm as deployment tool and set options for Helm
kubectl: ... # struct | Use "kubectl apply" as deployment tool and set options for kubectl
info

Using the helm or kubectl key will define the type of deployment and the deployment tool to be used.

warning

You cannot use helm and kubectl in combination.

deployments[*].helm#

helm: # struct | Options for deploying with Helm
chart: ... # struct | Relative path
componentChart: false # bool | Use the DevSpace component chart instead of a custom `chart` = deployment is a component (Default: false)
values: {} # struct | Any object with Helm values to override values.yaml during deployment
valuesFiles: # string[] | Array of paths to values files
- ./chart/my-values.yaml # string | Path to a file to override values.yaml with
replaceImageTags: true # bool | Enable automated tag replacement (Default: true)
wait: false # bool | Wait for pods to start after deployment (Default: false)
timeout: 180 # int | Timeout to wait for pods to start after deployment (Default: 180)
force: false # bool | Force deleting and re-creating Kubernetes resources during deployment (Default: false)
atomic: false # bool | Rollback deployment if it fails (Default: false)
cleanupOnFail: false # bool | Delete resources if rollback fails (Default: false)
recreate: false # bool | Recreate pods for applicable resources, e.g. deployments (Default: false)
disableHooks: false # bool | Disable hooks (Default: false)
v2: false # bool | Use legacy Helm v2 (Default: false)
tillerNamespace: "" # string | Kubernetes namespace to run Tiller in when using Helm v2 (Default: "" = same a deployment namespace)
deleteArgs: [] # []string | Extra args for the `helm delete` command during devspace purge
templateArgs: [] # []string | Extra args for the `helm template` command during devspace render
upgradeArgs: [] # []string | Extra args for the `helm upgrade` command during devspace deploy/dev
fetchArgs: [] # []string | Extra args for the `helm fetch` command during devspace render

Learn more about configuring deployments with Helm.

deployments[*].helm.componentChart#

helm:
componentChart: true # bool | Use Component chart
values: # struct | Options for deploying a component = Deployment/StatefulSet
initContainers: ... # struct[] | Init Containers of this Deployment/StatefulSet
containers: ... # struct[] | Containers of this Deployment/StatefulSet
labels: {} # map[string]string | Map of Kubernetes labels for labeling the pods of this component
annotations: {} # map[string]string | Map of Kubernetes annotations for annotating the pods of this component
volumes: ... # struct | Component volumes
service: ... # struct | Component service
serviceName: my-service # string | Service name for headless service (for StatefulSets)
ingress: ... # struct | Component ingress
replicas: 1 # int | Number of replicas (Default: 1)
autoScaling: ... # struct | AutoScaling configuration
rollingUpdate: ... # struct | RollingUpdate configuration
pullSecrets: ... # string[] | Array of PullSecret names
podManagementPolicy: OrderedReady # enum | "OrderedReady" or "Parallel" (for StatefulSets)
options: ... # struct | Options for deploying this component with helm

Learn more about configuring the component chart.

deployments[*].helm.chart#

chart: # struct | Chart to deploy
name: my-chart # string | Path to local chart on filesystem OR chart name for remote chart in helm chart repository
version: v1.0.1 # string | Chart version
repo: "https://my-repo.tld/" # string | Helm chart repository
username: "my-username" # string | Username for Helm chart repository
password: "my-password" # string | Password for Helm chart repository

deployments[*].kubectl#

kubectl: # struct | Options for deploying with "kubectl apply"
manifests: [] # string[] | Array containing glob patterns for the Kubernetes manifests to deploy using "kubectl apply" (e.g. kube or manifests/service.yaml)
kustomize: false # bool | Use kustomize when deploying manifests via "kubectl apply" (Default: false)
replaceImageTags: true # bool | Enable automated tag replacement (Default: true)
applyArgs: [] # string[] | Array of args for the "kubectl apply" command during deployment
createArgs: [] # string[] | Array of args for the "kubectl create" command during deployment
kustomizeArgs: [] # string[] | Array of args for the "kustomize build" command during deployment
deleteArgs: [] # string[] | Array of args for the "kubectl delete" command when purging deployments
cmdPath: "" # string | Path to the kubectl binary (Default: "" = detect automatically)

Learn more about configuring deployments with kubectl.

dev#

dev: # struct | Options for "devspace dev"
ports: [] # struct[] | Array of port-forwarding settings for selected pods
open: [] # struct[] | Array of auto-open settings
sync: [] # struct[] | Array of file sync settings for selected pods
logs: ... # struct | Options for configuring multi-container log streaming
autoReload: ... # struct | Options for auto-reloading (i.e. re-deploying deployments and re-building images)
interactive: ... # struct | Options for configuring the interactive mode

Learn more about configuring development mode.

dev.ports#

ports: # struct[] | Array of port forwarding settings for selected pods
- imageName: someImage # string | Name of an image defined in `images` or in a dependency to select pods with
imageSelector: john/backend:0.1 # string | Image of a container by which DevSpace should select the pod
labelSelector: ... # struct | Key Value map of labels and values to select pods with
namespace: "" # string | Kubernetes namespace to select pods in
containerName: "" # string | Name of the container to select (only applies if reverseForward is used)
arch: "amd64" # string | Target architecture of the selected container (only applies if reverseForward is used)
forward: # struct[] | Array of ports to be forwarded
- port: 8080 # int | Forward this port on your local computer
remotePort: 3000 # int | Forward traffic to this port exposed by the pod/container selected
bindAddress: "" # string | Address used for binding / use 0.0.0.0 to bind on all interfaces (Default: "localhost" = 127.0.0.1)
reverseForward: # struct[] | Array of ports to reverse forward
- port: 3000 # int | Local port that should be accessible remotely
remotePort: 8080 # int | Port in the container where the local port can be accessed

Learn more about configuring port forwarding.

dev.open#

open: # struct[] | Array of auto-open settings
- url: "https://localhost:3000/" # string | URL to open after application has started

Learn more about configuring auto-opening links.

dev.sync#

sync: # struct[] | Array of file sync settings for selected pods
- imageName: someImage # string | Name of an image defined in `images` or in a dependency to select pods with
imageSelector: john/backend:0.1 # string | Image of a container by which DevSpace should select the pod
labelSelector: ... # struct | Key Value map of labels and values to select pods with
containerName: "" # string | Container name to use after selecting a pod
namespace: "" # string | Kubernetes namespace to select pods in
localSubPath: ./ # string | Relative path to a local folder that should be synchronized (Default: "./" = entire project)
disableDownload: false # bool | If true will disable downloading files
disableUpload: false # bool | If true will disable uploading files
containerPath: /app # string | Path in the container that should be synchronized with localSubPath (Default is working directory of container ("."))
excludePaths: [] # string[] | Paths to exclude files/folders from sync in .gitignore syntax
downloadExcludePaths: [] # string[] | Paths to exclude files/folders from download in .gitignore syntax
uploadExcludePaths: [] # string[] | Paths to exclude files/folders from upload in .gitignore syntax
initialSync: mirrorLocal # enum | Specifies the initialSync algorithm: mirrorLocal, mirrorRemote, preferLocal, preferRemote, preferNewest, keepAll (Default: mirrorLocal)
initialSyncCompareBy: mtime # enum | Specifies how the initialSync determines if a file has changed: mtime / size
waitInitialSync: false # bool | Wait until initial sync is completed before continuing (Default: false)
throttleChangeDetection: 100 # int | If greater zero, describes the amount of milliseconds to wait after each checked 100 files on the remote site
arch: "amd64" # string | Target architecture of the selected container
polling: false # bool | If polling should be used to detect file changes in the container
bandwidthLimits: # struct | Bandwidth limits for the synchronization algorithm
download: 0 # int64 | Max file download speed in kilobytes / second (e.g. 100 means 100 KB/s)
upload: 0 # int64 | Max file upload speed in kilobytes / second (e.g. 100 means 100 KB/s)
onUpload: # struct | After a file/folder has been uploaded to the container...
restartContainer: true # bool | Restart container after uploading files (requires images.*.injectRestartHelper: true)
execRemote: # struct | ...execute the following command inside the container:
command: chmod # string | Command to execute for files and folders
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder
onFileChange: # struct | Command to execute ONLY for files
command: chmod # string | Command
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder
onDirCreate: # struct | Command to execute ONLY for newly created directories
command: chmod # string | Command
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder
onBatch: # struct | Command to execute after sync has processed a full batch of files and folders
command: recompile # string | Command
args: # string[] | Argument list (NOTE: {} is NOT available for onBatch)
- assets # string | Arument 1
- --minify # string | Argument 2
onDownload: # struct | After a file/folder has been downloaded from the container to the local filesystem...
execLocal: # struct | ...execute the following command on the local machine:
command: chmod # string | Command to execute for files and folders
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder
onFileChange: # struct | Command to execute ONLY for files
command: chmod # string | Command
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder
onDirCreate: # struct | Command to execute ONLY for newly created directories
command: chmod # string | Command
args: # string[] | Argument list
- +x # string | Argument 1
- {} # string | Argument 2: {} will be replaced with path of the file/folder

Learn more about confguring the file synchronization.

dev.logs#

logs: # struct | Options for multi-container log streaming in development mode
disabled: false # bool | Disable log streaming in development mode (Default: false)
showLast: 200 # int | Number of last log lines to show before starting stream (Default: 50)
images: [] # string[] | Array of image names referencing images defined in `images` for selecting containers for log streaming
sync: true # bool | If the sync log should be merged with container and pod logs
selectors: # struct[] | An array of additional label selectors to select pods to stream logs from
- labelSelector:
other: label
namespace: optional
containerName: optional

Learn more about configuring multi-container log streaming.

dev.autoReload#

autoReload: # struct | Options for auto-reloading (i.e. re-deploying deployments and re-building images)
paths: [] # string[] | Array containing glob patterns of files that are watched for auto-reloading (i.e. reload when a file matching any of the patterns changes)
deployments: [] # string[] | Array containing names of deployments to watch for auto-reloading (i.e. reload when kubectl manifests or files within the Helm chart change)
images: [] # string[] | Array containing names of images to watch for auto-reloading (i.e. reload when the Dockerfile changes)

dev.terminal#

terminal: # struct | Options for terminal mode
imageName: someImage # string | Name of an image defined in `images` or in a dependency to select pods with
imageSelector: john/backend:0.1 # string | Image of a container by which DevSpace should select the pod
labelSelector: ... # struct | Key Value map of labels and values to select pods with
containerName: "" # string | Container name to use after selecting a pod
namespace: "" # string | Kubernetes namespace to select pods in
command: [] # string[] | Array defining the shell command to start the terminal with (Default: ["sh", "-c", "command -v bash >/dev/null 2>&1 && exec bash || exec sh"])
workDir: "" # string | The working directory where to execute the command or open the shell

Learn more about terminal config options.

dev.replacePods#

replacePods: # struct[] | Which pods should be replaced
- imageName: someImage # string | Name of an image defined in `images` or in a dependency to select pods with
imageSelector: john/backend:0.1 # string | Image of a container by which DevSpace should select the pod
labelSelector: ... # struct | Key Value map of labels and values to select pods with
containerName: "" # string | Container name to use after selecting a pod
namespace: "" # string | Kubernetes namespace to select pods in
replaceImage: "" # string | The image that should be used for the pod
patches: # struct[] | Other patches that should be applied on the pod
- op: add # enum | Patch operation (replace, add, remove)
path: "spec.containers[0].command" # string | Jsonpath or xpath to config option that should be patched
value: ["sleep"] # arbitrary | Value to use for patch operation

Learn more about replacing pods.

dependencies#

dependencies: # struct[] | Array of dependencies (other projects containing a devspace.yaml or devspace-configs.yaml) that need to be deployed before this project
- source: # struct | Defines where to find the dependency (exactly one source is allowed)
git: https://github.com/my-repo # string | HTTP(S) URL of the git repository (recommended method for referencing dependencies, must have the format of the git remote repo as usually checked out via git clone)
subPath: repo/sub/path # string | Path within the git repo where devspace.yaml can be found
branch: master # string | Git branch to checkout
tag: v1.2.3 # string | Git tag to checkout
revision: ac66e49 # string | Git revision (commit has) to checkout
disableShallow: false # bool | Allows to disable shallow git clones using "--depth 1"
cloneArgs: [] # string[] | Array of args for the "git clone" command for retrieving git based dependencies
path: ../../my-projects/repo # string | Path to a project on your local computer (not recommended, instead of using git-related options)
profile: default # string | Name of the profile used to deploy this dependency (when multiple profiles are defined in the devspace.yaml of the dependency)
skipBuild: false # bool | Do not build images of this dependency (= only start deployments)
ignoreDependencies: false # bool | Do not build and deploy dependencies of this dependency
namespace: "" # string | Kubernetes namespace to deploy dependency to (Default: default namespace of current kube-context)
dev: # struct | Define which dev config should be reused from a dependency
ports: false # bool | Reuse dev.ports config from the dependency
sync: false # bool | Reuse dev.sync config from the dependency
overwriteVars: true # bool | If not defined or true, will overwrite values of variables with the same name in the dependency
vars: # struct[] | Variables in the dependency config that should be overriden with the specified values
- name: NAME
value: value

Learn more about configuring dependencies.

warning

You cannot use source.git and source.path in combination. You must exactly use one of the two.

hooks#

hooks: # struct[] | Array of hooks to be executed. A hook can only have either one of the following fields defined:
# | - hooks[*].command which will either execute a command locally or remotely in a container
# | - hooks[*].upload which will upload files or folders into a container
# | - hooks[*].download which will download files or folder from a container
# | - hooks[*].wait which will wait for a container to become running or terminate
# | - hooks[*].logs which will print the logs for a certain container
- command: "./scripts/my-hook" # string | Command to be executed when this hook is triggered (if no args a specified, will be executed in a golang shell)
args: [] # string[] | (Optional) Array of arguments for the command of this hook
upload: # struct | If defined will upload files or folders into the container.
localPath: ./test # string | The local path of the file or folder
containerPath: /app # string | The remote path where to upload the file or folder into
download: # struct | If defined will download files or folders from the container.
containerPath: /app # string | The remote path where to download the file or folder from
localPath: ./test # string | The local path where to download the file or folder
logs: # struct | If logs is defined will print the logs of the target container. This is useful for containers
# | that should finish like init containers or job pods. Otherwise this hook will never terminate.
tailLines: /app # int | If set, the number of lines from the end of the logs to show
wait: # struct | If wait is defined the hook will wait until the matched pod or container is running or is terminated
# | with a certain exit code.
running: true # bool | If running is true, will wait until the matched containers are running. Can be used together with terminatedWithCode.
terminatedWithCode: 0 # int | If terminatedWithCode is not nil, will wait until the matched containers are terminated with the given exit code.
# | If the container has exited with a different exit code, the hook will fail. Can be used together with running.
timeout: 150 # int | Timeout of seconds to wait for matched containers to reach the given state until the hook will fail.
os: darwin # string | If specified then this hook is only executed on the given operating system
background: false # bool | If true DevSpace will not wait for the command to finish and directly move on
silent: false # bool | If true DevSpace will not print any command output to the console
where:
container: # struct | If specified, DevSpace will run the command in the container instead of locally
imageName: my-image # string | Name of an image defined in `images` to select pods with
labelSelector: ... # struct | Key Value map of labels and values to select pods with
containerName: "" # string | Container name to use after selecting a pod
namespace: "" # string | Kubernetes namespace to select pods in
when: # struct | Trigger for executing this hook
before: # struct | Run hook before a certain execution step
pullSecrets: "all" # string | "all" for running hook before creating image pull secrets
dependencies: "all" # string | "all" for running hook before deploying dependencies
images: "all" # string | "all" for running hook before building the first image
deployments: "all" # string | Name of the deployment you want to run this hook before deploying OR "all" for running hook before deploying the first deployment
after: # struct | Run hook after a certain execution step
pullSecrets: "all" # string | "all" for running hook after creating image pull secrets
dependencies: "all" # string | "all" for running hook after deploying dependencies
images: "all" # string | all" for running hook after building the last image
deployments: "all" # string | Name of the deployment you want to run this hook after deploying OR "all" for running hook after deploying the last deployment
onError:
pullSecrets: "all" # string | "all" for running hook if an error occurs during creating image pull secrets
dependencies: "all" # string | "all" for running hook if an error occurs during deploying dependencies
images: "all" # string | all" for running hook if an error occurs during building images
deployments: "all" # string | Name of the deployment you want to run this hook if an error occurs during deploying OR "all" for running hook if an error occurs during deploying any deployment

commands#

commands: # struct[] | Array of custom commands
- name: "debug-backend" # string | Name of the command to run via `devspace run debug-backend`
command: "devspace dev -i backend" # string | Command to be executed when running `devspace run [name]`
args: ... # string[] | Args for the command to be executed

Learn more about configuring custom commands.

vars#

vars: # struct[] | Array of config variables
- name: CONFIG_VAR # string | Name of the config variable
value: my-value # any | The fixed value of the config variable
question: "What is CONFIG_VAR?" # string | Question to ask the user if no value is found for variable
options: [] # string[] | Options for picker (selector) to show to user (to choose a value for variable)
password: false # bool | Hide user input when providing value via command-line, i.e. replaces input with `*****` (Default: false)
validationPattern: "" # string | Regexp to validate user input
validationMessage: "" # string | Message to show to user for input validation
default: "" # any | Default value for variable
source: "all" # enum | Source for variable (all = default, env, input, command)
command: "" # string | If specified will retrieve the variable from the command
args: [] # string[] | The arguments for the command to retrieve the variable from
commands:
- command: "" # string | Os specified command to retrieve the variable from
args: [] # string[] | The arguments for the os specific command
os: darwin # string | The os to execute this command on

Learn more about configuring config variables.

profiles#

profiles: # struct[] | Array of config profiles
- name: profile-name # string | Name of the profile
parents:
- profile: parent-profile # string | Name of the parent of this profile (profile inheritance)
source: # | Optional source where to find the profile
git: https://github.com/my-repo # string | HTTP(S) URL of the git repository to retrieve the profile from
subPath: repo/sub/path # string | Path within the git repo where devspace.yaml can be found
branch: master # string | Git branch to checkout
tag: v1.2.3 # string | Git tag to checkout
revision: ac66e49 # string | Git revision (commit has) to checkout
disableShallow: false # bool | Allows to disable shallow git clones using "--depth 1"
cloneArgs: [] # string[] | Array of args for the "git clone" command for retrieving git based dependencies
path: ../../my-projects/repo # string | Path to a project on your local computer or an URL to a devspace.yaml
merge: {} # struct | Merge the provided object into the config
strategicMerge: {} # struct | Strategic Merge the provided object into the config
patches: # struct[] | Array of config patches
- op: "replace" # enum | Patch operation (replace, add, remove)
path: "images.backend.cmd" # string | Jsonpath or xpath to config option that should be patched
value: "" # arbitrary | Value to use for patch operation
from: "" # string | Jsonpath or xpath to config option which should be used as value for operation
replace: # struct | Array of replacements for entire config sections
images: {} # struct | Replacement for entire `images` section
deployments: {} # struct | Replacement for entire `deployments` section
dev: {} # struct | Replacement for entire `dev` section
dependencies: {} # struct | Replacement for entire `dependencies` section
hooks: {} # struct | Replacement for entire `hooks` section

Learn more about configuring profiles and patches.