Atlantis
Тема дорожной карты · Terraform
Atlantis для Terraform — это self-hosted сервер автоматизации pull request'ов, который запускает terraform plan и terraform apply в ответ на комментарии в GitHub, GitLab или Bitbucket PR, вписывая изменения инфраструктуры в тот же процесс ревью, что и код приложений. Atlantis хранит состояние блокировки рядом с remote-state (обычно S3 с DynamoDB) и публикует вывод terraform plan прямо в PR, чтобы ревьюеры видели точный diff перед подтверждением apply. Он поддерживает несколько воркспейсов, кастомные конфигурации проектов в atlantis.yaml и переопределения tfvars на уровне репозитория или проекта, что делает его пригодным для крупных монорепозиториев с десятками корневых модулей AWS, Azure или GCP. В отличие от Terraform Cloud, Atlantis работает полностью на собственной инфраструктуре, что делает его популярным выбором для команд, требующих суверенитета данных или уже эксплуатирующих self-hosted GitLab CI. Команды часто связывают Atlantis с tflint, Checkov или OPA в pre-plan хуках для применения политик в виде кода до выполнения любого terraform apply.
Как это работает
Atlantis обычно: PR открыт → CI гоняет terraform fmt -check, validate, tflint, tfsec, потом terraform plan против state целевой среды и постит plan комментом в PR. На merge в main → CI делает terraform apply автоматически (с гейтами одобрения для prod). Инструменты: Atlantis (open-source PR-автоматизация), Terraform Cloud / Enterprise (managed-предложение HashiCorp), env0, Spacelift, GitHub Actions / GitLab CI с кастомными workflow.
Когда применять
Автоматизируйте весь flow до деплоя в production. PR-comment с plan — killer-фича: ревьюеры видят, что именно меняется. Требуйте approval до apply для production (ручной гейт). Запускайте plan по расписанию (drift-detection) — выявляет ручные изменения. Для RF / суверенности — self-host Atlantis на Yandex Cloud + GitLab-раннер; избегайте Terraform Cloud (US-hosted).
Типичные ошибки
Ловушки Atlantis: auto-apply в prod без approval-гейта (один плохой PR = плохой prod); долгие plan, превышающие время CI-раннера (делите на меньшие root-модули); credentials в CI-логах (маскируйте, никогда не echo); не обработаны конкурентные PR за один lock (Atlantis ставит в очередь; Terraform Cloud сериализует).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…