From 9a70cb4c1d0332e67ddd499ff0f96840e32cadf9 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Fri, 19 Jan 2024 16:43:27 +0100 Subject: [PATCH] Added plan for dataminer in preproduction --- openstack-tf/d4s-preprod/dataminer/main.tf | 99 +++++++++++++++++++ .../d4s-preprod/dataminer/provider.tf | 3 + 2 files changed, 102 insertions(+) create mode 100644 openstack-tf/d4s-preprod/dataminer/main.tf create mode 100644 openstack-tf/d4s-preprod/dataminer/provider.tf diff --git a/openstack-tf/d4s-preprod/dataminer/main.tf b/openstack-tf/d4s-preprod/dataminer/main.tf new file mode 100644 index 0000000..36adf4c --- /dev/null +++ b/openstack-tf/d4s-preprod/dataminer/main.tf @@ -0,0 +1,99 @@ +# 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" + } +} +# +# Uses common_variables as module +# +module "common_variables" { + source = "../../modules/common_variables" +} + +module "instance_without_data_volume" { + source = "../../modules/instance_without_data_volume" + + instances_without_data_volume_map = { + dm_pool_manager_pre = { + name = "dm-pool-manager-pre", + description = "This instance is a DataMiner Pool Manager service", + flavor = module.common_variables.flavor_list.m1_large, + networks = [data.terraform_remote_state.privnet_dns_router.outputs.main_private_network.name, module.common_variables.networks_list.shared_postgresql], + security_groups = [data.terraform_remote_state.privnet_dns_router.outputs.default_security_group_name, data.terraform_remote_state.privnet_dns_router.outputs.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [], + image_ref = module.common_variables.ubuntu_1804 + image_volume_size = 30 + }, + dataminer_pre_ghost = { + name = "dataminer-pre-ghost", + description = "This instance is a DataMiner Ghost service", + flavor = module.common_variables.flavor_list.m1_large, + networks = [data.terraform_remote_state.privnet_dns_router.outputs.main_private_network.name, module.common_variables.networks_list.shared_postgresql], + security_groups = [data.terraform_remote_state.privnet_dns_router.outputs.default_security_group_name, data.terraform_remote_state.privnet_dns_router.outputs.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [], + image_ref = module.common_variables.ubuntu_1804 + image_volume_size = 50 + }, + dataminer_1_pre_1804 = { + name = "dataminer1-pre-1804", + description = "This instance is a DataMiner service", + flavor = module.common_variables.flavor_list.m1_xxl, + networks = [data.terraform_remote_state.privnet_dns_router.outputs.main_private_network.name, module.common_variables.networks_list.shared_postgresql], + security_groups = [data.terraform_remote_state.privnet_dns_router.outputs.default_security_group_name, data.terraform_remote_state.privnet_dns_router.outputs.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [], + image_ref = module.common_variables.ubuntu_1804 + image_volume_size = 80 + } + } +} + +locals { + cname_target = "main-lb.${data.terraform_remote_state.privnet_dns_router.outputs.dns_zone.zone_name}" +} + +# +# Add DNS record/s +# +module "dns_records_create" { + source = "../../modules/dns_resources" + + dns_resources_map = { + dm-pool-manager-pre = { + zone_id = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone_id + name = join(".", ["dm-pool-manager-pre", data.terraform_remote_state.privnet_dns_router.outputs.dns_zone.zone_name]) + description = "DM Pool Manager Preproduction" + ttl = 8600 + type = "CNAME" + records = [local.cname_target] + }, + dataminer-pre-ghost = { + zone_id = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone_id + name = join(".", ["dataminer-pre-ghost", data.terraform_remote_state.privnet_dns_router.outputs.dns_zone.zone_name]) + description = "DataMiner Preproduction Ghost" + ttl = 8600 + type = "CNAME" + records = [local.cname_target] + }, + dataminer1-pre-1804 = { + zone_id = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone_id + name = join(".", ["dataminer1-pre-1804", data.terraform_remote_state.privnet_dns_router.outputs.dns_zone.zone_name]) + description = "DataMiner 1 Pre 1804" + ttl = 8600 + type = "CNAME" + records = [local.cname_target] + } + } +} diff --git a/openstack-tf/d4s-preprod/dataminer/provider.tf b/openstack-tf/d4s-preprod/dataminer/provider.tf new file mode 100644 index 0000000..5c9deb7 --- /dev/null +++ b/openstack-tf/d4s-preprod/dataminer/provider.tf @@ -0,0 +1,3 @@ +provider "openstack" { + cloud = "d4s-pre" +}