Size: a a a

2021 June 24

ac

anton chernyaev in terraform_ru
вызов модуля

module "sbx_infrastructure" {
   source                       =  "../../../../modules/mcs/infrastructure_v2"
   LOCATION_NAME                =  var.LOCATION_NAME
   NETWORKS                     =  var.NETWORKS
   OPENSTACK_FLOTINGIP_POOL     =  var.OPENSTACK_FLOTINGIP_POOL
   LOCATION_NAME_ABBV           =  var.LOCATION_NAME_ABBV
   depends_on = [ module.sec_rules ]
}

сам кусок модуля

resource "openstack_networking_subnet_v2" "subnetwork" {
 for_each        = var.NETWORKS
 name            = "${var.LOCATION_NAME}-${var.LOCATION_NAME_ABBV}-${each.key}"
 network_id      = openstack_networking_network_v2.terraform[each.key].id
 cidr            = each.value.cidr
 ip_version      = 4
 dns_nameservers = each.value.dns
 dynamic "allocation_pool" {
   for_each = each.value.allocation_pool
   content {
     start = allocation_pool.value.start
     end = allocation_pool.value.end
   }
 }
}

ошибка
Error: Unsupported attribute

│   on ../../../../modules/mcs/infrastructure_v2/subnetwork.tf line 39, in resource "openstack_networking_subnet_v2" "subnetwork":
│   39:       start = allocation_pool.value.start
│     ├────────────────
│     │ allocation_pool.value is "10.242.1.199"

│ This value does not have any attributes.


│ Error: Unsupported attribute

│   on ../../../../modules/mcs/infrastructure_v2/subnetwork.tf line 39, in resource "openstack_networking_subnet_v2" "subnetwork":
│   39:       start = allocation_pool.value.start
│     ├────────────────
│     │ allocation_pool.value is "10.242.1.20"

│ This value does not have any attributes.
источник

ВИ

Владимир Ильяков... in terraform_ru
а если убрать allocation_pool из public?
источник

ac

anton chernyaev in terraform_ru
решил работает вот так)
resource "openstack_networking_subnet_v2" "subnetwork" {
 for_each        = var.NETWORKS
 name            = "${var.LOCATION_NAME}-${var.LOCATION_NAME_ABBV}-${each.key}"
 network_id      = openstack_networking_network_v2.terraform[each.key].id
 cidr            = each.value.cidr
 ip_version      = 4
 dns_nameservers = each.value.dns
 dynamic "allocation_pool" {
   for_each = each.value.allocation_pool
   content {
     start = allocation_pool.value
     end = allocation_pool.value
   }
 }
}
источник

ac

anton chernyaev in terraform_ru
а вот для другой ситуции конфликтик)
resource "openstack_vpnaas_ipsec_policy_v2" "ipsec" {
 name = var.VPN_POLICY.ipsec.name
 auth_algorithm = var.VPN_POLICY.ipsec.auth_algorithm
 encryption_algorithm = var.VPN_POLICY.ipsec.encryption_algorithm
 pfs = var.VPN_POLICY.ipsec.pfs
 dynamic "lifetime" {
   for_each = var.VPN_POLICY.ipsec.lifetime
   content {
     units = lifetime.value
     value = tonumber(lifetime.value)
   }
 }
}

 VPN_POLICY = {
   base = {
     ike = {
       name = "ikev2-aes-256"
       auth_algorithm = "sha1"
       encryption_algorithm = "aes-256"
       pfs = "group2"
       lifetime = {
         units = "seconds"
         value = 86400
       }
       ike_version = "v2"
     }
     ipsec = {
       name = "ipsec-aes-256"
       auth_algorithm = "sha1"
       encryption_algorithm = "aes-256"
       pfs = "group2"
       lifetime = {
         units = "seconds"
         value = 86400
       }
     }
   }
 }



│ Error: Invalid function argument

│   on ../../../../modules/mcs/policy_v2/policy.tf line 10, in resource "openstack_vpnaas_ike_policy_v2" "ike":
│   10:       value = tonumber(lifetime.value)
│     ├────────────────
│     │ lifetime.value is "seconds"

│ Invalid value for "v" parameter: cannot convert "seconds" to number; given string must be a decimal representation of a number.


│ Error: Invalid function argument

│   on ../../../../modules/mcs/policy_v2/policy.tf line 25, in resource "openstack_vpnaas_ipsec_policy_v2" "ipsec":
│   25:       value = tonumber(lifetime.value)
│     ├────────────────
│     │ lifetime.value is "seconds"

│ Invalid value for "v" parameter: cannot convert "seconds" to number; given string must be a decimal representation of a number.
источник

ac

anton chernyaev in terraform_ru
так нет, так не работает)
источник

ac

anton chernyaev in terraform_ru
блин какой-то баг(
источник

ac

anton chernyaev in terraform_ru
ибо если следовать https://www.terraform.io/docs/language/expressions/dynamic-blocks.html то должно работать
источник

ac

anton chernyaev in terraform_ru
так как приходит мапа
источник

ВИ

Владимир Ильяков... in terraform_ru
for_each = var.VPN_POLICY.ipsec.lifetime #  он итерируется по map-e, ключ будет в lifetime.key, значение будет в lifetime.value

units = lifetime.value # соответственно будет две итерации "seconds" и 86400
источник

ВИ

Владимир Ильяков... in terraform_ru
```resource "openstack_networking_subnet_v2" "subnetwork" {
 for_each        = var.NETWORKS
 name            = "${var.LOCATION_NAME}-${var.LOCATION_NAME_ABBV}-${each.key}"
 network_id      = openstack_networking_network_v2.terraform[each.key].id
 cidr            = each.value.cidr
 ip_version      = 4
 dns_nameservers = each.value.dns
 dynamic "allocation_pool" {
   for_each = each.value.allocation_pool
!= null ? [each.value.allocation_pool] : []
   content {
     start = allocation_pool.start
     end = allocation_pool.end
   }
 }
}
```
может так, жарко думать )))
источник
2021 June 25

AE

Alisher Ertau in terraform_ru
привет всем
ребята, кто то пробовал юзать  https://registry.terraform.io/providers/elsudano/vmworkstation/latest/docs ?
че то я пытался заставить его работать, но выдает ошибку мол че то не так, попробуйте сделайте "terraform init", но это не особо помогает
дока очень маленькая и толковой инфы не нашел
источник

JR

Jürgen Romins in terraform_ru
А полный текст ошибки?
источник

AE

Alisher Ertau in terraform_ru
воть
источник

JR

Jürgen Romins in terraform_ru
Покажи код
источник

AE

Alisher Ertau in terraform_ru
terraform {
 required_version = ">= 0.14.4"
 required_providers {
   vmworkstation = {
     source  = "elsudano/vmworkstation"
     version = "0.2.1"
   }
 }
}
resource "vmworkstation_vm" "test_machine" {
 sourceid     = "id_vm"
 processors   = "1"
 memory       = "1024"
}

крэды через:
export VMWS_USER="xxxx"; \
export VMWS_PASSWORD="xxxx"; \
export VMWS_URL="https://localhost:8697/api"; \
источник

AP

Anton Patsev in terraform_ru
источник

AP

Anton Patsev in terraform_ru
A tool to convert Terraform projects to Pulumi TypeScript programs
источник

S

Sebor in terraform_ru
Я всегда говорил, что жс/тс разрабы не нужны 😏
источник

JR

Jürgen Romins in terraform_ru
сам провайдер какой-то кривой https://github.com/elsudano/terraform-provider-vmworkstation/issues/6
источник

AE

Alisher Ertau in terraform_ru
Ага знаю, жаль в общем (
источник