mirror of
https://github.com/trailofbits/buttercup
synced 2026-06-21 14:11:39 +00:00
adf5530b41
* feat(llm): add newer Anthropic and OpenAI models to LiteLLM Add 9 model entries across the LiteLLM proxy config, k8s values, and ButtercupLLM enum so callers can opt into newer models without code changes: openai-o4-mini, openai-gpt-5/-mini/-nano, claude-4-opus, claude-4.1-opus, claude-4.5-haiku, claude-4.6-sonnet, claude-4.7-opus. Verified end-to-end with docker compose: LiteLLM v1.57.8 boots cleanly, /v1/models lists all 27 entries, and chat completions for the new model IDs are dispatched to api.anthropic.com / api.openai.com. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(llm): narrow new model set to opus 4.6/4.7, sonnet 4.6, haiku 4.5 + gpt-5.4/5.4-mini/5.5 Replace the previously added openai-o4-mini and gpt-5/-mini/-nano entries with gpt-5.4, gpt-5.4-mini, gpt-5.5; drop claude opus 4 and 4.1 in favor of opus 4.6. Final new entries (7): claude-4.5-haiku, claude-4.6-sonnet, claude-4.6-opus, claude-4.7-opus, openai-gpt-5.4-mini, openai-gpt-5.4, openai-gpt-5.5. Re-verified with docker compose: LiteLLM v1.57.8 boots, /v1/models lists all 25 entries, and chat completions for claude-4.6-opus and openai-gpt-5.5 are dispatched to api.anthropic.com / api.openai.com. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
467 lines
12 KiB
YAML
467 lines
12 KiB
YAML
# Global values available to all charts
|
|
global:
|
|
# Set environment: "minikube" or "aks"
|
|
environment: "minikube"
|
|
logMaxLineLength: 10240
|
|
orchestratorImage:
|
|
repository: ghcr.io/trailofbits/buttercup/buttercup-orchestrator
|
|
tag: "main"
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
fuzzerImage:
|
|
repository: ghcr.io/trailofbits/buttercup/buttercup-fuzzer
|
|
tag: "main"
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
seedGenImage:
|
|
repository: ghcr.io/trailofbits/buttercup/buttercup-seed-gen
|
|
tag: "main"
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
patcherImage:
|
|
repository: ghcr.io/trailofbits/buttercup/buttercup-patcher
|
|
tag: "main"
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
programModelImage:
|
|
repository: ghcr.io/trailofbits/buttercup/buttercup-program-model
|
|
tag: "main"
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
competitionApiImage:
|
|
repository: ghcr.io/tob-challenges/example-crs-architecture/competition-test-api
|
|
tag: v1.4-rc1
|
|
pullPolicy: Always
|
|
pullSecrets: ["ghcr-auth"]
|
|
|
|
# Default sample size for the coverage bot
|
|
coverageBot:
|
|
sampleSize: 200
|
|
|
|
# Max PoV size limit
|
|
maxPovSize: 2097152 # 2 MiB
|
|
|
|
# Langfuse global configuration for all subcharts
|
|
langfuse:
|
|
enabled: false
|
|
host: "https://cloud.langfuse.com"
|
|
publicKey: "pk-lf-..." # Replace with your actual public key
|
|
secretKey: "sk-lf-..." # Replace with your actual secret key
|
|
signoz:
|
|
deployed: false
|
|
crs:
|
|
api_key_id: 515cc8a0-3019-4c9f-8c1c-72d0b54ae561
|
|
api_key_token: VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB
|
|
api_key_token_hash: "$argon2id$v=19$m=65536,t=3,p=4$Dg1v6NPGTyXPoOPF4ozD5A$wa/85ttk17bBsIASSwdR/uGz5UKN/bZuu4wu+JIy1iA"
|
|
# api_url: "https://api.tail7e9b4c.ts.net"
|
|
hostname: "buttercup-crs"
|
|
competition_api_key_id: 11111111-1111-1111-1111-111111111111
|
|
competition_api_key_token: secret
|
|
# competition_api_url: "https://api.tail7e9b4c.ts.net"
|
|
otel:
|
|
endpoint: "https://127.0.0.1:4318" # TODO: Change to the actual endpoint
|
|
token: "token"
|
|
protocol: "grpc"
|
|
queueTimeouts:
|
|
buildTaskTimeoutMs: 120000
|
|
buildOutputTaskTimeoutMs: 120000
|
|
downloadTaskTimeoutMs: 120000
|
|
readyTaskTimeoutMs: 120000
|
|
deleteTaskTimeoutMs: 120000
|
|
crashTaskTimeoutMs: 120000
|
|
patchTaskTimeoutMs: 120000
|
|
confirmedVulnerabilitiesTaskTimeoutMs: 120000
|
|
indexTaskTimeoutMs: 120000
|
|
indexOutputTaskTimeoutMs: 120000
|
|
tracedVulnerabilitiesTaskTimeoutMs: 120000
|
|
# Node-local storage configuration to be accessible by all subcharts
|
|
volumes:
|
|
nodeLocal:
|
|
enabled: true
|
|
hostPath: /node_data_storage
|
|
type: DirectoryOrCreate
|
|
mountPath: /node_data
|
|
# Optional tmpfs volume for fuzzing corpus storage (per-node, shared across pods)
|
|
# When enabled, corpus data is stored in RAM for improved I/O performance
|
|
corpusTmpfs:
|
|
enabled: false
|
|
# /dev/shm is tmpfs by default on Linux - no host setup required
|
|
hostPath: /dev/shm/buttercup-corpus
|
|
type: DirectoryOrCreate
|
|
# Mount path inside containers
|
|
mountPath: /corpus_tmpfs
|
|
|
|
# Volume configurations
|
|
volumes:
|
|
tasks_storage:
|
|
enabled: true
|
|
# When using AKS, specify the appropriate storage class for ReadWriteMany support
|
|
# For example: "azurefile-csi-nfs-${BUTTERCUP_NAMESPACE}"
|
|
storageClass: "" # Empty string will use cluster default
|
|
size: "5Gi"
|
|
accessMode: ReadWriteMany
|
|
crs_scratch:
|
|
enabled: true
|
|
# When using AKS, specify the appropriate storage class for ReadWriteMany support
|
|
storageClass: "" # Empty string will use cluster default
|
|
size: "10Gi"
|
|
accessMode: ReadWriteMany
|
|
ui_db:
|
|
enabled: true
|
|
# When using AKS, specify the appropriate storage class for ReadWriteMany support
|
|
storageClass: "" # Empty string will use cluster default
|
|
size: "1Gi"
|
|
accessMode: ReadWriteOnce
|
|
|
|
|
|
# Dind daemon chart configuration
|
|
dind-daemon:
|
|
enabled: true
|
|
resources:
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 16Gi
|
|
requests:
|
|
cpu: 500m
|
|
memory: 1Gi
|
|
|
|
# Service-specific configurations
|
|
redis:
|
|
image:
|
|
repository: bitnamisecure/redis
|
|
tag: latest
|
|
auth:
|
|
enabled: false # Disable authentication for simplicity
|
|
architecture: standalone # Use single instance instead of cluster
|
|
master:
|
|
persistence:
|
|
enabled: true
|
|
size: 8Gi # 8GB of storage for redis, how much is needed?
|
|
storageClass: managed-premium
|
|
|
|
configuration: |-
|
|
appendonly yes
|
|
appendfsync everysec
|
|
no-appendfsync-on-rewrite no
|
|
auto-aof-rewrite-percentage 100
|
|
auto-aof-rewrite-min-size 64mb
|
|
resources:
|
|
limits:
|
|
cpu: 250m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
# Add Docker registry authentication
|
|
global:
|
|
imagePullSecrets:
|
|
- ghcr-auth
|
|
- docker-auth
|
|
|
|
task-server:
|
|
enabled: true
|
|
# API authentication is configured with the following credentials:
|
|
# API Key ID: 515cc8a0-3019-4c9f-8c1c-72d0b54ae561
|
|
# API Token: VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB (for client usage)
|
|
# These values are set in the secret/config-map in config.yaml
|
|
|
|
task-downloader:
|
|
enabled: true
|
|
|
|
scheduler:
|
|
enabled: true
|
|
|
|
program-model:
|
|
enabled: true
|
|
|
|
build-bot:
|
|
replicaCount: 4
|
|
enabled: true
|
|
timer: 5000
|
|
logLevel: "DEBUG"
|
|
|
|
fuzzer-bot:
|
|
enabled: true
|
|
|
|
coverage-bot:
|
|
enabled: true
|
|
|
|
tracer-bot:
|
|
enabled: true
|
|
|
|
seed-gen:
|
|
enabled: true
|
|
logMaxLineLength: 10240
|
|
maxCorpusSeedSize: 65536 # 64 KiB
|
|
|
|
patcher:
|
|
enabled: true
|
|
|
|
competition-api:
|
|
enabled: true
|
|
|
|
# Registry cache configuration
|
|
registry-cache:
|
|
enabled: true
|
|
persistence:
|
|
enabled: true
|
|
size: 10Gi
|
|
|
|
# Scratch cleaner configuration
|
|
scratch-cleaner:
|
|
enabled: true
|
|
resources:
|
|
limits:
|
|
cpu: 500m
|
|
memory: 1Gi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
|
|
# LiteLLM configuration
|
|
litellm-helm:
|
|
# Override the name to ensure it matches our references
|
|
nameOverride: "litellm"
|
|
|
|
# Number of workers for the LiteLLM service
|
|
replicaCount: 1
|
|
|
|
# Set the service port
|
|
service:
|
|
port: 4000
|
|
|
|
# Image pull secrets for all containers (main, init, and PostgreSQL)
|
|
imagePullSecrets:
|
|
- name: ghcr-auth
|
|
- name: docker-auth
|
|
|
|
# Configure the built-in PostgreSQL with our desired settings
|
|
postgresql:
|
|
enabled: true
|
|
image:
|
|
repository: bitnamilegacy/postgresql
|
|
tag: "17.2.0"
|
|
auth:
|
|
username: litellm_user
|
|
password: litellm_password11
|
|
database: litellm
|
|
enablePostgresUser: true
|
|
postgresPassword: litellm_password11
|
|
primary:
|
|
resources:
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 2Gi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
readReplicas:
|
|
replicaCount: 0
|
|
|
|
# Configure database connection properly
|
|
db:
|
|
deployStandalone: true
|
|
endpoint: "buttercup-litellm-postgresql"
|
|
database: "litellm"
|
|
url: "postgresql://litellm_user:litellm_password11@buttercup-litellm-postgresql:5432/litellm"
|
|
|
|
# Use environment secrets for API keys
|
|
# For subcharts, we need to use a static name that will be templated at the parent level
|
|
environmentSecrets:
|
|
- "buttercup-litellm-api-secrets"
|
|
|
|
# Direct inclusion of the litellm_config.yaml content
|
|
proxy_config:
|
|
model_list:
|
|
- model_name: azure-gpt-4o
|
|
litellm_params:
|
|
model: azure/gpt-4o
|
|
api_base: os.environ/AZURE_API_BASE
|
|
api_key: os.environ/AZURE_API_KEY
|
|
tpm: 30000
|
|
rpm: 1800
|
|
|
|
- model_name: azure-gpt-4o-mini
|
|
litellm_params:
|
|
model: azure/gpt-4o-mini
|
|
api_base: os.environ/AZURE_API_BASE
|
|
api_key: os.environ/AZURE_API_KEY
|
|
tpm: 50000
|
|
rpm: 5000
|
|
|
|
- model_name: azure-o3-mini
|
|
litellm_params:
|
|
model: azure/o3-mini
|
|
api_base: os.environ/AZURE_API_BASE
|
|
api_key: os.environ/AZURE_API_KEY
|
|
api_version: 2024-12-01-preview
|
|
tpm: 50000
|
|
rpm: 50
|
|
|
|
- model_name: azure-o1
|
|
litellm_params:
|
|
model: azure/o1
|
|
api_base: os.environ/AZURE_API_BASE
|
|
api_key: os.environ/AZURE_API_KEY
|
|
api_version: 2024-12-01-preview
|
|
tpm: 30000
|
|
rpm: 50
|
|
|
|
- model_name: openai-gpt-4o
|
|
litellm_params:
|
|
model: openai/gpt-4o
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: openai-gpt-4o-mini
|
|
litellm_params:
|
|
model: openai/gpt-4o-mini
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 150000000
|
|
rpm: 30000
|
|
|
|
- model_name: openai-o3-mini
|
|
litellm_params:
|
|
model: openai/o3-mini
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 150000000
|
|
rpm: 30000
|
|
|
|
- model_name: openai-o1
|
|
litellm_params:
|
|
model: openai/o1
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: openai-o3
|
|
litellm_params:
|
|
model: openai/o3
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: openai-gpt-4.1
|
|
litellm_params:
|
|
model: openai/gpt-4.1
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: openai-gpt-4.1-mini
|
|
litellm_params:
|
|
model: openai/gpt-4.1-mini
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 150000000
|
|
rpm: 30000
|
|
|
|
- model_name: openai-gpt-4.1-nano
|
|
litellm_params:
|
|
model: openai/gpt-4.1-nano
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 150000000
|
|
rpm: 30000
|
|
|
|
- model_name: openai-gpt-5.4-mini
|
|
litellm_params:
|
|
model: openai/gpt-5.4-mini
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 150000000
|
|
rpm: 30000
|
|
|
|
- model_name: openai-gpt-5.4
|
|
litellm_params:
|
|
model: openai/gpt-5.4
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: openai-gpt-5.5
|
|
litellm_params:
|
|
model: openai/gpt-5.5
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
tpm: 30000000
|
|
rpm: 10000
|
|
|
|
- model_name: claude-3.7-sonnet
|
|
litellm_params:
|
|
model: anthropic/claude-3-7-sonnet-20250219
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 175000
|
|
rpm: 6250
|
|
|
|
- model_name: claude-4-sonnet
|
|
litellm_params:
|
|
model: anthropic/claude-sonnet-4-20250514
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: claude-4.5-sonnet
|
|
litellm_params:
|
|
model: anthropic/claude-sonnet-4-5-20250929
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: claude-4.5-haiku
|
|
litellm_params:
|
|
model: anthropic/claude-haiku-4-5-20251001
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: claude-4.6-sonnet
|
|
litellm_params:
|
|
model: anthropic/claude-sonnet-4-6
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: claude-4.6-opus
|
|
litellm_params:
|
|
model: anthropic/claude-opus-4-6
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: claude-4.7-opus
|
|
litellm_params:
|
|
model: anthropic/claude-opus-4-7
|
|
api_key: os.environ/ANTHROPIC_API_KEY
|
|
tpm: 1775000
|
|
|
|
- model_name: gemini-pro
|
|
litellm_params:
|
|
model: gemini/gemini-pro
|
|
api_key: os.environ/GEMINI_API_KEY
|
|
tpm: 2000000
|
|
rpm: 150
|
|
|
|
- model_name: gemini-2.5-flash-exp
|
|
litellm_params:
|
|
model: gemini/gemini-2.5-flash-exp
|
|
api_key: os.environ/GEMINI_API_KEY
|
|
tpm: 4000000
|
|
rpm: 2000
|
|
|
|
- model_name: gemini-2.5-flash
|
|
litellm_params:
|
|
model: gemini/gemini-2.5-flash
|
|
api_key: os.environ/GEMINI_API_KEY
|
|
tpm: 4000000
|
|
rpm: 2000
|
|
|
|
|
|
general_settings:
|
|
master_key: os.environ/BUTTERCUP_LITELLM_KEY
|
|
database_url: "postgresql://litellm_user:litellm_password11@buttercup-postgresql:5432/litellm"
|
|
store_model_in_db: true
|
|
# store_prompts_in_spend_logs: true
|
|
|
|
restartPolicy: Always
|
|
|
|
# SigNoz observability platform
|
|
signoz:
|
|
enabled: false
|
|
clickhouse:
|
|
zookeeper:
|
|
image:
|
|
repository: bitnamilegacy/zookeeper
|