Skip to main content
Version: main 🚧

Configure LLMs for EKS

Dynamic Agents and RAG read provider credentials from Kubernetes Secrets. The standard chart path uses a shared llm-secret.

OpenAI

kubectl create secret generic llm-secret \
-n ai-platform-engineering \
--from-literal=LLM_PROVIDER=openai \
--from-literal=OPENAI_API_KEY=<token> \
--from-literal=OPENAI_MODEL_NAME=gpt-4o
global:
llmSecrets:
secretName: llm-secret

dynamic-agents:
llmSecret: llm-secret

Azure OpenAI

kubectl create secret generic llm-secret \
-n ai-platform-engineering \
--from-literal=LLM_PROVIDER=azure-openai \
--from-literal=AZURE_OPENAI_API_KEY=<token> \
--from-literal=AZURE_OPENAI_ENDPOINT=https://example.openai.azure.com \
--from-literal=AZURE_OPENAI_API_VERSION=2025-03-01-preview \
--from-literal=AZURE_OPENAI_DEPLOYMENT=gpt-4o

AWS Bedrock

kubectl create secret generic llm-secret \
-n ai-platform-engineering \
--from-literal=LLM_PROVIDER=aws-bedrock \
--from-literal=AWS_ACCESS_KEY_ID=<access-key> \
--from-literal=AWS_SECRET_ACCESS_KEY=<secret-key> \
--from-literal=AWS_REGION=us-east-1 \
--from-literal=AWS_BEDROCK_MODEL_ID=us.amazon.nova-pro-v1:0 \
--from-literal=AWS_BEDROCK_PROVIDER=amazon

Seed Models in the UI

Use caipe-ui.appConfig.models when you want model options to be available without manual admin setup:

caipe-ui:
appConfig:
models:
- model_id: gpt-4o
name: GPT-4o
provider: openai
enabled: true

RAG Embeddings

If RAG uses a different provider than chat, add the embedding keys to the same secret or to the RAG chart's configured secret. Keep the provider-specific key names unchanged so the workload can read them directly.

Verify

kubectl get secret llm-secret -n ai-platform-engineering
kubectl logs -n ai-platform-engineering -l app.kubernetes.io/name=dynamic-agents