about summary refs log tree commit diff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7dc0626
--- /dev/null
+++ b/README.md
@@ -0,0 +1,59 @@
+# K9P
+
+A virtual filesystem for Kubernetes cluster state.
+
+## Install
+
+K9P uses Go modules, and can be installed with a Go 1.13+. Goal is to allow operators to
+use familiar unix tools to interact with their Kubernetes clusters, rather than learning kubectl.
+
+```console
+$ git clone https://git.terinstock.com/k9p && cd k9p
+$ go get ./cmd/k9p/...
+```
+
+## Mounting
+
+### Plan 9
+
+K9P can be mounded like other remote 9P servers:
+
+```console
+$ import 'tcp!localhost!1564` /k8s
+```
+
+### Linux
+
+Supported on systems compiled with `CONFIG_NET_9P`, otherwise use 9pfuse.
+
+```console
+# mount -t 9p -o trans=tcp,port=1564 127.0.0.1 /mnt/k8s
+```
+
+### FUSE
+
+K9P can be mounted as a remote 9P server using 9pfuse:
+
+```console
+$ 9pfuse 'tcp!127.0.0.1!1564' $HOME/k8s
+```
+
+### Applications
+
+So applications can directly interact with 9P servers, such as 9p from plan9ports:
+
+```console
+$ p9 -a 'tcp!9p.example.com!1564' ls -l /
+d-r-xr-x-r-x I 0 terin terin 0 July 3  2019 cluster-scoped
+d-r-xr-x-r-x I 0 terin terin 0 July 3  2019 namespaces
+```
+
+## Future
+
+K9P is in a very early WIP state. There's lots of improvements, contributions welcome.
+
+* Support passing authentication to the server for the attach mount.
+* Load resources on-demand, rather than creating informers on attach.
+* Add support for way more resource types, including CRDs.
+* Mutate and remove resources.
+* Port forwards modeled after Plan 9's netfs?