Получите IP от внешних балансировщиков нагрузки с помощью terraform

Я работаю над модулем terraform для создания кластера GKE. Этот же модуль вызывает провайдер, который выполняетhelm install приложения.

Helm-диаграмма создает балансировщик нагрузки. Балансировщик нагрузки не известен модулю terraform, поэтому назначенный IP-адрес не может быть повторно использован в модуле.

Вопрос:

Как я могу использовать IP-адрес балансировщика нагрузки для создания записей DNS и получения сертификатов?

Я думаю, что это не экзотический вариант использования, но я еще не нашел достойного способа добиться этого.

2 ответа

Решение

Правильный ответ на этот вопрос:

Источник данных kubernetes_service.

Концепция источника данных в точности решает проблему.

Исходя из приведенного выше источника данных kubernetes_service, я мог бы также запустить сценарий оболочки с kubectl, запрашивающим IP-адрес, и использовать внешний источник данных в качестве общего решения.

Оттуда я могу использовать IP-адрес в провайдере DNS и в провайдере acme для создания записей DNS и сертификатов.

В моем случае облачный провайдер не предоставил load_balancer_ipпоэтому мне пришлось создать службу как type: NodePortчерез helm и создал балансировщик нагрузки вручную напрямую через terraform.

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

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