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 5 years ago
devspace update config
will now show a warning that profiles are not updated automaticallydevspace list ports
Published by FabianKramm almost 5 years ago
Published by LukasGentele about 5 years ago
devspace enter -l label=value
#751devspace set var
that allows the user to set a specific configuration variabledevspace reset dependencies
that erases the dependency cachedevspace dev
that only opens a terminal (and not overrides image entrypoints like -i does)devspace sync
that does sync the files from local and remote and then stopsdevspace build
devspace update config
devspace open
now also works for wildcard domains such as *.my-domain.comdevspace dev
now fatals instead of showing an error if the forwarded port is already in use by a previous devspace dev instancedevspace dev
& devspace deploy
devspace init
where the port forwarding was not correctly writtendevspace init
where the image name was not correctly writtendevspace update config
devspace enter
now shows an error immediately when trying to enter a pod with a label selector that does not existPublished by FabianKramm about 5 years ago
devspace set var
that allows the user to set a specific configuration variabledevspace reset dependencies
that erases the dependency cachedevspace dev
that only opens a terminal (and not overrides image entrypoints like -i does)devspace sync
that does sync the files from local and remote and then stopsdevspace build
devspace update config
devspace open
now also works for wildcard domains such as *.my-domain.comdevspace dev
now fatals instead of showing an error if the forwarded port is already in use by a previous devspace dev instancedevspace dev
& devspace deploy
devspace init
where the port forwarding was not correctly writtendevspace init
where the image name was not correctly writtendevspace update config
devspace enter
now shows an error immediately when trying to enter a pod with a label selector that does not existPublished by FabianKramm about 5 years ago
devspace sync
that is enabled by default (#732)devspace dev
if there is no sync path with the image name (#733). In addition, you can configure a labelSelector and imageName together for sync paths, port forwarding etc.For more details, see: https://devspace.cloud/blog/2019/10/11/release-devspace-v4.0.4
Published by LukasGentele about 5 years ago
devspace init
and add deployment --component=x
will add helm deployments instead of component deployments now (makes it more understandable that a component is technically just a helm deployment)devspace logs|attach|enter
--option-ui
flag for devspace connect cluster
devspace list namespaces
devspace list contexts
devspace remove deployment
and in analytics util packagePublished by LukasGentele about 5 years ago
vars[*].password
for variables (hides response to question with *
)dev.sync[*].downloadOnInitialSync
to explicitly enable downloading changes on initial sync)--host
to specify provider host (DevSpace Cloud on-premise)Published by FabianKramm about 5 years ago
--switch-context / -s
flag to automatically switch to and use the last kube context and namespace that was used to deploy the current DevSpace projectdevspace use context
etc.devspace connect cluster
keep going even if admission controller and cert-manager deployment has failedPublished by LukasGentele about 5 years ago
devspace-configs.yaml
devspace.yaml
, you can now define different 'profiles' directly in the devspace.yaml
instead of having different configs (see profiles documentation).images
,deployments
etc.) or patch specific fields in the config by providing 1) a jsonpath or xpath to the config option, 2) an operation (replace, add, remove) and 3) a value. We believe this gives the user more power of how values can be overridden (especially for alterations of arrays). At the same time, patches seem easier to use and understand than the previous override system although they might require more lines of config (see patches documentation).This is a basic example how a devspace.yaml
with multiple profiles and patches can look like:
version: v1beta3
images:
test:
image: myimage
deployments:
- name: test
component:
containers:
- image: myimage
profiles:
# A profile name
- name: myprofile
# Replacement parts which will completely replace a part of the config
replace:
# images: {} Will replace images completely with an empty configuration
# deployments: {}
dev:
ports:
- imageName: test
forward:
- port: 8080
# With patches you have to option to replace, add or remove certain parts of the configuration
patches:
# Will remove the image test
- op: remove
path: images.test
# Replaces the image name in the deployment with nginx
- op: replace
path: deployments[0].component.containers[0].image
value: nginx
devspace.yaml
. DevSpace will only ask the variables in the currently used profile which means you can define all config variables for all profiles in one place (see variables documentation):version: v1beta3
deployments:
# This will be filled with a question on `devspace deploy` or `devspace dev`, alternatevly you could also set the
# environment variable SELECT to avoid the question and fill it automatically
- name: ${SELECT}
component:
containers:
- image: ${IMAGE}
- image: nginx:${SOME_ENV_VAR}
vars:
- name: SELECT
question: Please choose a deployment name
options:
- deployment-1
- deployment-2
- name: IMAGE
question: Please specify an image name, or press enter to use 'nginx'
default: nginx
source: input
validationPattern: ^n.*$
validationMessage: Only image names that start with a 'n' are allowed
- name: UNUSED
question: This variable is not asked because it is not used in the config above
cluster.kubeContext
and cluster.namespace
since this caused some confusion which kube-context and namespace were used during deployment. Instead DevSpace will now always use the current kube-context (or the context passed via the --kube-context
flag) and remember the most recently used kube-context and namespace. If the user starts the deployment process using devspace dev
or devspace deploy
, DevSpace will print a warning if the current kube-context is different than the previously used one and wait a couple of seconds to give the user the chance to abort the command and prevent that the user accidentally deploys to the wrong cluster or namespace.devspace install
since this command is no longer neededdevspace use/list config(s)
into devspace use/list profile(s)
devspace add/list/remove selector
devspace dev
will not rebuild images if there were changes in the image context path--pick
-p
was removed. -p
is not used as --profile
shortcut flagdev.overrideImages.dockerfile
and dev.overrideImages.context
were removed. dev.overrideImages
was renamed to dev.interactive
. The config will be automatically converted via devspace update config
v1beta3
(run devspace update config
to convert your current config automatically)Example:
# File: devspace.yaml
version: v1beta3
images:
default:
image: john/backend
commands:
- name: debug-backend
command: "devspace dev -i --profile=debug-backend"
profiles:
- name: debug-backend
patches:
- op: replace
path: images.default.entrypoint
value: ["npm", "run", "debug"]
You can execute custom commands with: devspace run debug-backend
--debug - Prints the stack trace if an error occurs
--silent - Run in silent mode and prevents any devspace log output except fatals & panics
--no-warn - If true does not show any warning when deploying into a different namespace or kube-context than before
--profile - The devspace profile to use (if there is any)
--namespace - The kubernetes namespace to use
--kube-context - The kubernetes context to use
--var - Variables to override during execution (e.g. --var=MYVAR=MYVALUE)
devspace.yaml
and switch between those profiles via the devspace use profile
command or the --profile / -p
flag. See multiple profiles for an example how to use profiles.devspace dev
is now able to log multiple pods to the console. To enable this behavior by default strip the config option dev.interactive
from your devspace.yaml
.devspace dev -i
you can choose an image which should be started in interactive mode. This means that the image entrypoint will be overriden by a sleep command and a terminal to that image will be openend. Interactive mode can be configured as default to mimic old behaviour with the config option dev.interactive.enabled
and dev.interactive.images
. dev.terminal
was moved to dev.interactive.terminal
(see interactive mode documentation).dev.sync[*].imageName
and dev.sync[*].imageName
as an alternative to labelSelector
. With imageName
DevSpace will automatically find the pods in which the image is used and start sync or port-forwarding. For a working example take a look at quickstart
dev.open
: you can DevSpace now automatically open the browser to a certain webpage like http://localhost:8080
(see auto-open documentation).devspace use context
to switch the current kube-context and devspace use namespace
to switch the current configured default namespace in the kube-contextdevspace attach
that allows users to attach to a specific pod and container (behaves like kubectl attach but has a picker to select pods)--verbose-dependencies
in devspace dev/deploy/purge/build
to print the output of dependency deploymentdev.logs
: you can specify if DevSpace should display image logs on devspace dev
and what images should be logged (see multi-container log streaming documentation).images[*].entrypoint
& images[*].cmd
which allows you to specify an entrypoint and cmd that will be used during deployment (also works with multi stage build)deployments[*].kubectl.replaceImageTags
, deployments[*].helm.replaceImageTags
& deployments[*].component.options.replaceImageTags
to prevent automatic replacement of image tags for deploymentsdependencies[*].config
into dependencies[*].profile
dev.selectors
(will be converted automatically), use imageName where possible instead.selector
and --selector
flags, use imageName where possible insteaddevspace update config
to automatically update your config to the newest version.devspace dev
is now able to log multiple pods to the console (see multi-container log streaming documentation). To enable this behavior by default strip the config option dev.interactive
from your devspace.yaml
.devspace dev
, you can still return to the old behavior (overriding the entrypoint with sleep and opening an interactive terminal) using devspace dev -i
using the -i / --interactive
flag (see interactive mode documentation)Published by FabianKramm about 5 years ago
Changes:
Published by FabianKramm about 5 years ago
Changes:
devspace enter
, devspace dev
and devspace sync
commands: kubernetes connections will now stay open and shouldn't be killed anymore after the idle timeout by the kube api server (#639 & #511)devspace use
commands if no arguments were specified (#640)devspace connect cluster
where the name flag was not correctly working (#600)Published by FabianKramm about 5 years ago
Changes:
devspace add provider
now also switches the default provider (#632)Published by FabianKramm about 5 years ago
Changes:
Published by FabianKramm about 5 years ago
Changes:
devspace build
command, that will only build and push images specified in the config (#606)devspace dev
& devspace enter
now return the correct command exit code (#614)devspace list deployments
will resume a sleeping space now (#621)devspace deploy
and devspace dev
(#622)devspace use space
(#615)Published by FabianKramm about 5 years ago
Changes:
devspace reset vars
command that resets the specified vars for the current config (#592)devspace use provider
command to easily set the default provider to an on-premise DevSpace Cloud versiondevspace add port
where the port was not correctly addedPublished by FabianKramm over 5 years ago
Published by FabianKramm over 5 years ago
Published by FabianKramm over 5 years ago
devspace cleanup images
command to conveniently cleanup built images from devspace from dockerPublished by FabianKramm over 5 years ago
devspace connect cluster
now automatically configures a space domainPublished by FabianKramm over 5 years ago
devspace cluster connect
(We will implement a feature soon where a devspace.host domain will be automatically provisioned for the cluster)devspace init
(#557).devspace/
folder to dockerignore during builddevspace init
would result in a wrong Dockerfile