DevSpace is a very lightweight, client-only CLI tool which uses your current kube-context, just like kubectl or helm. It does not require you to install anything inside your cluster and works out of the box with every Kubernetes cluster.
Builds all images in parallel using Docker, kaniko or any custom build commands (e.g. using cloud build)
Tags images according to customizable tag schema and updates tags in manifests and Helm chart values
Pushes images to any public or private registry and automatically creates pull secrets if needed
DevSpace supports a variety of deployment tools and even lets you run custom scripts.
If your project depends on a service which is part of a different git repository, you can add a devspace.yaml config file to each of the repositories and define dependencies between them.
DevSpace works in non-interactive environments which allows you to share the same base config for deploying during development as well as for deploying to staging or production environments via your CI/CD pipeline.
When running the 'devspace dev' command, DevSpace deploys the application and establishes a real-time connection to the deployed containers. If you change the source code, DevSpace will detect these changes, synchronize them into the running containers and rebuild/restart your application using hot reloading. So, instead of rebuilding images and redeploying containers over and over again, DevSpace uses a bi-directional file sync and hot reloading, which is much faster.
Get a list of all containers including their status for every context and namespace (+ pod YAML viewer).
Click on a container to start log streaming including real terminal colors for the entire log stream.
Quickly detect when containers are failing or pods have issues starting.
Start interactive terminal sessions for each container with just a single click.
Open any application running inside a container by clicking the 'Open' button which starts port-forwarding and opens the localhost address of the forwarded port inside your browser.
By default, DevSpace streams the logs of all deployed containers while you are coding.
You can also start DevSpace using the interactive mode which overrides the entrypoint of one of your Docker images with a sleep command and then opens an interactive terminal session to the deployed container instead of the log streaming. This allows you to start the container yourself using a manual entrypoint command.
DevSpace uses one declarative config file which helps you to make workflow knowledge explicit and share a declarative configuration across environments and between the members of your team.
To account for the differences between different target environments, DevSpace lets you define so-called profiles which can overwrite certain parts of the config or change the config using patches.
The DevSpace config is highly dynamic and can contain variables which can be regular environment variables, git-based information or even a custom question asked to the developer running a certain command.
DevSpace allows you to store your most common development commands inside the devspace.yaml, so you can repeatedly execute them, version them and share them with your team.