Skip to content

oslabs-beta/kaptn

Repository files navigation

Untitled (1000 × 300 px)

Built With

JavaScript TypeScript React Node Express Vite Electron Docker Kubernetes Grafana Prometheus Helm MUI HTML CSS Jest

kaptn

Kaptn is a fully downloadable desktop application that provides a user-friendly interface for developers to interact with Kubernetes. With the Kaptn Krane Cluster Manager, our supercharged CLI with pre-selected kubectl options and the ability to free-type commands, and our Easy Setup and Cluster Metrics Visualizer, Kaptn provides all the tools you need, whether it's to manage your clusters, or to gain familiarity and proficiency in K8s.

Features

  • Kaptn Krane Cluster Manager - NEW!
    • View live and historical metrics, and refresh stats at adjustable intervals
    • Scale, delete/restart, and rollback deployments, nodes, and pods
    • View logs, yamls, and describe resources
    • Intuitive UI including custom speedometer-style gauges for CPU and Memory Usage, visx graphs, and one-click control of your clusters
    • Filter and sort resources by namespace, max CPU and memory, and more.
  • User-friendly terminal interface
    • Take command of the command line interface with pre-selected kubectl options, or free-type
    • Clearly visualize the commands within our interactive terminal
  • Quick kubernetes setup
    • Personalized YAML file creator
    • Ability to choose or create new image
  • Cluster metrics visualization
    • Kubernetes API server metrics
    • Connect with Grafana and Prometheus to monitor cluster health
  • Troubleshoot any confusion with the Instant Help Desk
  • Follow tutorials and master K8s with our Learning Center

Updates

Version 2.0.1 -

  • Adds interactive, expandable visx graphs for pods' and nodes' historical CPU and memory usage

  • Adds variable refresh rate

  • Adds various other bugs fixes and additions including: Fixes bug with user directory in CLI

For details on all previous updates and releases, please see the CHANGELOG, or Releases page.

Getting Started

  1. Download the latest release here.

For Windows (portable) - Open the .exe file.

For Linux (AppImage) - Follow the instructions here to run the application.

For Mac (Intel/x64/Universal) - Double-click the .dmg installer, and drag and drop Kaptn in your Applications folder. If you get a warning that the app is from an unidentified developer, go to System Preferences > Security & Privacy > General and click "Open Anyway".

For Mac (Apple Silicon/ARM64) - We do not have Mac code-signing, and therefore cannot offically offer an Apple Silicon/ARM64 version for download here. You can still use the "Mac Universal" version above, OR there is this work-around to create an Apple Silicon version on your computer:

First fork/clone the project. Then open a terminal in the project, and run:

npm i

After that, run:

npm run build:mac

After completion, the .dmg file will be available in the "dist" folder. If you get a warning that the app is from an unidentified developer, go to System Preferences > Security & Privacy > General and click "Open Anyway".

Usage Guidelines

Overview

Our application defaults to start page, where installation checks will run, and where you will be able to choose which page you'd like to visit.

newStartPage

Krane Cluster Manager

Our all-new Krane Cluster Manager allows you to control your clusters at the click of a button. Simply choose "Nodes & Pods" or "Deployments" at the top of the screen, and you'll have the following options:

  • Nodes:

    • View Live CPU and Memory Use
    • View Graphs of Historical CPU and Memory Use
    • View Nodes' Pods
    • View Node Yaml
    • Describe Node
    • Drain Node
    • Cordon Node
    • Uncordon Node
    • Delete / Restart Node
  • Pods:

    • View Live CPU and Memory Use
    • View Graphs of Historical CPU and Memory Use
    • View Pod's Containers and Stats
    • View Pod Logs
    • View Pod Yaml
    • Describe Pod
    • Delete / Restart Pod
    • Filter by Namespace
    • Sort by Namespace, Max CPU and Memory, and more.

v201screencaps-nodesPods

  • Deployments:
    • View ReplicaSets and Statuses
    • View Deployment Yaml
    • View Deployment Logs
    • Describe Deployment
    • View Rollout Status
    • View Rollout History
    • Rollback to Previous Version
    • Perform Rolling Restart
    • Scale Deployment
    • Delete Deployment
    • Filter by Namespace

v201screencaps-Deploys

Supercharged CLI

You can choose from the pre-suggested commands—including kubectl—to manage your kubernetes clusters or free-type in the command line interface. You can click on the ‘run’ button to run your command, or the ‘clear’ button to wipe the command line. Take advantage of the instant help desk to get more info about any command or type without leaving the command line, and losing the code you've already written.

dashboardnew

Easy Setup

  1. Open up docker

  2. Open up a terminal

  3. Choose Image

    • Before you begin to configure your docker and kubernetes, you will need a docker image. You may create your own docker image by defining that image in a dockerfile. For the purposes of this tutorial, however, select an existing image from an online registry, such as dockerhub
    • Navigate to (https://hub.docker.com) on your browser and create an account / sign in
    • Upon entering the dockerhub dashboard, use the search bar or the explore page to look up an image
    • After selecting an image, click on 'Tags' to view all tag labels attached
    • In the terminal you opened up in step 2, run docker pull imagename:tagname
    • Type out the full image name with the tag into the Image Input Field and press the Enter key
    • You may move onto step 4 once you see the image name render on the screen

    chooseimage (1) enterimg (1)

  4. Choose Working Directory

    • Select the working directory from which the virtual command line interface will be launched

    cwd

  5. Create .YAML File

    • Click on the CREATE .YAML FILE button, which will open up a page for you to set up your yaml file
    • Using the interactive .yaml generator, configure your file accordingly (e.g. deployment, deployment strategy, volume, DNS). You will be able to preview your code on the right side of the page as you make changes
    • Once complete, copy the yaml file by clicking the Copy to Clipboard button in the top right corner
    • Paste your code into the Name input field in the following format and press enter or click run: echo ‘YOUR CODE’ > FILENAME.yaml
    • Use your OS finder / files to locate the yaml file you created and confirm that it is configured as you expect

    configyaml (2) touchyaml

  6. Congratulations! You have successfully setup your Kubernetes cluster!

Metrics

The metrics section is made up of various grafana dashboards to monitor different aspects of your Kubernetes clusters, including:

  • Kubernetes API server: API server request rates/latencies, workqueue latencies, and etcd cache hit rate Screen Shot 2023-04-19 at 8 30 55 PM

Contributing

How to contribute

Contributions are an incredibly important part of the open source community. Any contributions you make are greatly appreciated!

  • Fork the project
  • Create your feature branch (git checkout -b feature/AmazingFeature)
  • Commit your changes (git commit -m 'Add some AmazingFeature')
  • Push to the branch (git push origin feature/AmazingFeature)
  • Open a pull request (from feature/AmazingFeature to dev)
  • Create a new issue on GitHub

Publications

Check out our Medium article here.

Contributors

License

Distributed under the MIT License. See LICENSE for more information.

Give this project a ⭐️ if it helped you!

Untitled (1000 × 300 px) (1)