Ссылка на модуль в одноранговом репозитории на локально размещенном gitlab

# #gitlab #terraform #gitlab-ci

Вопрос:

У меня есть локально размещенный экземпляр gitlab с двумя репозиториями в одной группе.

 AWS:
-   /Modules
-   /VPC
 

Внутри репозитория vpc я имею в виду модуль, присутствующий внутри Modules репозитория

 module "custom-vpc" {
  source      = "git::https://local.gitlab.mydomain.com/aws/modules.git//vpc"
…
 

Однако CI это приводит к следующей ошибке во init время этапа:

 fatal: unable to access
│ 'https://local.gitlab.mydomain.com/aws/modules.git/': SSL
│ certificate problem: unable to get local issuer certificate
 

Поскольку оба репозитория являются частью одной и той же группы и размещаются локально, есть ли способ ссылаться на модули, не переходя на маршрут https? Или какие другие решения существуют для этого?

Комментарии:

1. Может быть, использовать git ssh вместо http (ов)? Вы можете использовать ключи развертывания по мере необходимости для SSH-ключей в рамках проекта. Поможет ли это решить вашу проблему? Хотя я думаю, вы также могли бы просто решить проблему SSL и использовать https.

2. @sytech Я пробовал это, то, что меня заблокировало, deploy_keys доступно как переменная CI env, однако интерполяция их в код terraform, похоже, не работает.

Ответ №1:

Если вы пытаетесь избежать использования HTTPS, у вас, по сути, есть два варианта:

  1. Используйте SSH (который вы можете использовать с ключом развертывания, как упоминает sytech в комментариях), или
  2. Используйте подмодуль git и локально ссылайтесь на свой файл модуля.

Если вы решите использовать второй вариант, просто вставьте свой первый репозиторий git во второй репозиторий в качестве подмодуля и убедитесь, что ваши настройки CI / CD настроены на получение ваших подмодулей. После того, как вы это настроили, обратитесь к пути к модулю, как если бы это был локальный файл, и вам должно быть хорошо без необходимости HTTPS.

Все это было настроено, если вы планируете использовать эту настройку в долгосрочной перспективе, вам действительно следует настроить HTTPS. Правильный способ справиться с этим — использовать репозиторий модулей GitLab terraform, который по-прежнему требует HTTPS. Вы можете получить бесплатный сертификат, используя lets encrypt, и довольно дешево купить домен для проверки.