У меня есть проект terraform, который ссылается на ресурсы в другом проекте. Существуют ли встроенные механизмы, позволяющие исполнителям GitLab CICD получать доступ к нескольким проектам через одну конфигурацию? Я бы не хотел жестко кодировать аутентификацию.
Мои ресурсы проекта terraform находятся в:
- Infrastructure/resources/tf-modules/...
, а моя живая инфраструктура находится в:
- Infrastructure/live/...
Однако, когда я пытаюсь запустить свою живую инфраструктуру, когда он пытается извлечь ресурсы из другого проекта:
module dynamo_terraform_lock_table {
source = "git::https://git.abc.com/infrastructure/resources/tf-modules/dynamodb/terraform-state-lock?ref=0.0.4"
}
Ошибка моего исполнителя CICD:
fatal: could not read Username for 'https://git.abc.com': No such
device or address
Вот соответствующая часть моего .gitlab-cy.yml
:
script:
- git config --global user.name $CI_DEPLOY_USER
- git config --global user.password $CI_DEPLOY_PASSWORD
- cd terraform
- terraform init
- terraform plan
Вышеупомянутые попытки использовать специальный токен развертывания, gitlab-deploy-token
, но я думаю, я не понимаю, как это должно работать. Это кажется идеальным решением, поскольку оно скрывает все за кадром, но я не уверен, что делаю неправильно.