DevSpace - Cloud Native Development with Kubernetes
With a DevSpace, you can build, test and run code directly inside any Kubernetes cluster. You can run devspace up
in any of your projects and the client-only DevSpace CLI will start a DevSpace within your Kubernetes cluster. Keep coding as usual and the DevSpace CLI will sync any code change directly into the containers of your DevSpace.
No more waiting for re-building images, re-deploying containers and restarting applications on every source code change. Simply edit your code with any IDE and run your code instantly inside your DevSpace.
Why use a DevSpace?
Program inside any Kubernetes cluster (e.g. minikube, self-hosted or cloud platform) and:
- iterate quickly: no more building and pushing images on every change, use hot reloading instead (e.g. with nodemon)
- keep your existing workflow and tools: the DevSpace CLI works with every IDE (no plugins required)
- access cluster-internal services and data during development
- debug efficiently with port forwarding and terminal proxying
- migrate to Docker & Kubernetes within minutes
Demo
This demo shows how to run devspace up
directly from the terminal inside Visual Studio Code. However, the DevSpace CLI is not a plugin and will work with any terminal. In this example, we are starting a DevSpace for a React application.
Follow this link for the Quickstart Guide.
The DevSpace CLI allows you to create a DevSpace for any existing project with just a single command:
devspace up
Take a look at the Getting Started Guide to see how to get started with a DevSpace.
Note: Don't worry, you can use devspace reset
to reset your project and go back to local development.
These commands will install the DevSpace CLI and add it to the PATH environment variable. For more details, see: Getting Started
For Windows
- Open Powershell with admin rights.
- Run this install script:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls,Tls11,Tls12'
mkdir "$Env:Programfiles\devspace"
wget ((Invoke-WebRequest -URI "https://api.github.com/repos/covexo/devspace/releases/latest").Content -replace ".*`"(https://github.com[^`"]*devspace-windows-amd64.exe)`".*","`$1") -o $Env:Programfiles\devspace\devspace.exe
& "$Env:Programfiles\devspace\devspace.exe" "install"
Note: After running the install script, you should close and re-open your terminal window or IDE to refresh the environment variables.
For Linux
curl -s -H "Accept: application/json" "https://api.github.com/repos/covexo/devspace/releases/latest" | sed -nE 's!.*"(https://github.com[^"]*devspace-linux-amd64)".*!\1!p' | xargs -n 1 curl -L -o devspace && chmod +x devspace && sudo mv devspace /usr/local/bin
For Mac
curl -s -H "Accept: application/json" "https://api.github.com/repos/covexo/devspace/releases/latest" | sed -nE 's!.*"(https://github.com[^"]*devspace-darwin-amd64)".*!\1!p' | xargs -n 1 curl -L -o devspace && chmod +x devspace && sudo mv devspace /usr/local/bin
Here you can find some links to the most important pages of our documentation:
Architecturally, the DevSpace CLI is a client-side software that interacts with services within your Kubernetes cluster. While the DevSpace CLI can deploy required services (e.g. image registry, Tiller server, Kaniko build pods) automatically, you can also configure it to use already deployed or externally hosted services.
For a more detailed description of the internals of the DevSpace CLI, take a look at the Architecture Documentation.
Note: Any interaction between your local computer and your DevSpace is passed through your Kubernetes API server, so you should ensure that your API server is protected with a suitable configuration for using TLS.
As any open source projects, we are looking forward to your contributions.
Reporting Issues
If you find a bug while working with the DevSpace CLI, please open an issue on GitHub and let us know what went wrong. We will try to fix it as quickly as we can.
Feedback & Feature Requests
You are more than welcome to open issues in this project to:
Contributing Code
This project is mainly written in Golang. To contribute code,
- Check-out the project:
git clone https://github.com/covexo/devspace && cd devspace
- Install the dependencies:
dep ensure -v
(requires Installing Dep)
- Make changes to the code (add new dependencies to the Gopkg.toml)
- Build the project, e.g. via
go build -o devspace.exe
License
You can use the DevSpace CLI for any private or commercial projects because it is licensed under the Apache 2.0 open source license.