diff --git a/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/main.tf b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/main.tf new file mode 100644 index 0000000..ca610cd --- /dev/null +++ b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/main.tf @@ -0,0 +1,37 @@ +# Define required providers +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = ">= 1.53.0" + } + } +} + +data "terraform_remote_state" "privnet_dns_router" { + backend = "local" + + config = { + path = "../../project-setup/terraform.tfstate" + } +} + +data "terraform_remote_state" "main_infrastructure" { + backend = "local" + + config = { + path = "../../basic-infrastructure/terraform.tfstate" + } +} + +# SSH settings +module "ssh_settings" { + source = "../../../modules/ssh-key-ref" +} +# +# Uses common_variables as module +# +module "common_variables" { + source = "../../../modules/common_variables" +} diff --git a/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/provider.tf b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/provider.tf new file mode 100644 index 0000000..ca8de74 --- /dev/null +++ b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/provider.tf @@ -0,0 +1,3 @@ +provider "openstack" { + cloud = "d4s-production" +} diff --git a/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/reiner-webodv.tf b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/reiner-webodv.tf new file mode 100644 index 0000000..c44726c --- /dev/null +++ b/openstack-tf/d4s-production/manila-shares-used-by-swarm-stacks/bluecloud-reiner-webodv/reiner-webodv.tf @@ -0,0 +1,116 @@ +# NFS shares required by +# Create a NFS share +resource "openstack_sharedfilesystem_share_v2" "webodv_private_data" { + name = "sobigdata_webodv_private_data" + description = "NFS share for the sobigdata webodv private data" + share_proto = "NFS" + size = 10 +} + +# Allow access to the NFS share +resource "openstack_sharedfilesystem_share_access_v2" "webodv_mgr_private_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_managers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_private_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + +resource "openstack_sharedfilesystem_share_access_v2" "webodv_workers_private_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_workers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_private_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + +resource "openstack_sharedfilesystem_share_v2" "webodv_public_data" { + name = "sobigdata_webodv_public_data" + description = "NFS share for the sobigdata webodv public data" + share_proto = "NFS" + size = 10 +} + +# Allow access to the NFS share +resource "openstack_sharedfilesystem_share_access_v2" "webodv_mgr_public_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_managers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_public_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + +resource "openstack_sharedfilesystem_share_access_v2" "webodv_workers_public_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_workers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_public_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + +resource "openstack_sharedfilesystem_share_v2" "webodv_mysql_data" { + name = "sobigdata_webodv_mysql_data" + description = "NFS share for the sobigdata webodv mysql data" + share_proto = "NFS" + size = 10 +} + +# Allow access to the NFS share +resource "openstack_sharedfilesystem_share_access_v2" "webodv_mgr_mysql_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_managers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_mysql_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + +resource "openstack_sharedfilesystem_share_access_v2" "webodv_workers_mysql_data_share_access" { + for_each = { for nfs_ip in data.terraform_remote_state.main_infrastructure.outputs.swarm_workers_nfs_ip_ports : join("", nfs_ip.all_fixed_ips) => nfs_ip } + share_id = openstack_sharedfilesystem_share_v2.webodv_mysql_data.id + access_type = "ip" + access_to = each.key + access_level = "rw" +} + + +output "webodv_nfs_private_data" { + value = openstack_sharedfilesystem_share_v2.webodv_private_data +} + +output "webodv_nfs_private_data_mgr_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_mgr_private_data_share_access + sensitive = true +} + +output "webodv_nfs_private_data_workers_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_workers_private_data_share_access + sensitive = true +} + +output "webodv_nfs_public_data" { + value = openstack_sharedfilesystem_share_v2.webodv_public_data +} + +output "webodv_nfs_public_data_mgr_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_mgr_public_data_share_access + sensitive = true +} + +output "webodv_nfs_public_data_workers_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_workers_public_data_share_access + sensitive = true +} + +output "webodv_nfs_mysql_data" { + value = openstack_sharedfilesystem_share_v2.webodv_mysql_data +} + +output "webodv_nfs_mysql_data_mgr_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_mgr_mysql_data_share_access + sensitive = true +} + +output "webodv_nfs_mysql_data_workers_acls" { + value = openstack_sharedfilesystem_share_access_v2.webodv_workers_mysql_data_share_access + sensitive = true +}