add a bunch of methods to the client end
This commit is contained in:
parent
a5d237df2a
commit
5ab2cbd265
8 changed files with 236 additions and 17 deletions
28
README.md
28
README.md
|
|
@ -1,23 +1,43 @@
|
|||
# kubelwagen
|
||||
*Getting your dev environment to the front lines*
|
||||
|
||||
It's great to have a consistent environment in containers, and it's great to have services run on Kubernetes, but it's a pain to build dev containers to be run as pods on Kubernetes.
|
||||
It's great to have a consistent environment in containers, and it's great to have services run on Kubernetes, but it's a pain to build dev containers to be run as pods on Kubernetes. `git pull` on pod creation helps, but it still requires you commit and push the code, and restart the pod.
|
||||
|
||||
It would be great if your live development working directory could be mounted into a running pod on the powerful metal in the cloud. Plus, it would obviate the need for workaround services such as (localhost.dev or something?) to share a running WIP instance as it would have a valid service on the dev cluster, ingressable and everything.
|
||||
It would be great if your live development working directory could be mounted into a running pod on the powerful metal in the cloud. Plus, it would obviate the need for workaround services such as [ngrok](https://ngrok.com) to share a running WIP instance, as it would have a valid service on the dev cluster, complete with Ingress resources and everything. Plus, it's running in-cluster; so all the configurations and access controls and service discoveries are available to your dev instance. With the absolute latest, WIP code from your laptop.
|
||||
|
||||
Kubelwagen is a sidecar container that provides a FUSE directory to the running pod that is mounted in from a client connecting in over HTTP.
|
||||
Use it in tandem with automatically refreshing dev environments -- JS auto-reloaders for frontend devs, [entr](https://entrproject.org) for general reloads, or any other tooling you like.
|
||||
|
||||
Kubelwagen is a sidecar (hah) container that provides a FUSE directory to the running pod that is mounted in from a client connecting in over an HTTPS websocket.
|
||||
|
||||
## FUSE over Websockets? Are you insane?
|
||||
|
||||
It's a dev tool, HTTPS is pretty good, relax. Yeah, it'll be slow... but with appropriate caching, a few extra automatic reload milliseconds of the code you just changed is preferable to rebuilding a container or rescheduling a pod. Faster iteration times == happier devs. Closer parity to your laptop and production == happier ops.
|
||||
|
||||
|
||||
## Setting it up
|
||||
|
||||
```
|
||||
kubelwagen serve [LISTEN HOSTPORT] [TARGET DIRECTORY]
|
||||
kubelwagen serve [TARGET DIRECTORY]
|
||||
```
|
||||
|
||||
```
|
||||
kubelwagen connect [TARGET ADDRESS] [SOURCE DIRECTORY]
|
||||
```
|
||||
|
||||
## Status & Todo
|
||||
|
||||
#### Status
|
||||
First mounting! `ls` over the internet to your heart's content!
|
||||
|
||||
#### Todo
|
||||
* Implement *all* the methods!
|
||||
* XAttrs
|
||||
* File handles
|
||||
* Caching
|
||||
* INotify
|
||||
* Overlay (serve local directory when not connected)
|
||||
|
||||
|
||||
## Licensing
|
||||
|
||||
Distributed under the GPL, as it's a dev tool and not meant as a product. Use it internally. Share alike.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue