Size: a a a

2020 June 16

AR

Alexey Remizov in terraform_ru
kvaps
Привет, подскажите, а я могу кастомный provider из github.com подключить?
Нужно скачать или собрать бинарь, правильно назвать и положить в правильный каталог:
https://www.terraform.io/docs/configuration/providers.html#third-party-plugins
источник

k

kvaps in terraform_ru
Понял, спасибо
источник

k

kvaps in terraform_ru
подскажите ещё, а в чём отличие:
service = {
 foo = "aaa",
 bar = "bbb",
 baz = "ccc"
}
от
service {
 foo = "aaa"
 bar = "bbb"
 baz = "ccc"
}

и почему в первом случае нужны запятые а во втором нет?
источник

AR

Alexey Remizov in terraform_ru
В первом тоже не нужны
источник

AR

Alexey Remizov in terraform_ru
В общем, в первом случае тип значения`service` это map. А во втором это список. Запись
service {
 foo = "aaa"
}

service {
 bar = "bbb"
}

это аналог записи
service = [
 {
   foo = "aaa"
 },
 {
   bar = "bbb"
 }
]
источник

k

kvaps in terraform_ru
Alexey Remizov
В первом тоже не нужны
Хотел сказать во втором? Нет, не нужны:
источник

k

kvaps in terraform_ru
resource "opennebula_template" "template" {
 name = "asd"
 graphics {
   listen = "0.0.0.0",
   type   = "vnc"
 }
}
источник

k

kvaps in terraform_ru
Alexey Remizov
В общем, в первом случае тип значения`service` это map. А во втором это список. Запись
service {
 foo = "aaa"
}

service {
 bar = "bbb"
}

это аналог записи
service = [
 {
   foo = "aaa"
 },
 {
   bar = "bbb"
 }
]
Ага, а как тогда понять:

service "foo" {
 name = "aaa"
}

service "bar" {
 name = "bbb"
}
источник

AR

Alexey Remizov in terraform_ru
Нигде не нужны запятые, кроме списков.
источник

k

kvaps in terraform_ru
Alexey Remizov
Нигде не нужны запятые, кроме списков.
понял, спасибо
источник

AR

Alexey Remizov in terraform_ru
kvaps
Ага, а как тогда понять:

service "foo" {
 name = "aaa"
}

service "bar" {
 name = "bbb"
}
Вот коротенько про синтаксис HCL:
https://github.com/hashicorp/hcl/blob/master/README.md
источник

k

kvaps in terraform_ru
Alexey Remizov
В общем, в первом случае тип значения`service` это map. А во втором это список. Запись
service {
 foo = "aaa"
}

service {
 bar = "bbb"
}

это аналог записи
service = [
 {
   foo = "aaa"
 },
 {
   bar = "bbb"
 }
]
если это так, то я вот хоть убей но не понимаю, почему:

resource "opennebula_template" "template" {
 name = "abc"
 graphics {
   listen = "0.0.0.0"
   type   = "vnc"
 }
}

работает нормально, а казалось бы эквивалент:

resource "opennebula_template" "template" {
 name = "abc"
 graphics = [
   {
     listen = "0.0.0.0"
   },
   {
     type = "vnc"
   }
 ]
}
или даже:
resource "opennebula_template" "template" {
 name = "abc"
 graphics = [
   {
     listen = "0.0.0.0"
     type   = "vnc"
   }
 ]
}

возвращает:
An argument named "graphics" is not expected here. Did you mean to define a
block of type "graphics"?
источник

AR

Alexey Remizov in terraform_ru
kvaps
если это так, то я вот хоть убей но не понимаю, почему:

resource "opennebula_template" "template" {
 name = "abc"
 graphics {
   listen = "0.0.0.0"
   type   = "vnc"
 }
}

работает нормально, а казалось бы эквивалент:

resource "opennebula_template" "template" {
 name = "abc"
 graphics = [
   {
     listen = "0.0.0.0"
   },
   {
     type = "vnc"
   }
 ]
}
или даже:
resource "opennebula_template" "template" {
 name = "abc"
 graphics = [
   {
     listen = "0.0.0.0"
     type   = "vnc"
   }
 ]
}

возвращает:
An argument named "graphics" is not expected here. Did you mean to define a
block of type "graphics"?
А где тут вообще про graphics?
https://www.terraform.io/docs/providers/opennebula/r/template.html
Он же прямо говорит: "An argument named "graphics" is not expected here"
источник

k

kvaps in terraform_ru
оно в master'е другое, ну можно opennebula_virtual_machine взять для примера, синтаксис тот же
источник

k

kvaps in terraform_ru
resource "opennebula_virtual_machine" "test" {
 name = "abc"
 graphics {
   listen = "0.0.0.0"
   type   = "vnc"
 }
}
и
resource "opennebula_virtual_machine" "test" {
 name = "abc"
 graphics = [
   {
     listen = "0.0.0.0"
     type   = "vnc"
   }
 ]
}
источник

AR

Alexey Remizov in terraform_ru
А в virtual_machine есть ошибка?
источник

k

kvaps in terraform_ru
Alexey Remizov
А в virtual_machine есть ошибка?
ага
в первом случае нет, во втором есть
источник

AR

Alexey Remizov in terraform_ru
Это я на теоретический вопрос "в чём разница" дал теоретический ответ. Конкретно в терраформе непосредственный списочный синтаксис работать не будет.

Короче говоря, ошибка с graphics в template происходит потому, что в твоей версии провайдера этот атрибут ещё не поддерживается.
источник

k

kvaps in terraform_ru
Alexey Remizov
Это я на теоретический вопрос "в чём разница" дал теоретический ответ. Конкретно в терраформе непосредственный списочный синтаксис работать не будет.

Короче говоря, ошибка с graphics в template происходит потому, что в твоей версии провайдера этот атрибут ещё не поддерживается.
так он работает же, версия из master, а вопрос был конкретно про список :)
источник

k

kvaps in terraform_ru
any way, спасибо за разьяснения, после jsonnet хочется плеваться от HCL, слишком уж он странный)
источник