A health check and RCA tool for kubernetes
Project description
unctl
Table of Contents
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 |
Built With
Getting Started
Prerequisites
- Python >= 3.10
- OpenAI API Key - to have AI based functionality enabled
Installation
- Get distibution on your machine:
- Run
pip
command to installunctl
from PyPIpip install unctl
- Run
- (optional) Set OpenAI API key to be able to use
--explain (-e)
optionexport OPENAI_API_KEY=<your api key>
- (optional) Set
KUBECONFIG
variable to specific location other than defaultexport KUBECONFIG=<path to kube config file>
Development
- Install poetry:
pip install poetry
- Enter virtual env:
poetry shell
- Install dependencies:
poetry install
- Run tool:
python unctl.py -h
- 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:
BREAKING CHANGE: <message>
- creates new major versionfeat: <message>
- creates new minor versionfix or perf: <message>
- creates new patch version- All other tags will not create new release
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
Roadmap
- K8s checks - in progress
- Elastic Search checks
- Postgres checks
- AWS checks
- GCP checks
Contact
Abhishek Saxena: abhishek@unskript.com
Official website: https://unskript.com/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.