Terraform обнаруживает изменения сразу после применения

У меня довольно простая настройка настройки терраформа:

  • AWS VPC
  • Его таблица маршрутов по умолчанию с конечной точкой на S3
  • Пара групп безопасности
  • Некоторые экземпляры EC2
  • Внутренняя DNS-зона Route53

Теперь, если я выполняю terraform plan сразу после terraform apply с нуля, обнаруживается куча ложных изменений. Они делятся на две категории:

  • Пустые атрибуты (теги и aws_default_route_table.propagating_vgws), даже если в коде они заданы явно пустыми.
  • Две записи Route53, помеченные как измененные, но не отображающие изменений, которые необходимо применить.
  • правила входа и выхода в группах безопасности

Первые две группы раздражают, но в этом нет ничего страшного, даже если от них неплохо избавиться.

От последнего я бы хотел избавиться. Я думаю, это связано с тем, что у меня есть правила как отдельные aws_security_group_rule ресурсы, а не встроенные в ресурсы группы безопасности (поскольку некоторые из них ссылаются друг на друга взаимно). У меня было несколько встроенных правил, но, перечитав документы, я думаю, что это не разрешено, но даже их удаление не устраняет эту проблему.

(Запуск terraform apply -refresh-only делает все хорошо, но очень раздражает, что приложение с чистого листа нуждается в таком исправлении)

Может быть ошибка. Вы можете сообщить об этом на github.

Marcin 24.11.2022 23:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
112
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как указано в комментарии Марцина, похоже, это ошибка в Terraform: обновление исполняемого файла terraform до последней версии устраняет проблему.

  • Попробуйте использовать переменную count в Terraform, чтобы определить несколько правил групп безопасности в одном ресурсе. Это поможет уменьшить количество ложных изменений, которые обнаруживает Terraform.
  • Если вы используете отдельные правила группы безопасности для каждого правила, вы можете использовать атрибут «depends_on», чтобы убедиться, что правила применяются в правильном порядке.
  • Наконец, если вы все еще видите ложные изменения, вы можете попробовать запустить «обновление terraform» перед запуском «плана terraform», чтобы гарантировать, что Terraform имеет самую последнюю информацию.

Другие вопросы по теме