fix(deploy-metrics): пересоздавать alloy после выката конфига, гейт по иноду
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Конфиг Alloy смонтирован бинд-маунтом ОДНОГО файла, а `git reset --hard` в деплое не правит его на месте, а пишет новым инодом. `up -d` сравнивает описание сервиса, содержимое бинд-маунта в сравнение не входит — контейнер не пересоздаётся и продолжает читать прежний, уже удалённый инод. Отказ беззвучный: на диске новый конфиг, деплой зелёный, а фильтрация идёт по старому. Пойман на проде 06.09: на Beget после success-деплоя контейнер держал инод от 26.08, и новый фильтр заработал только после ручного `docker restart gendesign-alloy`. Тот же приём, что у alertmanager в джобе server. Позиции чтения журнала лежат в томе alloy_data и пересоздание переживают. Гейт после подъёма сверяет инод файла на хосте с инодом внутри контейнера: расхождение = деплой красный, а не «зелёный со старым конфигом».
This commit is contained in:
parent
1cff12cc71
commit
c9a9085df6
1 changed files with 22 additions and 0 deletions
|
|
@ -419,11 +419,22 @@ jobs:
|
||||||
docker compose -p gendesign-metrics-agent \
|
docker compose -p gendesign-metrics-agent \
|
||||||
-f docker-compose.metrics-agent.yml up -d
|
-f docker-compose.metrics-agent.yml up -d
|
||||||
|
|
||||||
|
# Конфиг Alloy — бинд-маунт ОДНОГО файла, а `git reset --hard` выше пишет
|
||||||
|
# его новым инодом: `up -d` изменения не видит, контейнер держит старый.
|
||||||
|
METRICS_ROLE=apps \
|
||||||
|
METRICS_ALLOY_CONFIG=alloy-apps.alloy \
|
||||||
|
COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
||||||
|
docker compose -p gendesign-metrics-agent \
|
||||||
|
-f docker-compose.metrics-agent.yml up -d --force-recreate alloy
|
||||||
|
|
||||||
sleep 10
|
sleep 10
|
||||||
METRICS_ROLE=apps METRICS_ALLOY_CONFIG=alloy-apps.alloy COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
METRICS_ROLE=apps METRICS_ALLOY_CONFIG=alloy-apps.alloy COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
||||||
docker compose -p gendesign-metrics-agent \
|
docker compose -p gendesign-metrics-agent \
|
||||||
-f docker-compose.metrics-agent.yml ps
|
-f docker-compose.metrics-agent.yml ps
|
||||||
|
|
||||||
|
[ "$(stat -c %i ops/metrics/alloy/alloy-apps.alloy)" = "$(docker exec gendesign-alloy stat -c %i /etc/alloy/config.alloy)" ] \
|
||||||
|
|| { echo "::error::alloy читает старый инод конфига"; exit 1; }
|
||||||
|
|
||||||
agent-infra:
|
agent-infra:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: server
|
needs: server
|
||||||
|
|
@ -478,7 +489,18 @@ jobs:
|
||||||
docker compose -p gendesign-metrics-agent \
|
docker compose -p gendesign-metrics-agent \
|
||||||
-f docker-compose.metrics-agent.yml up -d
|
-f docker-compose.metrics-agent.yml up -d
|
||||||
|
|
||||||
|
# Конфиг Alloy — бинд-маунт ОДНОГО файла, а `git reset --hard` (джоба server)
|
||||||
|
# пишет его новым инодом: `up -d` изменения не видит, контейнер держит старый.
|
||||||
|
METRICS_ROLE=infra \
|
||||||
|
METRICS_ALLOY_CONFIG=alloy-infra.alloy \
|
||||||
|
COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
||||||
|
docker compose -p gendesign-metrics-agent \
|
||||||
|
-f docker-compose.metrics-agent.yml up -d --force-recreate alloy
|
||||||
|
|
||||||
sleep 10
|
sleep 10
|
||||||
METRICS_ROLE=infra METRICS_ALLOY_CONFIG=alloy-infra.alloy COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
METRICS_ROLE=infra METRICS_ALLOY_CONFIG=alloy-infra.alloy COMPOSE_PROFILES="$EXPORTER_PROFILE" \
|
||||||
docker compose -p gendesign-metrics-agent \
|
docker compose -p gendesign-metrics-agent \
|
||||||
-f docker-compose.metrics-agent.yml ps
|
-f docker-compose.metrics-agent.yml ps
|
||||||
|
|
||||||
|
[ "$(stat -c %i ops/metrics/alloy/alloy-infra.alloy)" = "$(docker exec gendesign-alloy stat -c %i /etc/alloy/config.alloy)" ] \
|
||||||
|
|| { echo "::error::alloy читает старый инод конфига"; exit 1; }
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue