Add ports to the Share NFS network.

This commit is contained in:
Andrea Dell'Amico 2024-02-20 19:25:25 +01:00
parent d66efc4b8f
commit 128586a63d
Signed by untrusted user: andrea.dellamico
GPG Key ID: 147ABE6CEB9E20FF
2 changed files with 3025 additions and 12 deletions

View File

@ -188,6 +188,55 @@ resource "openstack_compute_instance_v2" "docker_swarm_workers" {
}
}
#
# Manila NFS Share
#
# Managers
resource "openstack_networking_port_v2" "swarm_mgr_nfs_port" {
count = var.docker_swarm_data.mgr_count
name = format("%s-%02d", var.docker_swarm_data.mgr_name, count.index + 1)
network_id = data.terraform_remote_state.privnet_dns_router.outputs.storage_nfs_network_id
admin_state_up = "true"
fixed_ip {
subnet_id = data.terraform_remote_state.privnet_dns_router.outputs.storage_nfs_subnet_id
}
}
resource "openstack_networking_port_secgroup_associate_v2" "swarm_mgr_nfs_port_secgroup" {
count = var.docker_swarm_data.mgr_count
port_id = openstack_networking_port_v2.swarm_mgr_nfs_port[count.index].id
security_group_ids = [data.terraform_remote_state.privnet_dns_router.outputs.nfs_share_no_ingress_secgroup_id]
}
resource "openstack_compute_interface_attach_v2" "nfs_port_to_swarm_mgr" {
count = var.docker_swarm_data.mgr_count
instance_id = openstack_compute_instance_v2.docker_swarm_managers[count.index].id
port_id = openstack_networking_port_v2.swarm_mgr_nfs_port[count.index].id
}
# Workers
resource "openstack_networking_port_v2" "swarm_workers_nfs_port" {
count = var.docker_swarm_data.worker_count
name = format("%s-%02d", var.docker_swarm_data.worker_name, count.index + 1)
network_id = data.terraform_remote_state.privnet_dns_router.outputs.storage_nfs_network_id
admin_state_up = "true"
fixed_ip {
subnet_id = data.terraform_remote_state.privnet_dns_router.outputs.storage_nfs_subnet_id
}
}
resource "openstack_networking_port_secgroup_associate_v2" "swarm_worker_nfs_port_secgroup" {
count = var.docker_swarm_data.worker_count
port_id = openstack_networking_port_v2.swarm_workers_nfs_port[count.index].id
security_group_ids = [data.terraform_remote_state.privnet_dns_router.outputs.nfs_share_no_ingress_secgroup_id]
}
resource "openstack_compute_interface_attach_v2" "nfs_port_to_swarm_workers" {
count = var.docker_swarm_data.worker_count
instance_id = openstack_compute_instance_v2.docker_swarm_workers[count.index].id
port_id = openstack_networking_port_v2.swarm_workers_nfs_port[count.index].id
}
# NFS server
# Block device
resource "openstack_blockstorage_volume_v3" "swarm_nfs_data_vol" {
@ -236,11 +285,11 @@ resource "openstack_compute_volume_attach_v2" "swarm_nfs_data_attach_vol" {
#
# Swarm load balancer. L4, backed by Octavia
resource "openstack_lb_loadbalancer_v2" "swarm_lb" {
vip_subnet_id = var.main_private_subnet_id
name = var.octavia_swarm_data.swarm_lb_name
description = var.octavia_swarm_data.swarm_lb_description
flavor_id = var.octavia_swarm_data.octavia_flavor_id
vip_address = var.octavia_swarm_data.swarm_octavia_main_ip
vip_subnet_id = var.main_private_subnet_id
name = var.octavia_swarm_data.swarm_lb_name
description = var.octavia_swarm_data.swarm_lb_description
flavor_id = var.octavia_swarm_data.octavia_flavor_id
vip_address = var.octavia_swarm_data.swarm_octavia_main_ip
# availability_zone = var.availability_zones_names.availability_zone_no_gpu
loadbalancer_provider = "amphora"
}
@ -541,3 +590,12 @@ output "swarm_worker_nodes" {
value = openstack_compute_instance_v2.docker_swarm_workers
sensitive = true
}
output "swarm_managers_nfs_ip_ports" {
description = "IP addresses in the share NFS network"
value = openstack_networking_port_v2.swarm_mgr_nfs_port
}
output "swarm_workers_nfs_ip_ports" {
description = "IP addresses in the share NFS network"
value = openstack_networking_port_v2.swarm_workers_nfs_port
}