Skip to content
DevSpace CLI - the swiss-army knife for Kubernetes. DevSpace CLI accelerates developing, deploying and debugging applications with Docker and Kubernetes.
Branch: master
Clone or download
FabianKramm Merge pull request #509 from devspace-cloud/docs
Fix small issue for devspace analyze
Latest commit cb59187 Mar 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE
.vscode Implement devspace list package and fix several problems Sep 25, 2018
cmd Fix init issue Mar 20, 2019
docs Fix docs issue Mar 20, 2019
examples Merge branch 'master' of https://github.com/covexo/devspace into clou… Mar 11, 2019
pkg Wait for init container on devspace analyze Mar 22, 2019
scripts improve spelling Feb 25, 2019
.codeclimate.yml Fix some gofmt problems and restrict codeclimate Aug 24, 2018
.gitignore gitignores the .idea folder Dec 28, 2018
.travis.yml improve spelling Feb 25, 2019
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md unify DevSpace naming Mar 9, 2019
LICENSE Initial commit Aug 17, 2018
PULL_REQUEST_TEMPLATE.md fix typo Oct 30, 2018
README.md
go.mod improve env handling and setup for win Mar 15, 2019
go.sum
main.go Merge Feb 25, 2019

README.md

DevSpace Logo

WebsiteDocumentationSlack

Build Status Go Report Card Slack Tweet

How many times do you copy/paste the names of deployments, pods, services etc. per hour when using kubectl?
DevSpace CLI eliminates these cumbersome, repetitive tasks through automating and streamlining certain workflows. The goal of this project is to accelerate developing, deploying and debugging applications with Docker and Kubernetes.

Which workflows can you automate with DevSpace CLI?

Containerize any project in minutes

Containerize your project

devspace containerize

DevSpace can create a Dockerfile for your project based on the detected programming language in your project.

Initialize your project

devspace init

Initializes DevSpace and adds a highly customizable Helm chart to your project.

Customize your Kubernetes deployment easily:


Deploy containerized applications with ease

Deploy your application

devspace deploy

What does devspace deploy do?

  1. Builds, tags and pushes one or even multiple Docker images
  2. Creates pull secrets for your image registries
  3. Deploys your project with the newest images (e.g. using Helm)

DevSpace CLI will use the current kubectl context. If you do not have a Kubernetes cluster, you can use DevSpace Cloud to get a fully managed Kubernetes namespace.


Develop cloud-native software faster then ever

Develop in a production-like environment

devspace dev

With DevSpace, you can build and test your application directly inside Kubernetes. Thanks to our real-time code sync, you can even use hot reloading tools (e.g. nodemon) to refresh your running application without having to waste time on re-building and re-deploying your application every time you change your code. With DevSpace, your containers are updated in real-time without any delay. It works in any container with and without volumes.

Learn more about development with DevSpace:


Debug deployments without hassle

Speed up finding and solving issues

devspace analyze

DevSpace automatically analyzes your deployments, identifies potential issues and helps you resolve them:

  • Identify reasons for image pull failure
  • View log snapshots of crashed containers
  • Debug networking issues (e.g. misconfigured services)

Learn more about development with DevSpace:


Getting started with DevSpace

1. Install DevSpace & Docker

