kwatch

0.1.0 • Public • Published

kwatch

GitHub version npm version CI Status License semantic-release

A terminal UI for watching, inspecting and interacting with Kubernetes clusters.

kwatch demo

Motivation

Tired of running watch kubectl get pods after applying some changes? Tired of wating for command completion when using kubectl?

This project's goal is to provide a terminal-based user interface around kubectl and kubernetes' API that is quick and convenient to work with, supporting most of the commonly used actions when interacting with a kubernetes cluster.

The focus thereby is on interaction with and inspection and manipulation of existing resources instead of on creating new resources as there are better ways to accomplish the latter.

Installation

kwatch is available as a standalone executable or as an npm package.

Prerequisites

Please ensure you have kubectl installed somewhere in your $PATH and configured it correctly.

NPM

kwatch requires Node.js version 10. If you have this installed you can easily install kwatch using the following command:

npm install -g kwatch

Standalone Executable

If you do not have Node.js installed you can instead download a standalone executable of kwatch from this project's releases page.

Extract the downloaded archive and put the kwatch binary somewhere in your $PATH.

Launch

After installation launch the program using the following command:

kwatch

Or if you are using a dark color scheme in your terminal, use dark mode:

kwatch -c dark

How to Use

The main user interface component is the resource list which shows the resouces of the type selected in the left pane, the api list, in the currently active kubernetes context and namespace.

Navigate the list using UP and DOWN keys, search in the list by pressing / which activates typeahead find.

Pressing ENTER on a resource shows a menu containing actions which can be run on the selected resource.

Switch between the resource list and the api list by using TAB. The api list as well as most menus can be filtered by typing a search term.

To change the current context (as in kubectl config use-context ...) press c. To change the current namespace press n.

For a reference of available keyboard shortcuts press h.

To quit kwatch press q.

For the global shortcuts (like q, h, c, etc.) to be effective the resource list must be focused.

Status

This project is in an early development phase. Nevertheless it is already quite usable. The main focus has been on designing the user interface. Only a few of the most common actions on resources have been implemented yet.

Actions implemented so far:

  • all
    • describe
    • show yaml
    • delete
    • force delete
  • pods
    • exec bash
    • exec login bash
    • exec shell
    • exec login shell
    • exec command
    • view log
    • tail log
  • secrets
    • show
    • dump

kwatch has been tested on systems running Linux and Windows Subsystem for Linux, using Gnome Terminal, MinTTY and tmux against on-premise kubernetes clusters (kubeadm) and DOKS kubernetes clusters (versions 1.12, 1.13, 1.14).

Contribute

Please report bugs using Github issues.

Pull requests are always welcome. Please follow the Angular Commit Message Guidelines (where scope specifies affected components in this project's context instead of the ones defined there). The commit messages are used by semantic-release to decide on release version numbers and to generate changelogs.

License

This software is distributed under the Apache License, Version 2.0, see LICENSE for more information.

Package Sidebar

Install

npm i kwatch

Weekly Downloads

0

Version

0.1.0

License

Apache-2.0

Unpacked Size

267 kB

Total Files

83

Last publish

Collaborators

  • panos--