Provides a CLI to run all sorts of sequences like demo prep.
Project description
CAST AI SE CLI (cast-ai-se-cli package | se-cli tool)
Introduction / Overview
This project aims to serve as swiss knife intended to serve CAST AI SEs. Assisting with demo environment prep, providing snapshot analysis and many others in the future. The CLI tool is based on a modular architecture and leverages API orchestration tools package -> cast-ai-se-tools
Table of Contents
Installation
To install, run:
pip install cast-ai-se-cli
or forced:
pip install cast-ai-se-cli --force-reinstall
To upgrade, run:
pip install --upgrade cast-ai-se-cli
or forced:
pip install --upgrade --force-reinstall cast-ai-se-cli
Usage
For some of the functions(commands) the tool offers a configuration file is required (config.json).
First time running the tool if file is not found, the tool would create an empty template file.
The user is required to fill fields required to automate sequences related to the chosen command.
The template comes with additional default parameters that can found here
High-Level:
CLI commands:
se-cli demo <prep|off> <eks|aks|gcp> [--cluster_id <cluster_id>] [-h|--help] [-d|--debug]
se-cli snapshot <analyze> <brief|detailed> [--cluster_id <cluster_id>] [-h|--help] [-d|--debug]
se-cli audit <analyze> [--cluster_id <cluster_id>] [-h|--help] [-d|--debug]
CLI commmands explained:
se-cli demo <prep|off> <eks|aks|gcp>
-
demo command is used to either prep a demo environment:
Use the config.json data to get the cluster into a specific node count (default=7)
with specific replicated demo replicas (default=2) and then delete previous nodes Turning off a cluster would be invoking the hibernation cronjob. -
The subcommand <eks|aks|gcp> is to determine which cluster will be prep`ed or turned off.\
se-cli snapshot <brief|detailed>
-
snapshot command is used to either generate a brief or detailed report of workloads that have some effect on scheduling:
-
nodeSelector
-
topologySpreadConstraints
-
affinity
-
runtimeClassName
-
pdb`s
Workloads analyzed:
- deployments
- replicaSets
- daemonSets
- statefulSets
- jobs
The detailed report includes the namespaces and names of workloads
Options:
-h, --help Show this help message and exit.
-d, --debug Enable debug logging.
-c, --cluster_id <cluster_id> (Optional) Specify the cluster ID for the demo environment.
Command->Outcome:
se-cli demo prep
:
se-cli demo off
:
Hitting a timeout:
se-cli audit analyze
:
Contributing
Contributions are welcome! To contribute, follow these steps:
git clone project as first step create features/fixes by applying a simple <TYPE(fix/feature...)>/<INITIATING_USER>-<FEATURE/FIX-NAME> branch do not forget to update version and open a PR Please make sure CI process that enforces light flake8 lint passes (flak8 and other helper script can be found in helper_script folder)
License
This project is licensed under the APACHE License.
Roadmap
- Version 0.1.0: First semi-major release end of 2023 Q4 - tested and vetted demo functionality
- Version 0.2.0: Second semi-major release to support snapshots analysis
- Version 0.3.0: Third semi-major to integrate with solution-engineering tool
- Version 1.0.0: First Major release tested and vetter all other previous releases (end of 2024 Q1)
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.
Source Distribution
File details
Details for the file cast_ai_se_cli-0.0.32.tar.gz
.
File metadata
- Download URL: cast_ai_se_cli-0.0.32.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08a451c0ae3b944d0fcafb163ad4259999e7aaad3793a8c9a479fe65acd9f0a9 |
|
MD5 | 90a3c22362327db25d394566c11569d7 |
|
BLAKE2b-256 | c3e1902b40e72c09d3744bdfe4d5af40641d219437afffad8465773cd9307fe1 |