Files
trailofbits-buttercup/dev/docker-compose/env.dev.compose
T
Riccardo Schirone 7a728571e5 fuzzer_runner: split fuzzer's dependencies
Before this commit, the fuzzer dependend on clusterfuzz, which uses
protobuf 3.20. Since fuzzer-bot depended on common subpackage as well
and also common (and the other packages) require protobuf, we had to use
protobuf 3.20 everywhere. This old dependency however means that a lot
of packages can't be used in their "newer" versions, because they depend
on newer protobuf versions.

This commit splits the fuzzer into a separate fuzzer-runner that is
executed in a separate process (sidecar container) and communicate with
the rest of the system through REST API. fuzzer-runner executed the
actual clusterfuzz-heavy operations (e.g. fuzzing) and isolates the
clusterfuzz dependency, so that the rest of the system can use newer
protobuf version.

* split fuzzer-bot in fuzzer-runner and fuzzer-bot
* have a "full" optional dependency group in common, including openlit
  and protobuf, so that fuzzer-runner can use the lite version of common
  without bring those heavy dep
* move FuzzConfiguration/BuildConfiguration in a separate common file
  that doesn't require to load all protobuf files. Again, in this way
  other components can just depend on the common "lite" version and not
  require protobuf stuff
* add fuzzer-runner as a sidecar container to fuzzer-bot pod, so
  communication is very fast even though it happens over REST API
* add RunnerProxy class in fuzzer package to provide an interface to
  interact with the fuzzer-runner over REST API
2025-08-22 08:33:22 +02:00

95 lines
3.7 KiB
Plaintext

NODE_DATA_DIR=/node_data
DOCKER_HOST=tcp://dind:2375
BUTTERCUP_LITELLM_KEY=sk-1234
BUTTERCUP_LITELLM_HOSTNAME=http://litellm:8080
BUTTERCUP_DOWNLOADER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_DOWNLOADER_LOG_LEVEL=debug
BUTTERCUP_DOWNLOADER_DOWNLOAD_DIR=/node_data/tasks_storage
BUTTERCUP_DOWNLOADER_SERVE__SLEEP_TIME=5
BUTTERCUP_TASK_SERVER_REDIS_URL=redis://redis:6379
BUTTERCUP_TASK_SERVER_LOG_LEVEL=debug
BUTTERCUP_TASK_SERVER_HOST=0.0.0.0
BUTTERCUP_TASK_SERVER_PORT=8000
BUTTERCUP_TASK_SERVER_API_KEY_ID=515cc8a0-3019-4c9f-8c1c-72d0b54ae561
BUTTERCUP_TASK_SERVER_API_TOKEN_HASH='$argon2id$v=19$m=65536,t=3,p=4$Dg1v6NPGTyXPoOPF4ozD5A$wa/85ttk17bBsIASSwdR/uGz5UKN/bZuu4wu+JIy1iA'
BUTTERCUP_TASK_SERVER_COMPETITION_API_URL=http://scantron:31323
BUTTERCUP_TASK_SERVER_COMPETITION_API_USERNAME=11111111-1111-1111-1111-111111111111
BUTTERCUP_TASK_SERVER_COMPETITION_API_PASSWORD=secret
# Client Authentication:
# CRS_API_KEY_ID=515cc8a0-3019-4c9f-8c1c-72d0b54ae561
# CRS_API_TOKEN=VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB
# Competition API Authentication
COMPETITION_API_KEY_ID=11111111-1111-1111-1111-111111111111
COMPETITION_API_KEY_TOKEN=secret
BUTTERCUP_SCHEDULER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_SCHEDULER_LOG_LEVEL=debug
BUTTERCUP_SCHEDULER_SERVE__SLEEP_TIME=5
BUTTERCUP_SCHEDULER_SERVE__COMPETITION_API_URL=http://scantron:31323
BUTTERCUP_SCHEDULER_TASKS_STORAGE_DIR=/node_data/tasks_storage
BUTTERCUP_SCHEDULER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PATCHER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_PATCHER_SERVE__SLEEP_TIME=5
BUTTERCUP_PATCHER_LOG_LEVEL=debug
BUTTERCUP_PATCHER_TASK_STORAGE_DIR=/node_data/crs_scratch
BUTTERCUP_PATCHER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PROGRAM_MODEL_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_PROGRAM_MODEL_SERVE__SLEEP_TIME=5
BUTTERCUP_PROGRAM_MODEL_LOG_LEVEL=debug
BUTTERCUP_PROGRAM_MODEL_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PROGRAM_MODEL_GRAPHDB_ENABLED=false
BUTTERCUP_FUZZER_WDIR=/node_data/crs_scratch
BUTTERCUP_FUZZER_SAMPLE_SIZE=200
BUTTERCUP_FUZZER_LOG_LEVEL=debug
BUTTERCUP_FUZZER_MAX_POV_SIZE=2097152
BUTTERCUP_FUZZER_RUNNER_URL=http://fuzzer-runner:8000
BUTTERCUP_SEED_GEN_LOG_LEVEL=debug
BUTTERCUP_SEED_GEN_SERVER__REDIS_URL=redis://redis:6379
BUTTERCUP_SEED_GEN_WDIR=/node_data/crs_scratch
BUTTERCUP_SEED_GEN_SERVER__SLEEP_TIME=5
BUTTERCUP_SEED_GEN_SERVER__CRASH_DIR_COUNT_LIMIT=100
BUTTERCUP_SEED_GEN_SERVER__MAX_CORPUS_SEED_SIZE=65536
BUTTERCUP_SEED_GEN_SERVER__MAX_POV_SIZE=2097152
# Keep these short for local development, there's just one worker for each
# service and we want to retry as soon as possible usually.
BUILD_TASK_TIMEOUT_MS=120000
BUILD_OUTPUT_TASK_TIMEOUT_MS=120000
DOWNLOAD_TASK_TIMEOUT_MS=120000
READY_TASK_TIMEOUT_MS=120000
DELETE_TASK_TIMEOUT_MS=120000
CRASH_TASK_TIMEOUT_MS=120000
PATCH_TASK_TIMEOUT_MS=120000
CONFIRMED_VULNERABILITIES_TASK_TIMEOUT_MS=120000
INDEX_TASK_TIMEOUT_MS=120000
INDEX_OUTPUT_TASK_TIMEOUT_MS=120000
TRACED_VULNERABILITIES_TASK_TIMEOUT_MS=120000
# OTel - configured to use local SigNoz by default
OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-otel-collector:4317
# token is b64 encoded "username:password"
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic dXNlcm5hbWU6cGFzc3dvcmQ="
OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
# Settings for externally hosted endpoint, uncomment and set endpoint to use external OTEL
#OTEL_EXPORTER_OTLP_ENDPOINT=""
#OTEL_EXPORTER_OTLP_PROTOCOL="http"
OSS_FUZZ_CONTAINER_ORG=aixcc-afc
BUTTERCUP_UI_HOST=buttercup-ui
BUTTERCUP_UI_CRS_BASE_URL="http://task-server:8000"
BUTTERCUP_UI_STORAGE_DIR="/tmp/buttercup-ui"
BUTTERCUP_UI_LOG_LEVEL="info"
BUTTERCUP_UI_CRS_KEY_ID="515cc8a0-3019-4c9f-8c1c-72d0b54ae561"
BUTTERCUP_UI_CRS_KEY_TOKEN="VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB"