Можно ли перегрузить модуль терраформирования?

Можно ли перегрузить модуль терраформирования?

Я вызываю модуль, который создает кластер GKE и пул узлов. В этом модуле отсутствуют параметры для указания возможностей графического процессора и gVisor. Мне интересно, можно ли перегрузить модуль? в основном я хочу добавить / добавить больше конфигураций к ресурсам, которые создает модуль.

Заранее спасибо.

Не то, чтобы я в курсе. Вы можете скопировать модуль, а затем модифицировать под свои требования (если позволяет лицензия).

John Hanley 15.12.2020 00:45

Нет, это невозможно. Вы также не можете «перегрузить» ресурс (который в настоящее время существует в аналогичных DSL, например Puppet).

Matt Schuchard 15.12.2020 13:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

Вместо этого типичным ответом является реорганизация одного большого модуля в два или более меньших модуля, а затем конфигурация вызова объединяет эти меньшие модули для получения желаемого эффекта. В идеале, если вызывающий абонент обнаружит, что один из меньших модулей не соответствует его потребностям, он может заменить только этот модуль — либо другим модулем, выполняющим аналогичную задачу, либо встроенными блоками resource/data, — но продолжать использовать другой. модули.

В конкретном примере, который вы привели, кажется, что можно провести различие между кластером GKE и связанным с ним пулом узлов. Возможным новым дизайном может быть модуль, который только объявляет кластер GKE, а затем либо встроенные блоки resource для объявления узлов для регистрации в этом кластере, либо потенциально несколько модулей, которые инкапсулируют различные виды пула узлов, если ваша архитектура включает фиксированный набор узлов. архетипы.

С учетом сказанного, если модуль, который вы используете, является сторонним, то у вас есть единственные варианты: либо использовать его так, как задумал его автор, либо написать свой собственный модуль, возможно, производный от оригинального. Создание собственного «форка» модуля гарантирует, что будущие изменения исходного модуля не сделают сделанные вами изменения недействительными.

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