Config Reference
version
version: v1beta11 # 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)
Setting the key docker
, kaniko
, custom
or disabled
will define the build tool for this image.
- If neither
docker
,kaniko
,custom
nordisabled
is specified,docker
will be used by default. - By default,
docker
will usekaniko
as fallback when DevSpace is unable to reach the Docker host.
If you specify multiple build tools, DevSpace will try to use them in the following order:
disabled
custom
docker
(uses kaniko as fallback if Docker host not reachable)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
tolerations: [] # struct[] | Array of node tolerations that should be used to schedule 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)
disabled: false # bool | If true, the deployment will not be deployed, purged or rendered
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
Using the helm
or kubectl
key will define the type of deployment and the deployment tool to be used.
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)
displayOutput: false # bool | Display output from helm install/upgrade (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
deployments[*].helm.chart.name
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[*].helm.chart.git
chart:
git:
url: https://github.com/chart-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)
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
cloneArgs: [] # string[] | Array of args for the "git clone" command for retrieving git based dependencies
subPath: subpath/chartdir # string | Path within the git repo where devspace.yaml can be found
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
- name: somePort # string | Optional string stating the name of this port-forwarding configuration
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
- name: someSync # string | Optional string stating the name of this sync configuration
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
excludeFile : "" # string | Path to a file using .gitignore syntax to exclude files/folders from sync
downloadExcludePaths: [] # string[] | Paths to exclude files/folders from download in .gitignore syntax
downloadExcludeFile : "" # string | Path to a file using .gitignore syntax to exclude files/folders from download
uploadExcludePaths: [] # string[] | Paths to exclude files/folders from upload in .gitignore syntax
uploadExcludeFile : "" # string | Path to a file using .gitignore syntax to exclude files/folders from upload
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)
exec:
- name: "my-exec-name" # string | Optional string stating the name of this exec configuration
command: "touch abc.txt" # string | Command that should be executed after DevSpace made changes
args: [] # string[] | Optional args that will force DevSpace to not execute the command in a shell
failOnError: false # bool | If true, DevSpace will restart the sync if the command fails (default: false)
local: false # bool | If true, DevSpace will run the command locally instead of in the container (default: false)
onChange: ["package.json"] # string[] | Optional array of file patterns that will trigger this command
Learn more about configuring 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)
sync: true # bool | If the sync log should be merged with container and pod logs
selectors: # struct[] | An array of label or image selectors to select pods to stream logs from
- labelSelector:
other: label
namespace: optional
containerName: optional
- imageSelector: nginx
namespace: 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
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
- 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
persistPaths: # struct[] | Paths that should get persisted in the replaced pod
- path: /app # string | The container path that should get persisted
volumePath: my-volume/app # string | Optional path on the persistent volume to mount
containerName: "" # string | Optional container name in the replaced pod to persist the path
readOnly: false # bool | If the path should get mounted read only
skipPopulate: false # bool | If true, devspace will not try to pre-populate the path
initContainer: # struct | Additional options for the pre-populating init container
resources: {} # struct | Resources of the pre-populating init container
persistenceOptions: # struct | Additional options for persistPaths
name: "" # string | Optional name of the pvc to reuse / create
size: "10Gi" # string | Size of the pvc to create
readOnly: false # bool | If all defined persistPaths should get mounted read only
storageClassName: "" # string | StorageClassName to use for the persistent volume claim
accessModes: ["ReadWriteOnce"] # string[] | Access modes to use for the persistent volume claim
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)
profiles: [] # string[] | Profiles used to deploy this dependency (when multiple profiles are defined in the devspace.yaml of the dependency)
disabled: false # bool | If true, the dependency will be skipped
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
disableProfileActivation: true # bool | If true will ignore profile activations for this dependency
Learn more about configuring dependencies.
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
- name: "my-hook-name" # string | Optional string stating the name of this hook configuration
events: ["before:deploy"] # struct | Events at which this hook should get executed
disabled: false # bool | If true the hook will be not executed and skipped
command: "echo Hello World!" # 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. If this is specified, command has to be present in PATH
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
container: # struct | If specified, DevSpace will run the command in the container instead of locally
imageSelector: nginx # 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
once: false # bool | If true the command will execute once - unless the targeted container is restarted and the hook is re-executing according to its lifecycle events (default false)
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]`
appendArgs: false # bool | If true, DevSpace will append all arguments to the command
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
alwaysResolve: false # bool | If enabled, the variable will be loaded even though it is not used in config
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)
noCache: false # bool | Disable caching and prompt for value on every run.
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
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
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.
pullSecrets
pullSecrets: # struct[] | Which pull secrets should get created
- registry: my-registry.com:5000 # string | The name of the registry this secret should get created for
disabled: false # bool | If enabled will not create the pull secret for this registry
username: my-user # string | Optional and expects a string with the username to login into the registry
password: my-password # string | Optional and expects a string with the password to login into the registry
email: my-email@domain.com # string | Optional and expects a string with the email to login into the registry.
secret: "" # string | Optional and expects a string how the secret should be named.
serviceAccounts: [] # string[] | Optional and expects an array of strings to which the pull secret should be added