Skip to main content

Autonomous Agent for Kubernetes

Autonomous Agent for Kubernetes powered by OpenAI.

Features:

  • Autonomous Kubernetes cluster operations using LLM Agents powered by ChatGPT (GPT-3.5, GPT-4 and future versions).
  • Diagnose and analyze the potential issues for Kubernetes workloads.
  • Generate the Kubernetes manifests based on the provided prompt instructions.
  • Utilize native kubectl and trivy commands for Kubernetes cluster access and security vulnerability scanning.

Install

Install locally

Install the kube-agent with the commands below. It is highly recommended to use pipx or venv to install the copilot to avoid conflicts with other Python packages.

# Option 1: use pipx to install the copilot
pipx install kube-agent

# Option 2: use venv to install the copilot
python3 -m venv agentenv
source agentenv/bin/activate
pip install kube-agent

# Option 3: Use pip to install the copilot (not recommended)
pip install kube-agent

Setup:

  • Ensure kubectl is installed on the local machine and the kubeconfig file is configured for Kubernetes cluster access.
  • Install trivy to assess container image security issues (for the audit command).
  • Set the OpenAI API key as the OPENAI_API_KEY environment variable to enable ChatGPT functionality.
    • For Azure OpenAI service, please set AZURE_OPENAI_API_KEY=<key> and AZURE_OPENAI_ENDPOINT=https://<replace-this>.openai.azure.com/.

Run in Kubernetes

kubectl run -it --rm copilot \
  --env="OPENAI_API_KEY=$OPENAI_API_KEY" \
  --restart=Never \
  --image=ghcr.io/feiskyer/kube-agent \
  -- execute --verbose 'What Pods are using max memory in the cluster'

kubectl run -it --rm copilot \
  --env="AZURE_OPENAI_API_KEY=$AZURE_OPENAI_API_KEY" \
  --env="AZURE_OPENAI_ENDPOINT=$AZURE_OPENAI_ENDPOINT" \
  --restart=Never \
  --image=ghcr.io/feiskyer/kube-agent \
  -- execute --verbose 'What Pods are using max memory in the cluster'

Refer kubernetes.md for more detailed steps.

How to use

Running directly in the terminal:

Usage: kube-agent [OPTIONS] COMMAND [ARGS]...

  Kubernetes Copilot powered by OpenAI

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  analyze   analyze issues for a given resource
  audit     audit security issues for a Pod
  diagnose  diagnose problems for a Pod
  execute   execute operations based on prompt instructions
  generate  generate Kubernetes manifests

Audit Security Issues for Pod

kube-agent audit POD [NAMESPACE] will audit security issues for a Pod:

Usage: kube-agent audit [OPTIONS] POD [NAMESPACE]

  audit security issues for a Pod

Options:
  --verbose      Enable verbose information of copilot execution steps
  --model MODEL  OpenAI model to use for copilot execution, default is gpt-4
  --help         Show this message and exit.

Diagnose Problems for Pod

kube-agent diagnose POD [NAMESPACE] will diagnose problems for a Pod:

Usage: kube-agent diagnose [OPTIONS] POD [NAMESPACE]

  diagnose problems for a Pod

Options:
  --verbose      Enable verbose information of copilot execution steps
  --model MODEL  OpenAI model to use for copilot execution, default is gpt-4
  --help         Show this message and exit.

Analyze Potential Issues for k8s Object

kube-agent analyze RESOURCE NAME [NAMESPACE] will analyze potential issues for the given resource object:

Usage: kube-agent analyze [OPTIONS] RESOURCE NAME [NAMESPACE]

  analyze issues for a given resource

Options:
  --verbose     Enable verbose information of copilot execution steps
  --model TEXT  OpenAI model to use for copilot execution, default is gpt-4
  --help        Show this message and exit.

Execute Operations Based on Prompt Instructions

kube-agent execute INSTRUCTIONS will execute operations based on prompt instructions. It could also be used to ask any questions.

Usage: kube-agent execute [OPTIONS] INSTRUCTIONS

  execute operations based on prompt instructions

Options:
  --verbose      Enable verbose information of copilot execution steps
  --model MODEL  OpenAI model to use for copilot execution, default is gpt-4
  --help         Show this message and exit.

Generate Kubernetes Manifests

Use the kube-agent generate command to create Kubernetes manifests based on the provided prompt instructions. After generating the manifests, you will be prompted to confirm whether you want to apply them.

Usage: kube-agent generate [OPTIONS] INSTRUCTIONS

  generate Kubernetes manifests

Options:
  --verbose     Enable verbose information of copilot execution steps
  --model TEXT  OpenAI model to use for copilot execution, default is gpt-4
  --help        Show this message and exit.

Contribution

The project is opensource at github feiskyer/kube-agent with Apache License.

If you would like to contribute to the project, please follow these guidelines:

  1. Fork the repository and clone it to your local machine.
  2. Create a new branch for your changes.
  3. Make your changes and commit them with a descriptive commit message.
  4. Push your changes to your forked repository.
  5. Open a pull request to the main repository.

Metadata

Release files for kube-agent 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kube-agent 0.2.0
File Size Uploaded Provenance
kube_agent-0.2.0.tar.gz 29.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kube-agent 0.2.0
File Interpreter ABI Platform
kube_agent-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 60.9 kB

Release files / kube_agent-0.2.0.tar.gz

Download URL kube_agent-0.2.0.tar.gz
Size 29.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1342185c9e4e27e35ecff07c688292081845add12acd6908496e8d7d4360acfc
BLAKE2b-256 checksum
How to use checksums
777b4af1df1bf29aca61faa048bfe69314ac075598a3d285be1389a7aa7b10de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-47-generic

Release files / kube_agent-0.2.0-py3-none-any.whl

Download URL kube_agent-0.2.0-py3-none-any.whl
Size 31.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72c1c6d1bf1d146a30edd3e9453226335cc4ef5102590b82398d335a43265934
BLAKE2b-256 checksum
How to use checksums
c01336b0ec015157d77370da387c2e3fa1dae0b9661545d0bc99635780541971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-47-generic

Security for kube-agent 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page