Files

2.8 KiB
Executable File

Deployment Kubernetes — Evaluator TIM

O evaluator continua sendo batch/CronJob-only. O componente evaluator-batch não expõe HTTP nem gRPC.

Para acompanhamento operacional existe um componente separado e somente leitura, evaluator-monitor, que consulta as tabelas do Autonomous Database e disponibiliza /ui e APIs de monitoramento. Essa separação mantém o processamento em batch e evita acoplar uma API HTTP ao evaluator.

Recursos aplicados pelo Kustomize:

Namespace
ServiceAccount
ConfigMap
CronJob evaluator-batch
Deployment evaluator-monitor
Service evaluator-monitor (ClusterIP)

O CronJob executa diariamente às 02:00 em America/Sao_Paulo, com suspend: false e concurrencyPolicy: Forbid.

Preparação

cp deploy/env/evaluator.env.example deploy/env/evaluator.env

Configure ADB, OCI GenAI e GCS no env file. Copie deploy/langfuse/langfuse_credentials.example.yaml para deploy/langfuse/langfuse_credentials.yaml e declare ali quantos agentes/projetos Langfuse forem necessários. O script cria o Secret evaluator-langfuse dinamicamente a partir desse arquivo.

Wallet Oracle:

deploy/wallet/

Credencial GCP opcionalmente materializada pelo script:

deploy/gcp/GCP_ACCESS_KEY.json

Secrets

./deploy/scripts/create-secrets.sh dev
./deploy/scripts/create-secrets.sh hml
./deploy/scripts/create-secrets.sh prod

Build

export REGISTRY=tim.azurecr.io
export IMAGE_TAG=0.3.0
./deploy/scripts/build-push.sh prod

Deploy

export REGISTRY=tim.azurecr.io
export IMAGE_TAG=0.3.0
./deploy/scripts/deploy.sh prod

Status

./deploy/scripts/status.sh prod

Ou:

kubectl -n agent-evaluator-prod get cronjob,jobs,pods,deploy,svc

Execução imediata

./deploy/scripts/run-now.sh prod

Acompanhar logs do batch:

kubectl -n agent-evaluator-prod get jobs,pods
kubectl -n agent-evaluator-prod logs -f job/<nome-do-job>

O comando run-agents também imprime o RUN_ID assim que cada execução é criada, permitindo:

python -m evaluator.cli progress <RUN_ID> --events 100

Interface web

O Service do monitor é ClusterIP, portanto não fica exposto externamente por default.

Para acessar via sua máquina:

kubectl -n agent-evaluator-prod port-forward svc/evaluator-monitor 8080:8080

Abra:

http://localhost:8080/ui

Endpoints read-only:

GET /health
GET /api/runs
GET /api/runs/{run_id}
GET /api/runs/{run_id}/results
GET /ui

Não há endpoints para iniciar, cancelar, apagar ou alterar runs.

Configuração de storage

Os buckets por ambiente ficam em configs/judge/storage.yaml. Para usar outro arquivo, configure STORAGE_CONFIG_PATH. JUDGE_GCS_BUCKET sobrescreve o mapping quando necessário.