Pull to refresh
0
0
Send message

Это так. Но тут есть за и против:

  • если нужно только одну базу данных и нет проблем inputs задать со стандартными именами переменных - то можно использовать open source терраформ модули

  • если нужно создать много и разных баз данных, то я обычно делаю следующее:

    • (в меньшинстве своем - потому что может возникнуть проблема с breaking changes updates of terraform module) или использую стандартную терраформ библиотеку

    • (чаще) или использую свой терраформ модуль. Это дает возможность скомпоновать input в виде array/ map с нужными данными (DRY / common values / мои собственные конвенции).

      • за: В случае множества динамичных ресурсов - это себя окупает по времени,

      • против: добавляет нужду все это поддерживать, а не использовать уже существующее. Хотя наш терраформ модуль может быть и оберткой на open source module

    • (лучше всего) отдельный террагрант модуль на каждую базу данных.

      • за:

        • бласт радиус,

        • свой tfstate на каждый такой модуль,

        • если надо что-то поменять в одном модуле - то надо запустить только его и не все остальное

        • можно заморозить версии террагрант модуля - для каждого свою версию (хорошо для отладки модуля)

      • против:

        • очень много hcl файлов?

А зачем вызывать модуль несколько раз?

  • (в случае террагрант модуля) если только для dependency - то можно прописать, какой модуль от какого зависит и это запустит модуль только один раз (когда это нужно). Что хорошо в террагранте - можно запустить только один модуль, но дать аргумент для вызова всех dependency modules: terragrunt run-all plan --terragrunt-source-update --terragrunt-non-interactive --terragrunt-include-external-dependencies

  • (в случае терраформ модуля) можно прописать разные версии терраформ модуля в разных террагран модулях и кеш терраформ модулей будет создан для каждого террагрант модуля по отдельности

Спасибо - очень хорошая статья.

Единственное - про backend: это уже не так, можно создавать терраформ модули без пустого блока backend

Да - расписано очень хорошо.

Только у меня вопрос, а почему не GitHub Actions или Argo Workflows + Argo CD + Argo Rollouts? C точки зрения цены - это все бесплатно, но уже не так лампово, это да...

Information

Rating
Does not participate
Location
Бээр-Шева, Хадаром, Израиль
Registered
Activity