about summary refs log tree commit diff
path: root/README.md
blob: 7dc06264da7c9c2eeb159c049a9d3f9e3753047f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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?