v6.0.0-beta.0 #2108
LukasGentele
started this conversation in
General
v6.0.0-beta.0
#2108
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Config Version v2beta1
With v6 a new config version v2beta1 was introduced, that restructures many parts of the DevSpace config, such as deployments, dev, commands and vars. Older config versions are still supported and will be converted automatically in memory by DevSpace to this new version. To see how the old config got converted, run
devspace print
, which can be a starting point on how to convert your older DevSpace config.Pipelines
DevSpace used a declarative approach to define its
dev
,build
,deploy
andpurge
pipeline, however we felt most of it was hardcoded and difficult to change. We introduced hooks to make these pipelines more adjustable, however in many cases this was difficult to understand as the pipeline was still implicit and through hooks scattered around the devspace.yaml.With DevSpace v6 we introduce a pipelines concept that allows you to override DevSpace default behaviour and create more dynamic and powerful pipelines compared to what DevSpace offers you as a default. These pipelines are written similar to github actions and DevSpace provides custom commands that allow you to build images, deploy deployments as well as stop and start development. This also allows you to define concurrency a lot easier, so from now on you can easily build, deploy or start development in parallel as you desire.
Example: Simple Procedural Pipeline
With pipelines you can decide if to use the declarative approach or define objects on the fly with the
--set
flag. A simple project that deploys an alpine container and then starts syncing to it can be purely written in the new pipeline form:Example: Simple Declarative Pipeline
As configurations get more complex, you probably want to reuse config or define it in a separate place, here the declarative approach makes sense that you can reference in your pipeline:
Imports
You want DRY config and we heard you! With imports you can now merge different
devspace.yaml's
together and define your variables, deployments, commands and pipelines in a single repository or file and import them into other projects through git, urls or local paths. With the new pipelines you can then define what images to build, what deployments to deploy and what dev configurations to start and stop:import.yaml
devspace.yaml
SSH & Proxy Commands
It is now possible to let DevSpace setup an SSH connection as well as proxy certain commands from the local host to the container:
With the configuration above you can run the following (proxyCommands also works with terminal or
kubectl exec
):!! Breaking Changes !!
DevSpace version 6 introduces some breaking changes to work efficiently with the new Pipelines feature. Almost all older
devspace.yaml
should still work as config is migrated automatically, however we removed some deprecated and older functionality that we felt is now either obsolete or unused.Removed Flags:
--deployments
was removed, use pipeline logic instead--skip-pipeline
indevspace dev
was removed, use pipeline logic instead--verbose-dependencies
and--skip-dependencies
was removed and dependencies will be pulled every run--interactive
was removed fromdevspace dev
, use pipeline logic instead--parent-profile
was removed, use multiple--profile
flags instead--restore-vars
,--vars-secret
and--save-vars
was removed. Usevars.MY_VAR.remote: true
instead--verbose-sync
was removed, use--debug
instead--exit-after-deploy
,--terminal-reconnect
,--portforwarding
and--sync
was removed--wait
,--timeout
was removed, use pipeline logic instead--container-path
and--local-path
were removed fromdevspace sync
, please use--path
insteadRemoved
dev.autoReload
This functionality was removed from DevSpace and will be replaced in future by automatically reloading pipelines
DevSpace will no longer ask for undefined variables
If you are using a variable like this, DevSpace will not ask anymore for its value:
rather change it to
Dependency names must be unique
DevSpace determines which dependency was deployed now solely based on the name, so multiple dependencies or nested dependencies with the same name will be resolved as the same dependency and deployed only once.
Other Breaking Changes
devspace use profile
instead use profile activation insteaddependencies[*].skipBuild
dev.sync[*].onDownload
deployments[*].helm.driver
,deployments[*].helm.deleteArgs
,deployments[*].kubectl.deleteArgs
anddeployments[*].helm.path
deployments[*].helm.v2
devspace dev
is not taking any arguments anymoreMany other changes!
There are many other improvements and changes that went into this new DevSpace version. We'll release full exhaustive release notes soon.
This discussion was created from the release v6.0.0-beta.0.
Beta Was this translation helpful? Give feedback.
All reactions