2016-05-17 4 views
1

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

module "athenaelb" { 

    source = "${concat("git::https://github.com/ORG/REPONAME.git?ref=",var.infra_version)}" 

    aws_access_key = "${var.aws_access_key}" 

    aws_secret_key = "${var.aws_secret_key}" 

    aws_region = "${var.aws_region}" 

    availability_zones = "${var.availability_zones}" 

    subnet_id = "${var.subnet_id}" 

    security_group = "${var.athenaelb_security_group}" 

    branch_name = "${var.branch_name}" 

    env = "${var.env}" 

    sns_topic = "${var.sns_topic}" 

    s3_bucket = "${var.elb_s3_bucket}" 

    athena_elb_sns_topic = "${var.athena_elb_sns_topic}" 

    infra_version = "${var.infra_version}" 

} 

Я хочу, чтобы скомпилировать и источник, чтобы выглядеть следующим образом (например): мерзавца :: https://github.com/ORG/REPONAME.git?ref=v1

Кто-нибудь есть какие-либо мысли о том, как сделать эту работу?

Спасибо, Керен

+0

P.S. извините за ужасное форматирование ... не удалось отправить это как блок кода. bc Stack Overflow жаловался на форматирование ... – Keren

+0

Его еще не поддерживали. Пожалуйста, проверьте - https://github.com/hashicorp/terraform/issues/1439 – Baskar

ответ

0

Это не представляется возможным в настоящее время в самой терраформировать.

Единственный способ добиться чего-то подобного - использовать отдельный скрипт для взаимодействия с репозиторием git, который Terraform клонирует в подкаталог каталога .terraform/modules и переключает его на другой тег в зависимости от того, какую версию вам нужно. Это не идеально, так как Terraform организует их в каталогах на основе хэша пути к модулю, но если вы можете идентифицировать данный модуль, безопасно запускать git checkout в этих хранилищах, если вы снова не запускаете terraform get.

Для получения дополнительной информации и обсуждения по этой проблеме см. issue #1439 in Terraform's issue tracker, где была запрошена эта функция.

+0

Хорошо, спасибо за информацию. Я закончил работу с несколькими командами bash, чтобы переписать конец исходного URL-адреса определенным тегом на основе того, что я передаю. – Keren

Смежные вопросы