diff --git a/openstack-tf/d4s-production/geonetwork/main.tf b/openstack-tf/d4s-production/geonetwork/main.tf new file mode 100644 index 0000000..17ebaf7 --- /dev/null +++ b/openstack-tf/d4s-production/geonetwork/main.tf @@ -0,0 +1,183 @@ +# 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" +} + + +# +# Creates the server group "gcat" +# +resource "openstack_compute_servergroup_v2" "sdi_geo_server_group" { + name = "sdi-geo" + policies = [module.common_variables.policy_list.soft_anti_affinity] +} + + +module "instance_with_data_volume" { + source = "../../modules/instance_with_data_volume" + + instances_with_data_volume_map = { + geonetwork_ariadne = { + name = "geonetwork-ariadne", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_ariadne_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_fisherieatlas = { + name = "geonetwork-fisherieatlas", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_fisherieatlas_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_grsf = { + name = "geonetwork-grsf", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_grsf_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_iotcss3 = { + + name = "geonetwork-iotcss3", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_iotcss3_data_volume", + size = "20", + device = "/dev/vdb" + } + } + geonetwork_sdilab = { + name = "geonetwork-sdilab", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_sdilab_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_spatialdata = { + name = "geonetwork-spatialdata", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_spatialdata_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_wecafcfirms = { + name = "geonetwork-wecafcfirms", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_wecafcfirms_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_bluecloud = { + name = "geonetwork-bluecloud", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_bluecloud_data_volume", + size = "30", + device = "/dev/vdb" + } + }, + geonetwork_tunaatlas = { + name = "geonetwork-tunaatlas", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m2_small, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_tunaatlas_data_volume", + size = "20", + device = "/dev/vdb" + } + }, + geonetwork_prod = { + name = "geonetwork-prod", + description = "This instance serves geonetwork service", + flavor = module.common_variables.flavor_list.m1_large, + networks = ["d4s-production-cloud-main",module.common_variables.networks_list.shared_postgresql], + security_groups = [module.common_variables.security_group_list.default, module.common_variables.security_group_list.http_and_https_from_the_load_balancers], + server_groups_ids = [openstack_compute_servergroup_v2.sdi_geo_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + volume = { + name = "geonetwork_prod_data_volume", + size = "40", + device = "/dev/vdb" + } + } + } +} diff --git a/openstack-tf/d4s-production/geonetwork/provider.tf b/openstack-tf/d4s-production/geonetwork/provider.tf new file mode 100644 index 0000000..ca8de74 --- /dev/null +++ b/openstack-tf/d4s-production/geonetwork/provider.tf @@ -0,0 +1,3 @@ +provider "openstack" { + cloud = "d4s-production" +}