#
# Controller node resources
#

#resource "openstack_networking_port_v2" "kubecport" {
#  name                = "${var.controller_name}${count.index+1}-${replace(var.dns_suffix,".","-")}-port"
#  # We create as many ports as there are instances created
#  count               =  var.controller_instance_count
#  network_id          = data.openstack_networking_network_v2.public.id
#  # A list of security group ID
#  security_group_ids  = [ 
#                          data.openstack_networking_secgroup_v2.sshfromjumphosts.id, 
#                          data.openstack_networking_secgroup_v2.allegress.id,
#                          resource.openstack_networking_secgroup_v2.microk8s-old.id,
#                          resource.openstack_networking_secgroup_v2.microk8s-dco.id,
#                          resource.openstack_networking_secgroup_v2.https.id
#                        ]
#  admin_state_up      = "true"
#}
#
#resource "openstack_blockstorage_volume_v3" "kubecvolumeboot" {
#  count                = var.controller_instance_count # size of cluster
#  name                 = "${var.controller_name}${count.index+1}-${replace(var.dns_suffix,".","-")}-vol"
#  description          = "OS volume for kubernetes control node ${count.index + 1}"
#  size                 = 100
#  image_id             = data.openstack_images_image_v2.debian12image.id
#  enable_online_resize = true # Allow us to resize volume while attached.
#}
#
#resource "openstack_compute_instance_v2" "controller-nodes" {
#  count           = var.controller_instance_count
#  name            = "${var.controller_name}${count.index+1}.${var.dns_suffix}"
#  flavor_name     = "${var.controller_instance_type}"
#  key_pair        = "${var.keyname}"
#  security_groups = [
#                       data.openstack_networking_secgroup_v2.sshfromjumphosts.name,
#                       data.openstack_networking_secgroup_v2.allegress.name,
#                       resource.openstack_networking_secgroup_v2.microk8s-old.id,
#                       resource.openstack_networking_secgroup_v2.microk8s-dco.id,
#                       resource.openstack_networking_secgroup_v2.https.name
#                    ]
#  block_device {
#    uuid             = resource.openstack_blockstorage_volume_v3.kubecvolumeboot[count.index].id
#    source_type      = "volume"
#    destination_type = "volume"
#    boot_index       = 0
#  }
#  scheduler_hints {
#    group = openstack_compute_servergroup_v2.controllers.id
#  }
#  network {
#    port   = resource.openstack_networking_port_v2.kubecport[count.index].id
#  }
#}
#
##
## Worker node resources
##
#
#resource "openstack_networking_port_v2" "kubewport" {
#  name                = "${var.worker_name}${count.index+1}-${replace(var.dns_suffix,".","-")}-port"
#  # We create as many ports as there are instances created
#  count               =  var.worker_instance_count
#  network_id          = data.openstack_networking_network_v2.public.id
#  # A list of security group ID
#  security_group_ids  = [
#                          data.openstack_networking_secgroup_v2.sshfromjumphosts.id,
#                          data.openstack_networking_secgroup_v2.allegress.id,
#                          resource.openstack_networking_secgroup_v2.microk8s-old.id
#                        ]
#  admin_state_up      = "true"
#}
#
#resource "openstack_blockstorage_volume_v3" "kubewvolumeboot" {
#  count                = var.worker_instance_count # size of cluster
#  name                 = "${var.worker_name}${count.index+1}-${replace(var.dns_suffix,".","-")}-vol"
#  description          = "OS volume for kubernetes worker node ${count.index + 1}"
#  size                 = 100
#  image_id             = data.openstack_images_image_v2.debian12image.id
#  enable_online_resize = true # Allow us to resize volume while attached.
#}
#
#resource "openstack_blockstorage_volume_v3" "kubewvolumerook" {
#  count                = var.worker_instance_count # size of cluster
#  name                 = "${var.worker_name}${count.index+1}-${replace(var.dns_suffix,".","-")}-rook-vol"
#  description          = "Rook storage volume for kubernetes worker node ${count.index + 1}"
#  size                 = 100
#  enable_online_resize = true # Allow us to resize volume while attached.
#}
#
#
#resource "openstack_compute_instance_v2" "worker-nodes" {
#  count           = var.worker_instance_count
#  name            = "${var.worker_name}${count.index+1}.${var.dns_suffix}"
#  flavor_name     = "${var.worker_instance_type}"
#  key_pair        = "${var.keynameworkers}"
#  security_groups = [
#                      data.openstack_networking_secgroup_v2.sshfromjumphosts.name,
#                      data.openstack_networking_secgroup_v2.allegress.name,
#                      resource.openstack_networking_secgroup_v2.microk8s-old.name
#                    ]
#
#  block_device {
#    uuid             = resource.openstack_blockstorage_volume_v3.kubewvolumeboot[count.index].id
#    source_type      = "volume"
#    destination_type = "volume"
#    boot_index       = 0
#  }
#  block_device {
#    uuid             = resource.openstack_blockstorage_volume_v3.kubewvolumerook[count.index].id
#    source_type      = "volume"
#    destination_type = "volume"
#    boot_index       = 1
#  }
#
#  scheduler_hints {
#    group = openstack_compute_servergroup_v2.workers.id
#  }
#  network {
#    port   = resource.openstack_networking_port_v2.kubewport[count.index].id
#  }
#}