Size: a a a

2020 May 08

VT

Victor Tur in terraform_ru
Kirill Galinurov
variable "sfe_nodes" {
       type = list
       default = ["sdp1sfe1"]
}

variable "sfe_profiles" {
       type = map
       default = {
               "sdp1sfe1" = {
                       "proxmox_node" = "proxmox-dc-hv06"
                       "storage" = "hv06-1700gb"
                       "template_name" = "MFSDP-SFE-main-template"
                       "vcpu" = 2
                       "memory" = 4096
               }
       }
}
type = list(string)
источник

VT

Victor Tur in terraform_ru
Kirill Galinurov
storage = lookup(var.sfe_profiles[name],[storage])
полный пример куда-нибудь скинь - так не понятно. вижу что reference не правильный.
lookup(var.sfe_profiles[name],[storage])
name это что? это variable из locals? local.name? или var.name?
А storage? видимо "storage" просто string
С типом мапа тоже не строго все - map(any) ?
источник

KG

Kirill Galinurov in terraform_ru
name должно из списка браться
источник

KG

Kirill Galinurov in terraform_ru
name = var.sfe_nodes[count.index]
источник

KG

Kirill Galinurov in terraform_ru
соответсвенно потом ходить в соостветвующие вложенные мапы
источник

KG

Kirill Galinurov in terraform_ru
тоесть есть список узлов у них свои параметры надо пройтись по списку слазить в мапу с параметрами и создать узлы
источник

KG

Kirill Galinurov in terraform_ru
соотвественно хотел сделать вложенную мапу
источник

KG

Kirill Galinurov in terraform_ru
по количеству нод в списке
источник

KG

Kirill Galinurov in terraform_ru
вожможно просто не так пытаюсь решить задачу
источник

VT

Victor Tur in terraform_ru
name = var.sfe_nodes[count.index]
я так понимаю ты в ресурсе собираешься сохранить переменную name:
так не работает. У ресурсов есть строгие поля.
источник

KG

Kirill Galinurov in terraform_ru
Ну это и есть поле
источник

KG

Kirill Galinurov in terraform_ru
тоесть рерурс имеет такое поле конечно же
источник

KG

Kirill Galinurov in terraform_ru
скорее всего я не могу его потом использовать в lookup(var.sfe_profiles[name]
источник

VT

Victor Tur in terraform_ru
нет, так его использовать нельзя.
источник

VT

Victor Tur in terraform_ru
self.name можно делать только provisioner'е
источник

VT

Victor Tur in terraform_ru
но - можешь попробовать for_each - в твоем случае я думаю будет удобно
источник

KG

Kirill Galinurov in terraform_ru
target_node = lookup(var.sfe_profiles[var.sfe_nodes[count.index]],"proxmox_node")
источник

KG

Kirill Galinurov in terraform_ru
так не ругается и вроде пошло
источник

RK

Roman Kydybets in terraform_ru
Привет всем,
может есть идеи как такое обойти кроме null_resource ситуация что модули описанные не в одном файле, ecs_service / target_group / load_balancer
The target group with targetGroupArn arn:aws:elasticloadbalancing:eu-west-1:<>id:targetgroup/<name>/a490aa8b5c9d4aa9 does not have an associated load balancer. "<name>"
источник

V

Viacheslav in terraform_ru
Vadim Sokoltsov
Всем привет!

Подскажите пожалуйста по terraform и aws

1) Есть отдельный модуль под remote_state на s3
Когда в нем делаю terraform state pull, то ничего не происходит
При выполнении terraform plan - отображаются все ресурсы, описанные в main.tf (и которые уже существуют, но не должны отображаться для выполнения, тк remote state был получен (?) )
Почему такое происходит?

2) Необходимо подсунуть сертификат из CertificateManager в alb для eks. Сертификат уже присутствует, его arn есть. Как я понял, сделать это можно двумя способами:
- resource "aws_acm_certificate" "cert" и затем terraform import aws_acm_certificate.cert <arn>
- data "aws_acm_certificate" "cert"
Чем отличаются эти два варианта?

В первом случае сам ingress-контроллер ругается на то, что не может найти данный сертификат (по arn, который присутствует в системе)
Во втором случае (при terraform plan) получаю ошибку, что No certificate for domain found in this region. Добавление директивы provider в data не поменяло ничего

что я делаю не так?

Заранее благодарю!
по поводу acm сертификатов, длина ключа должна быть не более 2048 бит
источник