#azure #terraform
#azure #terraform
Вопрос:
Я создаю план terraform для настройки некоторых ресурсов (среди прочего, кластера AKS) в Azure. Для использования кластера я создал участника-службу, которому разрешена роль «acrpull» в реестре docker (я сделал это с помощью innovationnorway/service-principal/azuread
модуля, в то время как для всего остального я создал свой собственный материал).
В качестве моего следующего шага мне нужно назначить роль «Сетевой участник» для этого участника службы в группе ресурсов (которую я также создаю) -> в основном, чтобы повторить назначение, предложенное здесь.
Для этого я делаю это
resource "azurerm_role_assignment" "network_contributor" {
scope = module.resource_group.resource_group_id
role_definition_name = "Network Contributor"
principal_id = module.service_principal.object_id
}
Однако я не вижу ожидаемых результатов (например: кластер, способный использовать статический IP-адрес, созданный в моей основной группе ресурсов из RG, автоматически созданной для кластера).
Я делаю что-то не так? Я не получаю ошибок, и кластер может получить доступ к реестру, например.
Спасибо!
Комментарии:
1. при отладке подобных вещей я считаю полезным создать одну вручную, как вы ожидаете, а затем сравнить ту, которая подходит, с той, которую создает terraform. вы можете легко сравнить два варианта, используя опцию «экспортировать шаблон» в Azure
2. ну, это невозможно узнать, поскольку он использует некоторые случайные выходные данные из некоторых модулей, так как мы должны знать, почему это не работает?
3. Также убедитесь, что вы используете последнюю версию поставщика Azure
4. @Liam отличная идея использовать ручной экспорт, спасибо
Ответ №1:
Похоже, что в этом случае решением было добавить блок «depends_on», чтобы убедиться, что он соответствует SP