@kui-shell/plugin-helmui

Kubernetes visualization plugin for helm


Keywords
kubernetes, kubectl, helm, cli, ui, kui, plugin, electron, krew, krew-plugin, kubectl-plugins, visualization
License
Apache-2.0
Install
npm install @kui-shell/plugin-helmui@1.0.17

Documentation

Kubernetes UI Plugin for Kui

Build Status License

This project offers a kubectl plugin that offers graphical popups in response to normal kubectl commands. To provide a popup-from-terminal experience, this project leverages the Kui project.

For example, kubectl kubeui get pods will pop up a window that displays a table with clickable pod names; the screenshot to the right illustrates one such popup. kubeui popup

Upon clicking a pod name, you will be presented with a multi-tab view of the detail of the resource you selected; the screenshot a bit further down and on the left illustrates such a multi-tab detail view.

Prebuilt Images

You may choose to consume prebuilt images: download and extract into your ~/.krew/bin, make sure that directory is on your PATH, then issue kubectl kubeui get pods.

Latest Release | Mac | Linux

Code and Contribute

git clone https://github.com/kui-shell/plugin-kubeui && cd plugin-kubeui
npm ci
npm start

You should see a window come up. You can now try, for example, kubectl get pods, and expect to see a table, similar to that in the above screenshot. This development client popup has an integrated terminal. You may issue rapid-fire commands within this terminal, so that you can test out a variety of commands in quick succession.

kubeui pod detail

Edit-debug Loop

This project is coded in TypeScript. You may launch a TypeScript watcher via:

npm run watch

The edit-debug loop involves: edit and save a source change; wait for the TypeScript compiler to recompile your source changes; finally, in most cases a simple reload (via Ctrl+R, or Command+R on macOS) of the development client suffices to integrate your changes into an already-open window.

Building a Distribution

To pack up a set of platform clients for subsequent distribution, you may leverage several npm targets expressed in the package.json:

This command will build a macOS tarball, and place it in dist/electron/Kui-darwin-x64.tar.bz2:

npm run build:electron:mac

To enable your already-built bundles as kubectl plugins, this script amends those archives with a simple kubectl-kubeui script front end:

./bin/amend-dist-for-krew.sh

Or, you can build kubectl-enabled archives for all known platforms via:

npm run build:krew

Theming

You have the option to customize the theming in several ways. Here are some of the choices you can influence:

  • client name
  • client icon
  • default theme
  • available themes

These changes are captured in the theme/ subdirectory. More details coming soon. For now, browse the theme.json file.