Environment Variables

All environment variables injected into agent pods by the ark-operator — operator-injected and user-configurable.

All environment variables available to agent pods.


Operator-injected variables

These are set by the operator based on the ArkAgent and ArkTeam spec. Do not set these manually — the operator manages them.

VariableDescription
AGENT_MODELModel ID from spec.model (e.g. llama3.2, gpt-4o)
AGENT_SYSTEM_PROMPTResolved system prompt (inline or from ConfigMap, merged with ArkSettings fragments)
AGENT_MCP_SERVERSJSON array of {name, url, headers} — one entry per MCP server in spec.mcpServers
AGENT_WEBHOOK_TOOLSJSON array of inline webhook tool definitions from spec.tools
AGENT_MAX_TOKENSFrom spec.limits.maxTokensPerCall (default: 8000)
AGENT_TIMEOUT_SECONDSFrom spec.limits.timeoutSeconds (default: 120)
AGENT_MAX_CONCURRENT_TASKSFrom spec.limits.maxConcurrentTasks (default: 5)
TASK_QUEUE_URLRedis connection string for the task queue (e.g. redis://redis.ark-system.svc.cluster.local:6379)
STREAM_CHANNEL_URLRedis connection string for the streaming channel. Defaults to TASK_QUEUE_URL.
AGENT_TEAM_ROUTES(ArkTeam context) JSON map of role → queueURL for delegate() tool routing

Memory variables (operator-injected when memoryRef is set)

VariableDescription
AGENT_MEMORY_BACKENDin-context, redis, or vector-store
AGENT_MEMORY_REDIS_URLRedis connection URL (from the referenced Secret, redis backend)
AGENT_MEMORY_REDIS_TTLTTL in seconds
AGENT_MEMORY_REDIS_MAX_ENTRIESEntry cap
AGENT_MEMORY_VECTOR_STORE_PROVIDERqdrant, pinecone, or weaviate
AGENT_MEMORY_VECTOR_STORE_ENDPOINTBase URL
AGENT_MEMORY_VECTOR_STORE_COLLECTIONCollection name
AGENT_MEMORY_VECTOR_STORE_API_KEYFrom the referenced Secret (if set)
AGENT_MEMORY_VECTOR_STORE_TTLTTL in seconds

User-configurable variables

Set these via the apiKeys.existingSecret Kubernetes Secret, or via agentExtraEnv in Helm values. They are forwarded to every agent pod.

LLM provider credentials

VariableDescription
ANTHROPIC_API_KEYAPI key for the Anthropic provider. Required when any agent uses a claude-* model.
OPENAI_API_KEYAPI key for the OpenAI provider. Required when any agent uses a gpt-*/o* model. Also set to any non-empty value (e.g. ollama) when using Ollama.
OPENAI_BASE_URLOverride the OpenAI-compatible API endpoint. Set to http://ollama.svc:11434/v1 for Ollama, or any other compatible endpoint.

Provider selection

VariableDescription
AGENT_PROVIDEROverride provider selection: auto (default), anthropic, openai, or mock. Use auto to let the agent runtime infer from the model name.

Observability

VariableDescription
OTEL_EXPORTER_OTLP_ENDPOINTOTel collector endpoint (e.g. http://jaeger.monitoring.svc:4318). Enables distributed tracing and metrics export when set.
OTEL_SERVICE_NAMEService name reported in traces. Default: ark-agent.

Setting user-configurable variables

helm upgrade ark-operator arkonis/ark-operator \
  --set agentExtraEnv[0].name=AGENT_PROVIDER,agentExtraEnv[0].value=openai \
  --set agentExtraEnv[1].name=OPENAI_BASE_URL,agentExtraEnv[1].value=http://ollama.svc:11434/v1 \
  --set agentExtraEnv[2].name=OPENAI_API_KEY,agentExtraEnv[2].value=ollama

Via Kubernetes Secret

kubectl create secret generic ark-api-keys \
  --from-literal=OPENAI_API_KEY=sk-... \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-... \
  --namespace my-org

Reference the secret in Helm:

helm upgrade ark-operator arkonis/ark-operator \
  --set apiKeys.existingSecret=ark-api-keys

See also