# Netowrk port
resource "openstack_networking_port_v2" "lb1-port-dco" {
  name                = "lb1-${replace(var.dns_suffix,".","-")}-${local.dcodc}-port"
  network_id          = data.openstack_networking_network_v2.public-dco.id
  # A list of security group ID
  security_group_ids  = [
                          resource.openstack_networking_secgroup_v2.ssh-from-jump-hosts-dco.id,
                          resource.openstack_networking_secgroup_v2.lb-dco.id
                        ]
  admin_state_up      = "true"
  provider            = openstack.dco
}

# Boot volume
# Boot volume for node
resource "openstack_blockstorage_volume_v3" "lb1volumeboot-dco" {
  name                 = "lb1-${replace(var.dns_suffix,".","-")}-${local.dcodc}-vol"
  description          = "OS volume for lb1.matrix.test.sunet.se"
  size                 = 50
  image_id             = data.openstack_images_image_v2.debian12image-dco.id
  enable_online_resize = true # Allow us to resize volume while attached.
  provider             = openstack.dco
}

resource "openstack_compute_instance_v2" "lb1-node-dco" {
  name            = "lb1.${var.dns_suffix}"
  flavor_name     = "${var.lb_instance_type}"
  key_pair        = "${var.keynameworkers}"
  provider        = openstack.dco
  security_groups = [
                      resource.openstack_networking_secgroup_v2.ssh-from-jump-hosts-dco.name,
                      resource.openstack_networking_secgroup_v2.lb-dco.name
                    ]

  block_device {
    uuid             = resource.openstack_blockstorage_volume_v3.lb1volumeboot-dco.id
    source_type      = "volume"
    destination_type = "volume"
    boot_index       = 0
  }

  network {
    port   = resource.openstack_networking_port_v2.lb1-port-dco.id
  }
}