diff --git a/README.md b/README.md index 67416e0..2d6180c 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,30 @@ # buoy -`buoy` is a declarative TUI dashboard for Kubernetes. You define your dashboard in a JSON or YAML file and it will fetch the information from your Kubernetes cluster and build a dashboard for viewing the requested content right in your terminal window. +`buoy` is a declarative TUI dashboard for Kubernetes. You define your dashboard in a JSON file and it will fetch the information from your Kubernetes cluster and build a dashboard for viewing the requested content right in your terminal window. > [!NOTE] > This project is in the extremely early stages of development and is a hobby project. Use at your own risk. [![asciicast](https://asciinema.org/a/625808.svg)](https://asciinema.org/a/625808) -## Motivation - -I created `buoy` because I do a lot of work on Kubernetes controllers. When I am making changes, I often find myself typing out a bunch of the same `kubectl ...` commands and switching between them. -Some of those commands are blocking (i.e `kubectl get logs -f ...`) and to keep them running while running other commands required opening a new terminal window and more typing. -Since I was running pretty repetitive commands I thought there had to be a better solution. I looked through existing CLI tooling around this space, but none had a simple interface that followed the pattern of -"define what you want to see and I'll show it to you". Thus `buoy` was created to fill this gap (and save me some time while delaying the inevitable arthritis). - ## Quickstart -- Clone the repository: -``` -git clone https://github.com/everettraven/buoy.git -``` - -- `cd` into the cloned repository: -``` -cd buoy -``` - -- Build the `buoy` binary: -``` -make build -``` - -_OR_ - -``` -go build -o buoy main.go -``` - -- Create a KinD cluster: -``` -kind create cluster +Install `buoy` by downloading one of the binaries from the [releases](https://github.com/everettraven/buoy/releases) or by running: +```sh +go install github.com/everettraven/buoy@latest ``` -- Run `buoy` using the `test.json` file: -``` -./buoy test.json +Load a dashboard with: +```sh +buoy ``` -The `test.json` file contains samples for each of the different panel types that `buoy` currently supports. As this is a hobby project very early in the development cycle there are some limitations and things are bound to not work as expected. - -`test.yaml` results in the exact same dashboard as `test.json` and exists to show YAML support. - -`buoy` uses https://github.com/tidwall/gjson for the path evaluation and extracting of values from resources. Please consult their documentation for valid path syntax. - -You can also specify a remote reference to a dashboard configuration file. It must be a valid URL and the response must be the raw YAML or JSON contents of the file. - ## General Controls - `ctrl+c`, `q` will quit the program and exit the tui - `tab` will switch the active tab to the one to the right of the currently active tab - `shift+tab` will switch the active tab to the one to the left of the currently active tab - `ctrl+h` will open a more detailed help menu - ## Contributing While this is a hobby project and in the early development stages, I'm more than happy to accept contributions. If you use `buoy` and find some problems or have some ideas for features/improvements, file an issue. If you want to contribute code, feel free to pick up any unassigned issues and create a pull request. diff --git a/docs/README.md b/docs/README.md index 741e791..a14b1e3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -15,44 +15,15 @@ Since I was running pretty repetitive commands I thought there had to be a bette ## Quickstart -- Clone the repository: +Install `buoy` by downloading one of the binaries from the [releases](https://github.com/everettraven/buoy/releases) or by running: +```sh +go install github.com/everettraven/buoy@latest ``` -git clone https://github.com/everettraven/buoy.git -``` - -- `cd` into the cloned repository: -``` -cd buoy -``` - -- Build the `buoy` binary: -``` -make build -``` - -_OR_ +Load a dashboard with: +```sh +buoy ``` -go build -o buoy main.go -``` - -- Create a KinD cluster: -``` -kind create cluster -``` - -- Run `buoy` using the `test.json` file: -``` -./buoy test.json -``` - -The `test.json` file contains samples for each of the different panel types that `buoy` currently supports. As this is a hobby project very early in the development cycle there are some limitations and things are bound to not work as expected. - -`test.yaml` results in the exact same dashboard as `test.json` and exists to show YAML support. - -`buoy` uses https://github.com/tidwall/gjson for the path evaluation and extracting of values from resources. Please consult their documentation for valid path syntax. - -You can also specify a remote reference to a dashboard configuration file. It must be a valid URL and the response must be the raw YAML or JSON contents of the file. ## General Controls - `ctrl+c`, `q` will quit the program and exit the tui diff --git a/docs/_sidebar.md b/docs/_sidebar.md index c1191e3..c3159dc 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -5,4 +5,7 @@ - [Table](panels/table.md) - [Item](panels/item.md) - [Logs](panels/logs.md) +- Features + - [Dot Notation Field Paths](features/dot-notation-paths.md) + - [Remote Dashboard Configurations](features/remote-configs.md) diff --git a/docs/features/dot-notation-paths.md b/docs/features/dot-notation-paths.md new file mode 100644 index 0000000..a3242ae --- /dev/null +++ b/docs/features/dot-notation-paths.md @@ -0,0 +1,3 @@ +# Specifying field paths using dot notation + +`buoy` uses https://github.com/tidwall/gjson for the path evaluation and extracting of values from resources. Please consult their [documentation](https://github.com/tidwall/gjson/blob/master/SYNTAX.md) for valid path syntax. \ No newline at end of file diff --git a/docs/features/remote-configs.md b/docs/features/remote-configs.md new file mode 100644 index 0000000..c802432 --- /dev/null +++ b/docs/features/remote-configs.md @@ -0,0 +1,6 @@ +# Using remote dashboard configurations + +`buoy` has support for specifying a remote dashboard configuration file. The provided path **must** be a path that returns the raw file contents. For example: +```sh +buoy https://raw.githubusercontent.com/everettraven/buoy/main/test.yaml +``` \ No newline at end of file