From bb4d89e5b6ef34170c7f4d96eb0e90039923c6cb Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 13 Dec 2023 11:12:29 +0100 Subject: [PATCH] Added terrafomr plan for grs-publisher service in pre and prod --- .../d4s-preprod/grsf-publisher/main.tf | 58 +++++++++++++++++++ .../d4s-preprod/grsf-publisher/provider.tf | 3 + .../d4s-production/grsf-publisher/main.tf | 58 +++++++++++++++++++ .../d4s-production/grsf-publisher/provider.tf | 3 + 4 files changed, 122 insertions(+) create mode 100644 openstack-tf/d4s-preprod/grsf-publisher/main.tf create mode 100644 openstack-tf/d4s-preprod/grsf-publisher/provider.tf create mode 100644 openstack-tf/d4s-production/grsf-publisher/main.tf create mode 100644 openstack-tf/d4s-production/grsf-publisher/provider.tf diff --git a/openstack-tf/d4s-preprod/grsf-publisher/main.tf b/openstack-tf/d4s-preprod/grsf-publisher/main.tf new file mode 100644 index 00000000..d8cc87a5 --- /dev/null +++ b/openstack-tf/d4s-preprod/grsf-publisher/main.tf @@ -0,0 +1,58 @@ +# 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 "grsf-publisher" +# +resource "openstack_compute_servergroup_v2" "grsf_publisher_server_group" { + name = "grsf-publisher" + policies = [module.common_variables.policy_list.soft_anti_affinity] +} + +module "instance_without_data_volume" { + source = "../../modules/instance_without_data_volume" + + instances_without_data_volume_map = { + grsf_publisher_1 = { + name = "grsf-publisher-1", + description = "This instance serves GRSF Publisher service", + flavor = module.common_variables.flavor_list.m1_medium, + networks = ["d4s-pre-cloud-main"], + 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.grsf_publisher_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + }, + grsf_publisher_2 = { + name = "grsf-publisher-2", + description = "This instance serves GRSF Publisher service", + flavor = module.common_variables.flavor_list.m1_medium, + networks = ["d4s-pre-cloud-main"], + 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.grsf_publisher_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + } + } +} diff --git a/openstack-tf/d4s-preprod/grsf-publisher/provider.tf b/openstack-tf/d4s-preprod/grsf-publisher/provider.tf new file mode 100644 index 00000000..5c9deb71 --- /dev/null +++ b/openstack-tf/d4s-preprod/grsf-publisher/provider.tf @@ -0,0 +1,3 @@ +provider "openstack" { + cloud = "d4s-pre" +} diff --git a/openstack-tf/d4s-production/grsf-publisher/main.tf b/openstack-tf/d4s-production/grsf-publisher/main.tf new file mode 100644 index 00000000..e33af0a1 --- /dev/null +++ b/openstack-tf/d4s-production/grsf-publisher/main.tf @@ -0,0 +1,58 @@ +# 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 "grsf-publisher" +# +resource "openstack_compute_servergroup_v2" "grsf_publisher_server_group" { + name = "grsf-publisher" + policies = [module.common_variables.policy_list.soft_anti_affinity] +} + +module "instance_without_data_volume" { + source = "../../modules/instance_without_data_volume" + + instances_without_data_volume_map = { + grsf_publisher_1 = { + name = "grsf-publisher-1", + description = "This instance serves GRSF Publisher service", + flavor = module.common_variables.flavor_list.m1_medium, + networks = ["d4s-production-cloud-main"], + 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.grsf_publisher_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + }, + grsf_publisher_2 = { + name = "grsf-publisher-2", + description = "This instance serves GRSF Publisher service", + flavor = module.common_variables.flavor_list.m1_medium, + networks = ["d4s-production-cloud-main"], + 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.grsf_publisher_server_group.id], + image_ref = module.common_variables.ubuntu_1804 + } + } +} diff --git a/openstack-tf/d4s-production/grsf-publisher/provider.tf b/openstack-tf/d4s-production/grsf-publisher/provider.tf new file mode 100644 index 00000000..ca8de747 --- /dev/null +++ b/openstack-tf/d4s-production/grsf-publisher/provider.tf @@ -0,0 +1,3 @@ +provider "openstack" { + cloud = "d4s-production" +}