Size: a a a

2019 May 01

S

Stefan in terraform_ru
Victor Tur
это в твоём модуле или в root "модуле" выше?
это именно в папке providers самого модуля
в самом темплейте ресурса я его вызываю просто source-ом
источник

S

Stefan in terraform_ru
Victor Tur
смотри выше. ты где-то не указал default значения или не передал переменную.
а в самом темплейте, где я вызываю модуль, там ведь не нужно ничего объявлять дополнительно? просто source и путь к модулю ведь и всё?
источник

S

Stefan in terraform_ru
а то у меня такое восприятие сейчас того, что хочу сделать
источник

VT

Victor Tur in terraform_ru
зачем ты хочешь положить объявление провайдера ниже?
источник

VT

Victor Tur in terraform_ru
не вижу всё равно целиком картины.
источник

S

Stefan in terraform_ru
Victor Tur
зачем ты хочешь положить объявление провайдера ниже?
а где?Оо
я специально хотел вынести в отедльную папку от всех темплейтов модули
так не правильно?
источник

S

Stefan in terraform_ru
просто смысл мне копировать каждый модуль в папку с темплейтом?
источник

S

Stefan in terraform_ru
а так он будет один и вызываться будет с одного места
источник

VT

Victor Tur in terraform_ru
ещё больше запутал 😊
источник

VT

Victor Tur in terraform_ru
источник

N

Nklya in terraform_ru
ты бы пример накидал велосипеда, который ты хочешь придумать
источник

S

Stefan in terraform_ru
Nklya
ты бы пример накидал велосипеда, который ты хочешь придумать
так я ж уже кидал
источник

S

Stefan in terraform_ru
сек, попробую еще подробней
источник

N

Nklya in terraform_ru
Пример - это например гист или репа на гитхабе
источник

VT

Victor Tur in terraform_ru
можешь мне в личку написать - помогу.
источник

S

Stefan in terraform_ru
есть темплейт с ресурсом, например r53, я хочу указать в нем и ему подобных темплейтах вызов провайдера через модуль, чтоб мне без конца не копипастить строки с provider "aws" {}
я создал модуль, который лежит в /home/ubuntu/terraform/modules/providers
в этой папке два файла: main.tf и var.tf
main.tf
provider "aws" {
 region = "${var.region}"
 access_key = "${var.access_key}"
 secret_key = "${var.secret_key}"
}
var.tf
variable "region" {
 default = "eu-central-1"
}
variable "access_key" {
 default = "key"
}
variable "secret_key" {
 default = "key"
}

а вот пример самого темплейта, из которого я пытаюсь вызвать этот модуль:
module "providers" {
 source = "/home/ubuntu/terraform/modules/providers"
}

resource "aws_route53_record" "dev_domains" {
 zone_id = "${var.hosted-zones["test-terraform.com"]}"
 count   = "${length(var.dev-domains)}"
 name    = "${element(var.dev-domains, count.index)}"
 type    = "A"

 alias {
    name    = "${var.elb["test-elb-name"]}"
    zone_id = "${var.elb["shared-elb-zone"]}"
    evaluate_target_health = false
 }
}
но всё равно я получаю интерактивный ввод и не совсем понятно что по итогу ему еще нужно
источник

S

Stefan in terraform_ru
сам темплейт лежит в /home/ubuntu/terraform/r53_updater
источник

VT

Victor Tur in terraform_ru
terraform (пока) так не работает. ты всё равно должен явно указать provider в root модуле, или несколько с алиасами.
Затем сверху внизу по модулям оно заимствуется неявно (без алиса) и явно - можно к модулю передавать алиасы.
источник

VT

Victor Tur in terraform_ru
т.е. in short:
root модуль, от которого ты пляшешь не в курсе что в модуле есть объявление провайдера.
Это получается обратная зависимость, снизу вверх. Насколько я тебя понял.
источник

S

Stefan in terraform_ru
Victor Tur
terraform (пока) так не работает. ты всё равно должен явно указать provider в root модуле, или несколько с алиасами.
Затем сверху внизу по модулям оно заимствуется неявно (без алиса) и явно - можно к модулю передавать алиасы.
то есть от копипаста провайдера пока не избавиться?
источник