# LLM — Groq (cloud) or Ollama (local, no API key) LLM_PROVIDER=groq GROQ_API_KEY= GROQ_API_KEY_FALLBACK= GROQ_MODEL=llama-3.3-70b-versatile OLLAMA_MODEL=llama3.2 LLM_BASE_URL=https://api.groq.com/openai/v1 # Ollama example (no GROQ_API_KEY needed): # LLM_PROVIDER=ollama # LLM_BASE_URL=http://localhost:11434 # OLLAMA_MODEL=llama3.2 # SQLite database path INCIDENT_DB_PATH=./data/incidents.db # Kubernetes — requires kubectl and cluster access KUBECONFIG= KUBE_CONTEXT=kind-incident-commander # Logs: loki (after ./scripts/setup-observability.sh) | kubectl tails pod logs LOG_BACKEND=loki LOKI_URL=http://localhost:3100 # Prometheus metrics (kube-state-metrics — override for app http_requests_total) PROMETHEUS_URL=http://localhost:9090 PROM_ERROR_RATE_QUERY=sum(rate(kube_pod_container_status_restarts_total{namespace="{namespace}", pod=~"{service}.*"}[5m])) * 100 PROM_P99_LATENCY_QUERY=vector(0) PROM_REQUEST_RATE_QUERY=count(kube_pod_info{namespace="{namespace}", pod=~"{service}.*"}) # Orchestrator limits MAX_WORKER_ITERATIONS=5 WORKER_TIMEOUT_SECONDS=120 KUBECTL_TIMEOUT_SECONDS=30 # Post-mitigation verification loop VERIFY_MAX_ATTEMPTS=5 VERIFY_INTERVAL_SECONDS=15 VERIFY_MAX_ERROR_COUNT=10 DEPLOY_LOOKBACK_MINUTES=60 # API authentication (optional — off when unset; required beyond localhost) # INCIDENT_COMMANDER_API_TOKEN=your-secret-token # INCIDENT_COMMANDER_ALERTMANAGER_WEBHOOK_TOKEN=webhook-secret # INCIDENT_COMMANDER_ALERTMANAGER_WEBHOOK_HEADER=X-Webhook-Token # INCIDENT_COMMANDER_CORS_ALLOWED_ORIGINS=https://incidents.example.com