diff --git a/README.md b/README.md index 05043bd3..b53d6acb 100644 --- a/README.md +++ b/README.md @@ -4,41 +4,49 @@ K9s provides a curses based terminal UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage -your applications. This command line app continually watches Kubernetes +your applications in the wild. K9s continually watches Kubernetes for changes and offers subsequent commands to interact with observed resources. - -
- --- [![Go Report Card](https://goreportcard.com/badge/github.com/derailed/k9s?)](https://goreportcard.com/report/github.com/derailed/k9s) [![Build Status](https://travis-ci.com/derailed/k9s.svg?branch=master)](https://travis-ci.com/derailed/k9s) -
- --- + ## Installation -1. Homebrew (OSX) +K9s is available on Linux, OSX and Windows platforms. -```shell -brew tap derailed/k9s && brew install k9s -``` +* Binaries for Linux, Windows and Mac are available as tar balls in the [release](https://github.com/derailed/k9s/releases) page. -1. Binary Releases +* For OSX using Homebrew -- [Releases](https://github.com/derailed/k9s/releases) + ```shell + brew tap derailed/k9s && brew install k9s + ``` -1. Running from source +* Building from source + K9s was built using go 1.11 or above. In order to build K9 from source you must: + 1. Clone the repo + 2. Set env var *GO111MODULE=on* + 3. Add the following command in your go.mod file -- You will need to use go 1.11+ -- GO111MODULE=on + ```text + replace ( + github.com/derailed/k9s => MY_K9S_CLONED_GIT_REPO + ) + ``` -
+ 4. Build and run the executable + + ```shell + go run main.go + ``` --- -## Command Line + +## The Command Line ```shell # List all available CLI options @@ -47,11 +55,12 @@ k9s -h k9s info # To run K9s in a given namespace k9s -n mybitchns +# Start K9s in an existing KubeConfig context +k9s --context coolCtx ``` -
- --- + ## PreFlight Checks * K9s uses 256 colors terminal mode. On `Nix system make sure TERM is set accordingly. @@ -60,116 +69,97 @@ k9s -n mybitchns export TERM=xterm-256color ``` -* For clusters with many namespaces you can either edit ~/.k9s/config.yml or - go to the namespace(ns) view to switch your default namespace to your namespace - of choice using *Ctrl-S*witch. K9s keeps your top 10 favorite namespaces. - Namespaces will get evicted from the top 10 list, based on your namespace - switching frequency. - - - ```yaml - k9s: - refreshRate: 5 # K9s refresh rate in secs - logBufferSize: 200 # Size of the logs buffer. Try to keep a sensible default! - namespace: - active: myCoolNS # Current active namespace name - favorites: # List of your 10 most frequently used namespaces - - myCoolNS1 - - myCoolNS2 - - all - - default - - kube-system - view: - active: po # Active resource view - ``` - -* K9s can use **$KUBECONFIG** env var to load cluster information. However we've - seen hill effects of using this env with multiple files as setting the current - context may not update the correct file when using this technique. - - --- -
---- -## Usage +## K9s config file ($HOME/.k9s/config.yml) -K9s uses 2 or 3 letters alias to navigate most K8s resource. + K9s keeps its configurations in a dot file in your home directory. -| Command | Result | Example | -|-------------------|----------------------------------------------------|------------------| -| `:`alias`` | List a Kubernetes resource in the active namespace | `:po` | -| '?' | Show all command aliases | | -| `/`filter`ENTER`> | Filter out a resource view given a filter | `/bumblebeetuna` | -| `` | Bails out of command mode | | -| `v`, `e`, `l`,... | Key mapping to view, edit, see logs, etc... | `l` (view logs) | -| `:`ctx`` | To view and switch to another Kubernetes cluster | | -| `q`, `Ctrl-c` | To bail out of K9s | | + > NOTE: This is still in flux and will change while in pre-release stage! - -
- ---- -## Building From Source - -K9s was built using go 1.11. In order to build K9 from source: - -+ Clone the repo -+ Add the following command in your go.mod file - ```text - replace ( - github.com/derailed/k9s => MY_K9S_CLONED_REPO - ) - ``` -+ Build and run the executable - ```shell - go run main.go + ```yaml + k9s: + refreshRate: 2 + logBufferSize: 200 + currentContext: minikube + currentCluster: minikube + clusters: + bitchn: + namespace: + active: coolio + favorites: + - cassandra + - default + view: + active: po + minikube: + namespace: + active: all + favorites: + - all + - kube-system + - default + view: + active: dp ``` -
+--- + +## Key Bindings + +K9s uses aliases to navigate most K8s resources. + +| Command | Result | Example | +|-----------------------|----------------------------------------------------|----------------------------| +| `:`alias`` | View a Kubernetes resource | `:po` | +| '?' | Show all command aliases | select+ to view | +| `/`filter`ENTER`> | Filter out a resource view given a filter | `/bumblebeetuna` | +| `` | Bails out of command mode | | +| `d`,`v`, `e`, `l`,... | Key mapping to describe, view, edit, view logs,... | `d` (describes a resource) | +| `:`ctx`` | To view and switch to another Kubernetes context | `:`+`ctx`+`` | +| `q`, `Ctrl-c` | To bail out of K9s | | --- + ## Demo Video -+ [k9s Demo](https://youtu.be/k7zseUhaXeU) +1. [K9s Demo](https://youtu.be/k7zseUhaXeU) -
+## Screenshots + +1. Pods + + + +1. Logs + + + +1. Deployments + + + --- -## Screen Shots -### Pod View - - - -### Log View - - - -
- ---- -## Known Issues... +## Known Issues This initial drop is brittle. K9s will most likely blow up if... -+ K9s does not support multiple cluster config specified via KUBECONFIG env var -+ You don't have enough RBAC fu to manage your cluster -+ Your cluster does not run a metrics-server - -
+1. You don't have enough RBAC fu to manage your cluster +2. Your cluster does not run a metric server. --- + ## Disclaimer This is still work in progress! If there is enough interest in the Kubernetes community, we will enhance per your recommendations/contributions. Also if you dig this effort, please let us know that too! -
- --- + ## ATTA Girls/Boys! K9s sits on top of many of opensource projects and libraries. Our *sincere* @@ -177,17 +167,15 @@ appreciations to all the OSS contributors that work nights and weekends to make this project a reality! -
+--- + +## Contact Info + +1. **Email**: fernand@imhotep.io +1. **Twitter**: [@kitesurfer](https://twitter.com/kitesurfer?lang=en) + --- -## Contact Information -+ **Email**: fernand@imhotep.io -+ **Twitter**: [@kitesurfer](https://twitter.com/kitesurfer?lang=en) -+ **Web**: [K9s](https://k9ss.io) - -
- ---- © 2018 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) \ No newline at end of file diff --git a/assets/screen_3.png b/assets/screen_3.png deleted file mode 100644 index 789fece6..00000000 Binary files a/assets/screen_3.png and /dev/null differ diff --git a/assets/screen_4.png b/assets/screen_4.png deleted file mode 100644 index 9b03e621..00000000 Binary files a/assets/screen_4.png and /dev/null differ diff --git a/assets/screen_5.png b/assets/screen_5.png deleted file mode 100644 index d4a2c88a..00000000 Binary files a/assets/screen_5.png and /dev/null differ diff --git a/assets/screen_dp.png b/assets/screen_dp.png new file mode 100644 index 00000000..c47ff9b9 Binary files /dev/null and b/assets/screen_dp.png differ diff --git a/assets/screen_logs.png b/assets/screen_logs.png new file mode 100644 index 00000000..ff95c13b Binary files /dev/null and b/assets/screen_logs.png differ diff --git a/assets/screen_po.png b/assets/screen_po.png new file mode 100644 index 00000000..0b14ca35 Binary files /dev/null and b/assets/screen_po.png differ