Skip to content

Commit

Permalink
add install documentation. Shift some docs content around (#46)
Browse files Browse the repository at this point in the history
Signed-off-by: everettraven <everettraven@gmail.com>
  • Loading branch information
everettraven committed Dec 19, 2023
1 parent dde1162 commit fa4c07e
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 79 deletions.
51 changes: 7 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -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 <dashboard config file path>
```

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.
Expand Down
41 changes: 6 additions & 35 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <dashboard config file path>
```
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
Expand Down
3 changes: 3 additions & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

3 changes: 3 additions & 0 deletions docs/features/dot-notation-paths.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 6 additions & 0 deletions docs/features/remote-configs.md
Original file line number Diff line number Diff line change
@@ -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
```

0 comments on commit fa4c07e

Please sign in to comment.