feat(observability): токен алертов приходит из секретов Actions, а не только с машины (#3078) #3126
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3126
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/3078-alert-secrets-from-actions"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Снимает последний блокер по каналу оповещений.
Почему Alertmanager не поднимался
Профиль
alertsвключается, только когда заданыMETRICS_TELEGRAM_BOT_TOKENиMETRICS_TELEGRAM_CHAT_ID— и это правильная защита: пустой токен дал бы Alertmanager, который стартует зелёным и молча ничего не шлёт.Но читались эти переменные исключительно из файла окружения на инфраструктурной машине. Секреты Actions в ssh-шаг не форвардились вовсе. То есть включить алерты можно было только правкой прод-файла руками по ssh — в обход репозитория, без следа в истории, и никак не из CI.
Ровно это и держало #3078 открытым дольше нужного: стек собран, правила написаны, канал готов — а положить в него токен было некуда.
Цена промедления, измеренная сегодня
В обоих случаях метрики видели аварию идеально. Вердикту было некуда уйти.
Что меняется
Три переменные форвардятся в шаг «Поднять серверный стек» из секретов Actions (
env:+envs:уappleboy/ssh-action).Порядок разрешения сохранён осознанно: инжектированные значения ставятся ДО того, как скрипт подхватит окружение машины, поэтому хост, если ключи заданы на нём, переопределяет секреты. Последнее слово остаётся за машиной, а секреты работают как разумный дефолт — это не отбирает у оператора возможность подменить канал локально.
Ничего, кроме форвардинга, не трогается: проверка на непустой токен, выбор профиля, рендер конфига через
envsubst,amtool check-configперед подъёмом — всё как было.Канал проверен вживую, а не по конфигу
Секреты уже заданы в репозитории. Бот —
MERAsupport_bot, форум «МЕРА» (-1004443088679), тема «алерты»message_thread_id=158. Пробное сообщение доставлено, владелец подтвердил получение.Заодно проверена и связность: доставка с Poincare прошла с третьей попытки — та самая флапающая маршрутизация к Telegram, ради которой в #3059 делался ретрай. Одиночный
curlэтот алерт бы потерял.Что после мержа
Деплой метрик поднимет Alertmanager с профилем
alerts, конфиг получитmessage_thread_id: 158, и правила Prometheus начнут доходить до темы «алерты». Проверю после выката и отпишусь в #3078.Refs #3078, #3119, #3029, #3059, #2203