Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Рейтинг: 43.6% · 6 голосов
Docker, Kubernetes, Helm, Terraform, Ansible, GitLab CI, GitHub Actions: автоматизация деплоя, инфраструктура как код, мониторинг и observability.
Ответить
Аватара пользователя
jackdd
Сообщения: 6
Зарегистрирован: 12 май 2026, 18:13

Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение jackdd »

Делюсь пока горячо, может кого убережёт.

Вводные: прод в Yandex Cloud, terraform 1.9, state в s3-совместимом бакете, апплай из gitlab ci. Полгода назад кто-то добавил auto-approve в прод-пайплайн чтобы не ждать (спойлер: это был я).

Таймлайн по Москве:
14:10 дежурный руками поправил security group в консоли облака, открыл порт для подрядчика. Быстро же, зачем MR.
16:40 мерж обычного MR с новой нодой для воркеров.
16:42 apply. Терраформ увидел drift и привёл всё к коду: пересоздал security group, а за ней по цепочке таргет-группу балансера. Балансер остался без бэкендов.
16:43 прод лежит. Алерты молчат, потому что healthcheck мониторился через сам балансер (да).
17:20 поняли что лежим, поддержка клиентов прибежала раньше алертов.
19:05 думаете откатили? нет. State разъехался, пришлось руками через yc cli и terraform import собирать, балансер пересобрали заново.
20:50 поднялись.

Итого 4 часа, по деньгам порядка 600к недополученных заказов.

Что меняем: auto-approve выпилен, plan постится в MR и апрувится вторым человеком, ручные правки в консоли запрещены (роли только на чтение всем кроме дежурных), drift detection кроном раз в час, healthcheck переехал на внешний мониторинг.

Кидайте помидоры, ну или свои истории.
👍1 ❤️1 🔥 😄2 🤔
✔ Лучший ответ сформирован автоматически — juniorstack
@jackdd, У нас было почти то же самое, только спасло бы prevent_destroy. С тех пор на все критичные ресурсы (балансеры, бд, dns-зоны) вешаю lifecycle prevent_destroy = true и сплю спокойно. В провайдере Yandex Cloud это нормально работает, terraform просто падает с ошибкой вместо пересоздания. Стоит ноль, внедряется за вечер.
Перейти к ответу →
Аватара пользователя
Matemate
Сообщения: 6
Зарегистрирован: 15 май 2026, 05:03

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение Matemate »

auto-approve на проде это не инцидент, это запланированное мероприятие. удивительно что полгода продержались
👍 ❤️ 🔥 😄1 🤔
Аватара пользователя
Donegal
Сообщения: 10
Зарегистрирован: 22 май 2026, 19:52

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение Donegal »

@Matemate а почему мониторинг через сам балансер, это же классика жанра. внешний пингер за 200 руб в месяц спас бы вам минимум час из четырёх. и вопрос: state lock то был? или там ещё и параллельные апплаи возможны
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
juniorstack
Сообщения: 62
Зарегистрирован: 12 май 2026, 12:04

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение juniorstack »

✔ Лучший ответ — сформирован автоматически
@jackdd, У нас было почти то же самое, только спасло бы prevent_destroy. С тех пор на все критичные ресурсы (балансеры, бд, dns-зоны) вешаю lifecycle prevent_destroy = true и сплю спокойно. В провайдере Yandex Cloud это нормально работает, terraform просто падает с ошибкой вместо пересоздания. Стоит ноль, внедряется за вечер.
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
faulks
Сообщения: 12
Зарегистрирован: 24 май 2026, 20:17

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение faulks »

@Donegal, формально это не постмортем, а исповедь. нет root cause по 5 why. ручная правка дежурного это симптом, причина в том что путь через MR занимал у вас наверняка минут 20-30 и людям проще руками. почините процесс, а не людей
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
slypmp
Сообщения: 18
Зарегистрирован: 15 май 2026, 06:28

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение slypmp »

спасибо что написали. утащил в копилку аргументов, у нас как раз порываются добавить auto-approve чтобы ускориться
👍 ❤️ 🔥1 😄1 🤔
Аватара пользователя
rust21
Сообщения: 2
Зарегистрирован: 06 июн 2026, 18:10

Re: Постмортем: terraform apply с auto-approve снёс нам прод на 4 часа

Сообщение rust21 »

@Matemate, Запрещать ручные правки бесполезно, в следующий раз дежурный так же откроет порт, просто никому не скажет. Лучше дайте быстрый легальный путь: отдельный модуль для временных правил с ttl и упрощённым апрувом. Запрет без альтернативы всегда обходится.
👍 ❤️ 🔥 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «DevOps и CI/CD»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость