DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
APACHE-2.0 License
Bot releases are hidden (Show)
Published by FabianKramm almost 4 years ago
Published by FabianKramm almost 4 years ago
source: command
to variables. It is now possible to retrieve variable values from commands, e.g.:images:
database:
image: "mysql:${MYSQL_VERSION}"
vars:
- name: MYSQL_VERSION
source: command
command: echo
args: ["5.5"]
DEVSPACE_GIT_BRANCH
predefined variable that holds the current git branchtagsAppendRandom
that automatically adds a random suffix to each tag and avoids the rebuilding problem described in #1188devspace dev --config other-folder/devspace.yaml
(#1226)devspace restart
wouldn't work without running devspace dev
or devspace sync
priordevspace deploy/dev --wait
Published by FabianKramm almost 4 years ago
pullSecrets
that lets you define additional image pull secrets devspace should create in the target namespace (for more informations take a look at the docs):images: ...
deployments: ...
pullSecrets:
# Pull secret for the registry my-registry.com:5000
- registry: my-registry.com:5000
username: my-user
password: my-password
# Name of the pull secret
secret: my-pull-secret-name
# Service accounts to add this pull secret to
serviceAccounts:
- default
- my-other-service-account
merge
and strategicMerge
in profiles which can now be used as an alternative to replace
and patches
(for more informations take a look at the docs):images:
backend:
image: john/devbackend
backend-debugger:
image: john/debugger
deployments:
- name: backend
helm:
componentChart: true
values:
containers:
- image: john/devbackend
- image: john/debugger
profiles:
- name: production
merge:
images:
# Change the backend image
backend:
image: john/prodbackend
# Override deployments
deployments:
- name: backend
helm:
componentChart: true
values:
containers:
- image: john/prodbackend
--skip-deploy
for devspace deploy
to use it for building images or creating pull secrets onlyhooks.[*].os
to execute hooks only on certain operating systemsdevspace dev -i
is now deprecated and will be removed with the next major devspace version. Please use profiles instead
hooks
were not correctly parsed in pluginsPublished by FabianKramm almost 4 years ago
Published by FabianKramm almost 4 years ago
Published by FabianKramm almost 4 years ago
Published by FabianKramm almost 4 years ago
Published by FabianKramm almost 4 years ago
From v5.2.0 onward devspace uses the locally installed helm cli instead of helm as a library. If no available helm v2 or v3 binary was found, devspace will automatically install helm.
deployments.*.helm.upgradeArgs
, deployments.*.helm.templateArgs
and deployments.*.helm.deleteArgs
to helm options (#1192)DEVSPACE_SKIP_VERSION_CHECK
to skip version check (#1198)profiles.*.parents
that can define multiple parent profiles, e.g.: (#1199)version: v1beta9
profiles:
- name: multi-parents
# New field that applies the profile deployments first and then the profile images
parents:
- profile: deployments
- profile: images
- name: deployments
replace:
deployments:
- name: my-deployment
helm:
componentChart: true
values:
containers:
- name: test
- name: images
replace:
images:
test:
image: mydockeruser/devspace
createPullSecret: true
profiles.*.parents.*.source
that can define profiles that lie in a different devspace.yaml
: (#1200)version: v1beta9
profiles:
- name: dev
parents:
- profile: images
source:
path: other-folder # devspace.yaml will be automatically appended to the path (same syntax as with dependencies)
# or load from url
# path: https://raw.githubusercontent.com/my-org/my-repo/master/devspace.yaml
# or load from git
# git: https://github.com/devspace-cloud/devspace.git
- profile: deployments
source:
path: other-folder-2
Published by FabianKramm almost 4 years ago
devspace now internally uses the locally installed helm cli instead of helm as a library. If no available helm v2 or v3 binary was found, devspace will automatically install helm and use this binary.
deployments.*.helm.upgradeArgs
, deployments.*.helm.templateArgs
and deployments.*.helm.deleteArgs
to helm options (#1192)DEVSPACE_SKIP_VERSION_CHECK
to skip version check (#1198)profiles.*.parents
that can define multiple parent profiles, e.g.: (#1199)version: v1beta9
profiles:
- name: multi-parents
# New field that applies the profile deployments first and then the profile images
parents:
- profile: deployments
- profile: images
- name: deployments
replace:
deployments:
- name: my-deployment
helm:
componentChart: true
values:
containers:
- name: test
- name: images
replace:
images:
test:
image: mydockeruser/devspace
createPullSecret: true
profiles.*.parents.*.source
that can define profiles that lie in a different devspace.yaml
: (#1200)version: v1beta9
profiles:
- name: dev
parents:
- profile: images
source:
path: other-folder # devspace.yaml will be automatically appended to the path (same syntax as with dependencies)
# or load from url
# path: https://raw.githubusercontent.com/my-org/my-repo/master/devspace.yaml
# or load from git
# git: https://github.com/devspace-cloud/devspace.git
- profile: deployments
source:
path: other-folder-2
Published by FabianKramm about 4 years ago
devspace ui
would return an 404 errorPublished by FabianKramm about 4 years ago
Published by FabianKramm about 4 years ago
--print-sync
to devspace dev
that prints the sync output to the console and prevents any other output (#1111)devspace save vars
and devspace restore vars
that save or restore devspace config variables from kubernetes secretsdev.sync.initialCompareBy
that allows you to specify that a file should only be synced if the file size has changed during initial sync (#1177)devspace restart
that triggers a restart for all containers where dev.sync.onUpload.restartContainer
was specified (#1161)dev.sync.throttleChangeDetection
to configure throttling of downstream change detection--save-vars
and --restore-vars
as flags to devspace dev
and devspace deploy
dev.sync. throttleChangeDetection
devspace init
Published by FabianKramm about 4 years ago
--port
to devspace open
where the exact port can be specified (#1166)--host
to devspace ui
where the hostname can be specified that devspace should listen on (#1163)Published by FabianKramm about 4 years ago
Published by FabianKramm about 4 years ago
Published by FabianKramm about 4 years ago
devspace-cloud related functionality was completely removed from devspace and moved into a separate devspace plugin devspace-cloud-plugin. To add devspace-cloud functionality again, execute:
devspace add plugin https://github.com/devspace-cloud/devspace-cloud-plugin
After installing the plugin, devspace should work the same way as before.
In addition to the devspace-cloud plugin, there is a new loft-devspace-plugin that will add loft cli functionality to devspace, similar to the devspace-cloud plugin. You can install the loft plugin via:
devspace add plugin https://github.com/loft-sh/loft-devspace-plugin
NOTE: Please make sure that you do not install the loft and devspace-cloud plugin at the same time, since they add commands that overlap with each other e.g. devspace login
that will cause problems.
Added plugins to devspace that extend the functionality of devspace by additional commands, variables and command extensions. A plugin in devspace is defined by a plugin.yaml
that specifies the additional functionality and a platform dependent binary that executes that functionality.
devspace can add plugins via git, local path or an URL:
# Add plugin from git repo
devspace add plugin https://github.com/devspace-cloud/devspace-cloud-plugin
# Add plugin from url
devspace add plugin https://raw.githubusercontent.com/devspace-cloud/devspace-cloud-plugin/master/plugin.yaml
# Add plugin from local path
devspace add plugin ./my-folder/plugin.yaml
A plugin.yaml
can look like this:
# Name of the plugin as shown in devspace list plugins and used for
# devspace update plugin and devspace remove plugin
name: devspace-cloud
# The semantic version of the plugin
version: 0.0.2
# Additional commands that are added to devspace
commands:
# This will add the command devspace login
- name: "login"
# this args are prepended to the plugin binary, so when a user will call 'devspace login test test2 --flag 123'
# devspace will call the plugin binary with 'plugin-binary plugin binary arg test test2 --flag 123'
baseArgs: ["plugin", "binary", "arg"]
usage: "short description of command"
description: "long description of command"
# You can also add commands under already existing devspace subcommands
# This will add the devspace command: devspace add provider
- name: "provider"
baseArgs: ["add", "provider"]
subCommand: "add"
# Hooks are called before certain already existing commands are executed
# in devspace, for example devspace dev
hooks:
# will be executed when devspace dev is run by the user
- event: dev
# this will call the plugin binary before devspace dev is called with: 'plugin-binary do something'
baseArgs: ["do", "something"]
# You can also add predefined variables for the config via plugins
vars:
# the name of the predefined variable
# that can be used within any devspace.yaml
- name: DEVSPACE_SPACE
# this will call the plugin binary when resolving this variable and expects the variable
# output on stdout. Furthermore devspace will set the env variables
# DEVSPACE_PLUGIN_KUBE_CONTEXT_FLAG and DEVSPACE_PLUGIN_KUBE_NAMESPACE_FLAG
# for the plugin, so the variable can change based on the supplied kube context or namespace
baseArgs: ["vars", "space"]
# In this section the plugin binaries (or scripts) and their locations are defined
# if devspace cannot find a binary for the current runtime.GOOS and runtime.GOARCH
# it will not install the plugin
binaries:
- os: darwin
arch: amd64
# can be either an URL or local path, could be also a script
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-darwin-amd64
- os: linux
arch: amd64
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-linux-amd64
- os: linux
arch: "386"
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-linux-386
- os: windows
arch: amd64
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-windows-amd64.exe
- os: windows
arch: "386"
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-windows-386.exe
Published by FabianKramm about 4 years ago
devspace-cloud related functionality was completely removed from devspace and moved into a separate devspace plugin devspace-cloud-plugin. To add devspace-cloud functionality again, execute:
devspace add plugin https://github.com/devspace-cloud/devspace-cloud-plugin
After installing the plugin, devspace should work the same way as before.
In addition to the devspace-cloud plugin, there is a new loft-devspace-plugin that will add loft cli functionality to devspace, similar to the devspace-cloud plugin. You can install the loft plugin via:
devspace add plugin https://github.com/loft-sh/loft-devspace-plugin
NOTE: Please make sure that you do not install the loft and devspace-cloud plugin at the same time, since they add commands that overlap with each other e.g. devspace login
that will cause problems.
Added plugins to devspace that extend the functionality of devspace by additional commands, variables and command extensions. A plugin in devspace is defined by a plugin.yaml
that specifies the additional functionality and a platform dependent binary that executes that functionality.
devspace can add plugins via git, local path or an URL:
# Add plugin from git repo
devspace add plugin https://github.com/devspace-cloud/devspace-cloud-plugin
# Add plugin from url
devspace add plugin https://raw.githubusercontent.com/devspace-cloud/devspace-cloud-plugin/master/plugin.yaml
# Add plugin from local path
devspace add plugin ./my-folder/plugin.yaml
A plugin.yaml
can look like this:
# Name of the plugin as shown in devspace list plugins and used for
# devspace update plugin and devspace remove plugin
name: devspace-cloud
# The semantic version of the plugin
version: 0.0.2
# Additional commands that are added to devspace
commands:
# This will add the command devspace login
- name: "login"
# this args are prepended to the plugin binary, so when a user will call 'devspace login test test2 --flag 123'
# devspace will call the plugin binary with 'plugin-binary plugin binary arg test test2 --flag 123'
baseArgs: ["plugin", "binary", "arg"]
usage: "short description of command"
description: "long description of command"
# You can also add commands under already existing devspace subcommands
# This will add the devspace command: devspace add provider
- name: "provider"
baseArgs: ["add", "provider"]
subCommand: "add"
# Hooks are called before certain already existing commands are executed
# in devspace, for example devspace dev
hooks:
# will be executed when devspace dev is run by the user
- event: dev
# this will call the plugin binary before devspace dev is called with: 'plugin-binary do something'
baseArgs: ["do", "something"]
# You can also add predefined variables for the config via plugins
vars:
# the name of the predefined variable
# that can be used within any devspace.yaml
- name: DEVSPACE_SPACE
# this will call the plugin binary when resolving this variable and expects the variable
# output on stdout. Furthermore devspace will set the env variables
# DEVSPACE_PLUGIN_KUBE_CONTEXT_FLAG and DEVSPACE_PLUGIN_KUBE_NAMESPACE_FLAG
# for the plugin, so the variable can change based on the supplied kube context or namespace
baseArgs: ["vars", "space"]
# In this section the plugin binaries (or scripts) and their locations are defined
# if devspace cannot find a binary for the current runtime.GOOS and runtime.GOARCH
# it will not install the plugin
binaries:
- os: darwin
arch: amd64
# can be either an URL or local path, could be also a script
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-darwin-amd64
- os: linux
arch: amd64
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-linux-amd64
- os: linux
arch: "386"
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-linux-386
- os: windows
arch: amd64
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-windows-amd64.exe
- os: windows
arch: "386"
path: https://github.com/devspace-cloud/devspace-cloud-plugin/releases/download/v0.0.2/devspace-cloud-plugin-windows-386.exe
Published by FabianKramm over 4 years ago
images.*.build.kaniko.resources
to support specifying the kaniko pod resources in the devspace.yaml (#1126)Published by FabianKramm over 4 years ago
images.*.build.kaniko.resources
to support specifying the kaniko pod resources in the devspace.yaml (#1126)Published by FabianKramm over 4 years ago