Size: a a a

2019 September 06

AK

Andrey Kartashov in terraform_ru
источник

i

inqfen in terraform_ru
Делать 2 функции и называть одинаково
источник

i

inqfen in terraform_ru
Я пошел выражение искать таки в expressions)
источник

i

inqfen in terraform_ru
Ладно, буду значит по докам с гуглом ходить
источник

RV

R V in terraform_ru
Коллеги, доброго времени суток!
Подскажите, пожалуйста, можно ли сделать так, чтоб vault-токен не менялся при каждом запуске terraform apply при использовании vault-provider?
resource "vault_token" "resource-name" { }
источник

i

inqfen in terraform_ru
А, не, то, сейчас поправленное покажу
источник

i

inqfen in terraform_ru
resource "aws_acm_certificate" "static_cert" {
 for_each = toset("${var.static_domain}")

 provider = aws.cert
 domain_name       = "${each.key}"
 validation_method = "DNS"
}

resource "aws_route53_record" "cert_validation" {
 for_each  = aws_acm_certificate.static_cert

 name    = "${each.value.domain_validation_options.0.resource_record_name}"
 type    = "${each.value.domain_validation_options.0.resource_record_type}"
 zone_id = "${data.aws_route53_zone.zone.id}"
 records = ["${each.value.domain_validation_options.0.resource_record_value}"]
 ttl     = 60
}

resource "aws_acm_certificate_validation" "static_cert" {
 for_each = aws_acm_certificate.static_cert

 provider = aws.cert
 certificate_arn         = "${each.value.arn}"
 validation_record_fqdns = ["${aws_route53_record.cert_validation.fqdn}"]
}

получаю
Because aws_route53_record.cert_validation has \"for_each\" set, its attributes\nmust be accessed on specific instances
источник

i

inqfen in terraform_ru
Как оно доступно для aws_route53_record и недоступно для aws_acm_certificate_validation? Как я понимаю, по value мне возвращается определенный aws_acm_certificate и у него должны быть атрибуты, которые собственно в доках перечислены
источник

i

inqfen in terraform_ru
То есть в aws_route53_record domain_validation_options у каждого объекта видимо можно получить, раз plan не ругается, а в aws_acm_certificate_validation arn нельзя
источник

i

inqfen in terraform_ru
А нет, проблема не там
источник

i

inqfen in terraform_ru
в for_each есть какой-то счетчик итераций?

получается проблема в
resource "aws_acm_certificate_validation" "static_cert" {
 for_each = aws_acm_certificate.static_cert

 provider = aws.cert
 certificate_arn         = "${each.value.arn}"
 validation_record_fqdns = ["${aws_route53_record.cert_validation.fqdn}"]
}
```
источник

i

inqfen in terraform_ru
aws_route53_record.cert_validation.fqdn стало листом и при при каждом проходе в foreach мне нужно брать следующий индекс
источник

i

inqfen in terraform_ru
Так, я засунул лист в лист, все понятно
источник

i

inqfen in terraform_ru
Пора видимо пиво пить идти, уже не соображаю
источник

AK

Andrey Kartashov in terraform_ru
inqfen
aws_route53_record.cert_validation.fqdn стало листом и при при каждом проходе в foreach мне нужно брать следующий индекс
aws_route53_record.cert_validation[each.key].fqdn
источник

i

inqfen in terraform_ru
Так в key же объект а не индекс? Или он сам индексы у объектов возьмёт?
источник

AK

Andrey Kartashov in terraform_ru
у тебя нет индексов, ты же не используешь count
источник

AK

Andrey Kartashov in terraform_ru
заапплай только aws_route53_record.cert_validation и посмотри terraform state list - увидишь там ресурсы типа aws_route53_record.cert_validation["..."]
источник

AK

Andrey Kartashov in terraform_ru
лучше вообще в каждом наборе ресурсов использовать один и тот же for_each с доменами
источник

AK

Andrey Kartashov in terraform_ru
а не в цепочку их связывать
источник