Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add install documentation + shift some content around #46

Merged
merged 1 commit into from
Dec 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
```