Skip to main content

A health check and RCA tool for kubernetes

Project description

unctl



Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contact

About The Project

unctl is a versatile command-line tool designed to perform a wide range of checks and inspections on various components of your infrastructure. It provides a unified interface to assess the health and performance of different services and platforms, and goes beyond mere diagnosis. With built-in AI capabilities, it guides you seamlessly from system diagnostic to remediation, offering intelligent solutions to address any issues it detects.

This addition emphasizes the tool's capacity to not only identify problems but also provide AI-driven recommendations and solutions for resolving those issues, making it even more valuable for infrastructure management and maintenance.

Provider Checks
Kubernetes 19
Elastic Search TBA
Postgres TBA
AWS TBA
GCP TBA

(back to top)

Built With

Python ChatGPT GitHub Actions

(back to top)

Getting Started

Prerequisites

  • Python >= 3.10
  • OpenAI API Key - to have AI based functionality enabled

Installation

  1. Get distibution on your machine:
    • Run pip command to install unctl from PyPI
      pip install unctl
      
  2. (optional) Set OpenAI API key to be able to use --explain (-e) option
    export OPENAI_API_KEY=<your api key>
    
  3. (optional) Set KUBECONFIG variable to specific location other than default
    export KUBECONFIG=<path to kube config file>
    

Development

  1. Install poetry:
    pip install poetry
    
  2. Enter virtual env:
    poetry shell
    
  3. Install dependencies:
    poetry install
    
  4. Run tool:
    python unctl.py -h
    
  5. Format all files before commit changes:
    black .
    

Release

For the release this repo is using Semantic Realese as automated process. To be able to generate changelogs we should keep using Conventional Commits practice. When PR merged to master it uses squash and merge with PR title for the commit message. This requires PR title to be conventional:

feat(EN-4444): Add Button component
^    ^          ^
|    |          |__ Subject
|    |_______ Scope
|____________ Type

When release job is running it will automatically bump up version depends on the changes:

  1. BREAKING CHANGE: <message> - creates new major version
  2. feat: <message> - creates new minor version
  3. fix or perf: <message> - creates new patch version
  4. All other tags will not create new release

(back to top)

Usage

% unctl -h
usage: unctl [-h] [-s] [-f] [-d] [-e] [-r] [-c] [-v]

Welcome to unSkript CLI Interface

options:
  -h, --help          show this help message and exit
  -s, --scan          Run a k8s scan
  -f, --failing-only  Show only failing checks
  -d, --diagnose      Run fixed diagnosis
  -e, --explain       Explain failures using AI
  -r, --remediate     Create remediation plan
  -c, --check         Run a single check
  -v, --version       show program's version number and exit

(back to top)

Roadmap

  • K8s checks - in progress
  • Elastic Search checks
  • Postgres checks
  • AWS checks
  • GCP checks

(back to top)

Contact

Abhishek Saxena: abhishek@unskript.com

Official website: https://unskript.com/

(back to top)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unctl-0.3.0.tar.gz (51.3 kB view hashes)

Uploaded Source

Built Distribution

unctl-0.3.0-py3-none-any.whl (75.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page