Неправильный путь загрузки модуля Terragrunt plan-all

Я хочу развернуть свои модули terraform в 3 этапа из-за зависимостей. Я не хочу определять все зависимости в файлах .hcl terragrunt. Чтобы добиться этого, я пересматриваю структуру каталогов. Во-первых, все было в одном каталоге (т. е. tree /infra-integratiehub/environments/uva-test). Теперь я добавил такой подкаталог:

tree /infra-integratiehub/environments/uva-test/basis

├── appconfiguration
│   └── terragrunt.hcl
├── appinsights
│   └── terragrunt.hcl
├── identities
│   └── terragrunt.hcl
├── keyvault
│   └── terragrunt.hcl
├── loganalytics
│   └── terragrunt.hcl
├── networksecuritygroup
│   └── terragrunt.hcl
├── public-ip-addresses
│   └── terragrunt.hcl
├── resourcegroup
│   └── terragrunt.hcl
├── storageaccounts
│   └── terragrunt.hcl
└── subnets-azcli
    └── terragrunt.hcl

Эти файлы относятся к файлам hcl с конфигурацией terragrunt, которые находятся по этому пути: /infra-integratiehub/environments/_env Мои модули существуют в /infra-integratiehub/modules.

Вот дерево для дальнейшего пояснения:

/infra-integratiehub
├── environments
│   ├── _env (this has the terragrunt config files)
│   ├── terragrunt.hcl
│   └── uva-test (/basis is the dir in which terragrunt -run-all is executed. With tree shown above)
├── modules (all the tf modules).

Когда я запускаю план terragrunt -run-all, он пытается загрузить необходимые модули. Путь должен быть /infra-integratiehub/modules/{modulename}. Вместо этого это: /infra-integratiehub/environments/uva-test/modules

Это (один из) содержимого файлов конфигурации hcl:

terraform {
  source = "../../modules/appconfiguration"
}

locals {
  env_vars = read_terragrunt_config(find_in_parent_folders("env.hcl"))
} 

Это ошибка:

ERRO[0000] Module /infra-integratiehub/environments/uva-test/basis/appconfiguration has finished with an error: downloading source url file:///infra-integratiehub/environments/uva-test/modules/appconfiguration
1 error occurred:
        * stat /infra-integratiehub/environments/uva-test/modules/appconfiguration: no such file or directory
  prefix=[/infra-integratiehub/environments/uva-test/basis/appconfiguration] 

Почему путь к модулям формируется именно так?

Похоже, что причина проблемы кроется в террагрунте, использующем get_parent_terragrunt_dir, и ценность этого - /infra-integratiehub/environments/uva-test/basis. Вероятно, он использует этот путь, потому что папка /basis, из которой выполняется команда terragrunt run-all. Хотя в исходной настройке все прошло без проблем. Я только что создал дополнительную подпапку.

MyName 05.06.2024 14:28

Когда я использую ссылку на жесткий путь, все работает нормально. Но я не хочу этого делать, потому что это должно быть динамично, поскольку выполняется в конвейере (в конце концов).

MyName 05.06.2024 14:30
Стоит ли изучать 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
2
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

Я исправил (изменил), чтобы использовать следующее:

  source =find_in_parent_folders("modules/{modulename}")

Это ищет комбинации папок и подпапок во всех загруженных файлах и добивается цели.

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

Похожие вопросы

Как использовать синий/зеленый стиль развертывания с CodeDeploy и группами автоматического масштабирования, который позволяет выполнять повторяющиеся развертывания в Terraform?
Terraform formatdate и постоянные обновления временных меток
Как я могу предоставить аргументы в свой скрипт, если он запускается как пользовательские данные в terraform?
Невозможно подключиться к psql в модуле postgres kubernetes
Ошибка AuthorizationFailed при перечислении секретов для статического сайта после обновления до Terraform v1.8.0 и azurerm v3.105.0
Как эффективно использовать azure_virtual_machine_extension в Azure Terraform
Имя хоста виртуальной машины Azure не меняется в terraform
Terraform: ошибка: получение статических свойств веб-сайта для учетной записи хранения (подписка: ***: превышен крайний срок контекста)
Аутентификация в Azure с использованием управляемого удостоверения с помощью Terraform
Можно ли удалить тег группы безопасности кластера EKS с помощью terraform?