refactor(compose): отделены локальные настройки от фактов стенда
- Зачем: - устранены дублирование значений и тихая подстановка неполной настройки. - Что: - версии образов и внутренняя топология закреплены рядом с местом использования. - имя экземпляра, внешние порты, учётные данные и ключи сделаны обязательными настройками .env. - быстрый старт, Dockerfile и статическая проверка приведены к новой границе. - Проверка: - make config-test. - docker build для образов Airflow и Superset без аргументов. - make up; make smoke; make check-clickhouse; make check-services.
This commit is contained in:
@@ -35,9 +35,10 @@ Prometheus, Grafana и общая база Postgres для метаданных.
|
||||
`make typecheck`, `make test` — и сборкам `make docs` и `make inventory` нужен
|
||||
`uv`.
|
||||
|
||||
Стенд запускается без `.env`:
|
||||
Сначала скопируйте настройки стенда:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
make up
|
||||
make smoke
|
||||
make check-clickhouse
|
||||
@@ -49,19 +50,11 @@ make check-services
|
||||
`make check-services` — что Airflow запускает DAG, а Superset ходит в базу.
|
||||
Дальше, в рабочей петле, обычно хватает `make smoke`.
|
||||
|
||||
Чтобы изменить образы, порты или учебные учётные данные, скопируйте образец:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
make up
|
||||
make smoke
|
||||
```
|
||||
|
||||
`.env.example` — справочник, а не настройка: в нём перечислены все переменные,
|
||||
которые читает `compose.yaml`, с теми же значениями по умолчанию. Стенд его не
|
||||
читает и на согласованность не проверяет, поэтому расхождение с `compose.yaml`
|
||||
обнаружит только читатель. Меняя подстановку `${VAR:-значение}` в
|
||||
`compose.yaml`, поправьте образец тем же коммитом.
|
||||
`.env.example` — образец обязательной локальной настройки. В нём живут имя
|
||||
экземпляра, внешние порты, учебные учётные данные и ключи. `compose.yaml` не
|
||||
дублирует их умолчаниями: если значения нет в `.env`, Compose сразу предложит
|
||||
скопировать образец. Внутренние адреса, имена топиков и версии образов описывают
|
||||
сам стенд, поэтому записаны литералами в `compose.yaml` и Dockerfile.
|
||||
|
||||
Учётные данные Postgres и Grafana применяются при создании их томов.
|
||||
После первого запуска меняйте их только вместе с `make clean`: команда удалит
|
||||
@@ -189,8 +182,8 @@ make generate-live GENERATOR_DAY=3 GENERATOR_SPEED=1000
|
||||
| `GENERATOR_LIMIT` | потолок событий на прогон; только `generate-batch` | нет: день целиком |
|
||||
| `GENERATOR_SPEED` | ускорение модельного времени; только `generate-live` | ×60, задано в генераторе |
|
||||
|
||||
Куда отправлять, обе цели берут из `.env`: `KAFKA_BOOTSTRAP_SERVERS` (внутри
|
||||
сети Compose это `kafka:9092`) и `KAFKA_TOPIC` (`hits`).
|
||||
Куда отправлять, обеим целям задаёт сам стенд: внутри сети Compose это брокер
|
||||
`kafka:9092` и топик `hits`.
|
||||
|
||||
Образ цели не пересобирают: нет образа — Compose соберёт его сам, есть —
|
||||
возьмёт как есть. Пересобрать намеренно, после правки `generator/Dockerfile`
|
||||
@@ -240,7 +233,7 @@ uv run --project generator python -m clickstream_generator batch \
|
||||
- `superset` — интерфейс и подготовленное подключение ClickHouse;
|
||||
- `prometheus` и `grafana` — сбор и просмотр встроенных метрик ClickHouse.
|
||||
|
||||
Порты доступны только с локальной машины:
|
||||
С настройками из `.env.example` порты доступны только с локальной машины:
|
||||
|
||||
- нода 1 — `http://127.0.0.1:28123`, нативный порт `29000`;
|
||||
- нода 2 — `http://127.0.0.1:28124`, нативный порт `29001`;
|
||||
|
||||
Reference in New Issue
Block a user