via Windows Powershell
md -Force "$Env:APPDATA\devspace"; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls,Tls11,Tls12';
wget -UseBasicParsing ((Invoke-WebRequest -URI "https://github.com/devspace-cloud/devspace/releases/latest" -UseBasicParsing).Content -replace "(?ms).*`"([^`"]*devspace-windows-amd64.exe)`".*","https://github.com/`$1") -o $Env:APPDATA\devspace\devspace.exe; & "$Env:APPDATA\devspace\devspace.exe" "install"; $env:Path = (Get-ItemProperty -Path HKCU:\Environment -Name Path).Path
via Mac Terminal
curl -s -L "https://github.com/devspace-cloud/devspace/releases/latest" | sed -nE 's!.*"([^"]*devspace-darwin-amd64)".*!https://github.com\1!p' | xargs -n 1 curl -L -o devspace && chmod +x devspace;
sudo mv devspace /usr/local/bin;
via Linux Bash
curl -s -L "https://github.com/devspace-cloud/devspace/releases/latest" | sed -nE 's!.*"([^"]*devspace-linux-amd64)".*!https://github.com\1!p' | xargs -n 1 curl -L -o devspace && chmod +x devspace;
sudo mv devspace /usr/local/bin;

Install Docker if you don't have already

Install Docker

DevSpace uses Docker to build container images, so you need Docker on your local computer. If you do not have Docker installed yet, you can download the latest stable releases here:

2. Containerize your application

If you don't have a Dockerfile run this command within your project:

devspace containerize

Then initialize DevSpace with this command in your project:

devspace init
Don't have a project to test DevSpace with? Check out our example project.
git clone https://github.com/devspace-cloud/devspace-quickstart-nodejs

What does devspace containerize & devspace init do?
DevSpace CLI will automatically detect your programming language and ask for the port your application is listening on. It will then create an Helm chart and a Dockerfile within your project, if you do not already have one.

3. Create a space (optional)

This step is optional, you can also use your custom kubernetes cluster with DevSpace

This command will create and configure a Kubernetes namespace for you in the devspace cloud:

devspace create space my-app

DevSpace Cloud will provide a fully managed Kubernetes namespace for you. You can create one Space, which is forever free on DevSpace Cloud.

4. Deploy your application

Deploy your application to kubernetes:

devspace deploy

What's next?


Contributing

Help us make DevSpace CLI the best tool for developing, deploying and debugging Kubernetes apps.

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. If you want to contribute code:

  1. Ensure you are running golang version 1.11.4 or greater for go module support
  2. Set the following environment variables:
    GO111MODULE=on
    GOFLAGS=-mod=vendor
    
  3. Check-out the project: git clone https://github.com/devspace-cloud/devspace && cd devspace
  4. Run go clean -modcache
  5. Run go mod vendor
  6. Make changes to the code
  7. Build the project, e.g. via go build -o devspace.exe
  8. Evaluate and test your changes ./devspace [SOME_COMMAND]

See Contributing Guideslines for more information.


FAQ

Do I need a Kubernetes cluster to use DevSpace?

No. You can simply use the fully managed Spaces provided by DevSpace Cloud.

Can I use DevSpace with my existing Kubernetes clusters?

Yes. You have two options:

  1. Connect your existing Kubernetes clusters to DevSpace Cloud as external clusters. DevSpace Cloud will then be able to create and manage users and Spaces on top of your Kubernetes clusters.
  2. You just use DevSpace CLI without DevSpace Cloud. That means that you manually need to:
    • enforce resource limits
    • configure secure user permissions
    • isolate namespaces of different users
    • connect domains and configure ingresses
    • install and manage basic cluster services (e.g. ingress controller, cert-manager for TLS, monitoring and log aggregation tools)
Do I need to be a Kubernetes expert to use DevSpace?

No. Altough DevSpace provides a lot of advanced tooling for Kubernetes experts, it is optimized for developer experience which makes it especially easy to use for Kubernetes beginners.

What is a Space?

Spaces are smart Kubernetes namespaces which provide the following features:

  • Automatic provisioning via devspace create space [SPACE_NAME]
  • Automatic allocation of a subdomain for each Space, e.g. my-app.devspace.host
  • Automatic RBAC configuration for better isolation of users
  • Automatic resource limit configuration and enforcement
  • Resource auto-scaling within the configured limits
  • Smart analysis of issues within your Space via devspace analyze
What is DevSpace CLI?

DevSpace CLI is an open-source command-line tool that provides everything you need to develop, deploy and debug applications with Docker and Kubernetes.

You can either use DevSpace CLI as standalone solution for your self-managed Kubernetes namespaces or in combination with DevSpace Cloud.

What is DevSpace Cloud?

DevSpace Cloud is a developer platform for Kubernetes that lets you create and manage Spaces via DevSpace CLI or GUI.

The Spaces you create with DevSpace Cloud either run on a Kubernetes cluster within DevSpace Cloud or on your own Kubernetes clusters after connecting them to the platform.

What is a Helm chart?

Helm is the package manager for Kubernetes. Packages in Helm are called Helm charts.

Learn more about Helm charts


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.

You can’t perform that action at this time.