
Show HN: DevSpace – Build, test and run code directly in any Kubernetes cluster - gentele
https://github.com/covexo/devspace
======
gentele
After trying out several CI/CD dev tools for Kubernetes (e.g. draft,
skaffold), we saw the problem that there is a lot of waiting time because the
images always have to be re-build and re-deployed on every code change. Many
developers, including the ones on our dev team, are used to hot reloading
tools (e.g. nodemon) and to seeing changes taking effect immediately after
saving a file.

While there are some tools (e.g. ksync) that allow to sync files to a pod
running inside a Kubernetes cluster, we found them hard to configure and time-
consuming to use on a daily basis.

Therefore, we developed the DevSpace CLI, a client-only dev tool that lets you
create Kubernetes-based workspaces called DevSpaces. With a single command
(devspace up), you can start a DevSpace for any existing dev project inside
your Kubernetes cluster (even in minikube). The DevSpace CLI will then
synchronize your source code directly to your containers and establish a
terminal session as well as port forwarding. It is entirely written in Go and
ships with in-built kubectl, helm and docker clients.

I would love to hear your feedback on this tool. PS: It is open source, so
contributions are also highly welcome.

~~~
thiry
You can find a more extensive documentation for the DevSpace CLI here:
[https://devspace.covexo.com/docs/getting-
started/quickstart....](https://devspace.covexo.com/docs/getting-
started/quickstart.html)

------
fredamot
I am building my Docker images with a local Docker daemon, push them to a
private registry and run "kubectl apply" to refresh the deployment afterwards.
Where does your tool fit in my workflow? Maybe I am not getting the full idea
but I don't see the benefit...

~~~
gentele
That is a very common flow today but re-building and re-deploying images on
every change takes a lot of time and you cannot use modern dev features such
as hot reloading (e.g. with nodemon).

With the DevSpace CLI, however, you can simply build and deploy once and every
following code change will only lead to a code synchronization. The DevSpace
CLI will sync your modified source code files straight to your containers
running remotely inside a Kubernetes cluster. You can use hot reloading (e.g.
with nodemon) and still build and run everything entirely on a remote
Kubernetes cluster. Only when you change your Dockerfile, the DevSpace CLI
will rebuild and redeploy your container images. This saves a lot of time
during development.

I hope you will find the time to try it out and give us feedback on the
project :)

