Abstract

Kubernetes Operator Agent is a LLM agent that is deployed as an operator in Kubernetes.

Readme#

Quality Gate Status Coverage Status

Kubernetes Operator Agent

Development#

This project uses Skaffold and Helm for development. Please make sure you have them installed on your machine.

Python#

The main code is written in Python, which may be formatted with either PyDantic or Black.

Prerequisites#

  1. Access to a running Kubernetes cluster or the ability to create one.

  2. Python

  3. LangChain

  4. Helm

Bare Metal Deployment#

The process for this follows.

  1. Build the agent image and push it to a public or local image repository.

    docker build -t dockerhubuser/agent:0.0.1 .
    
  2. Configure the redis-stack application’s required storage class settings.

    # values.yaml
    # This is necessary only if you need to override the default `hostpath` storageClass.
    redis-stack-server:
      redis_stack_server:
        storage_class: csi-lvm-linear
    
  3. Configure the image repository and tag settings.

    # values.yaml
    image:
      repository: dockerhubuser/agent
      tag: 0.0.1
    
  4. Obtain an OpenAPI API key and configure its value for the deployment.

    # secrets/values.yaml
    envVars:
      OPENAI_API_KEY: base64-encoded-api-key
    
  5. Create a namespace for the agent.

    kubectl create ns agent
    
  6. Deploy the agent with Helm using the values shown above.

    helm upgrade --install -n agent agent deployment/helm/k8s-agent -f secrets/values.yaml -f values.yaml