summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2021-08-17 17:41:19 +0200
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2021-08-17 17:41:19 +0200
commit347823eb5724cce86036b28f384d91cf5f8e4a46 (patch)
treec7c18e74a774b18fcaae7aaba019b608957d6bca
parent2b4ca82594720cbadcabacdad1ec403d34a6ac9c (diff)
downloadinfrastructure-347823eb5724cce86036b28f384d91cf5f8e4a46.tar.gz
Adding webserver with volume and misc
-rw-r--r--terraform/infra.tf66
1 files changed, 59 insertions, 7 deletions
diff --git a/terraform/infra.tf b/terraform/infra.tf
index d1df3f1c..cd28f51c 100644
--- a/terraform/infra.tf
+++ b/terraform/infra.tf
@@ -1,17 +1,17 @@
-data "openstack_compute_flavor_v2" "flavor_frontend" {
- name = local.flavor_name_frontend
-}
-
data "openstack_images_image_v2" "image_id" {
name = local.image_name
most_recent = true
}
+# Frontend
+data "openstack_compute_flavor_v2" "flavor_frontend" {
+ name = local.flavor_name_frontend
+}
+
resource "openstack_networking_port_v2" "frontend_port" {
name = "port_1"
network_id = "${openstack_networking_network_v2.baserock_network.id}"
admin_state_up = "true"
- security_group_ids = ["${openstack_networking_secgroup_v2.sg_base.id}"]
fixed_ip {
subnet_id = "${openstack_networking_subnet_v2.baserock_subnet.id}"
@@ -19,8 +19,6 @@ resource "openstack_networking_port_v2" "frontend_port" {
}
}
-
-# Create instance
resource "openstack_compute_instance_v2" "baserock_frontend" {
name = "frontend-haproxy"
image_id = data.openstack_images_image_v2.image_id.id
@@ -31,6 +29,7 @@ resource "openstack_compute_instance_v2" "baserock_frontend" {
"${openstack_networking_secgroup_v2.sg_base.name}",
"${openstack_networking_secgroup_v2.sg_gitlab_bot.name}",
"${openstack_networking_secgroup_v2.sg_web_server.name}",
+ "${openstack_networking_secgroup_v2.sg_haste_server.name}",
"${openstack_networking_secgroup_v2.sg_shared_artifact_cache.name}",
]
network {
@@ -45,5 +44,58 @@ resource "openstack_compute_instance_v2" "baserock_frontend" {
key_pair,
]
}
+}
+
+
+# Webserver
+data "openstack_compute_flavor_v2" "flavor_webserver" {
+ name = local.flavor_name_webserver
+}
+
+resource "openstack_networking_port_v2" "webserver_port" {
+ name = "port_1"
+ network_id = "${openstack_networking_network_v2.baserock_network.id}"
+ admin_state_up = "true"
+
+ fixed_ip {
+ subnet_id = "${openstack_networking_subnet_v2.baserock_subnet.id}"
+ ip_address = "10.3.0.13"
+ }
+}
+
+resource "openstack_compute_instance_v2" "baserock_webserver" {
+ name = "webserver"
+ image_id = data.openstack_images_image_v2.image_id.id
+ flavor_id = data.openstack_compute_flavor_v2.flavor_webserver.id
+ key_pair = "${openstack_compute_keypair_v2.pedro-keypair.name}"
+
+ security_groups = [
+ "${openstack_networking_secgroup_v2.sg_base.name}",
+ "${openstack_networking_secgroup_v2.sg_gitlab_bot.name}",
+ "${openstack_networking_secgroup_v2.sg_web_server.name}",
+ "${openstack_networking_secgroup_v2.sg_haste_server.name}",
+ ]
+ network {
+ port = "${openstack_networking_port_v2.webserver_port.id}"
+ }
+
+ lifecycle {
+ ignore_changes = [
+ # Ignore changes to base image
+ image_id,
+ # Ignore changes to key_pairs
+ key_pair,
+ ]
+ }
+}
+
+resource "openstack_blockstorage_volume_v2" "volume_webserver" {
+ name = "webserver-volume"
+ size = 150
+}
+resource "openstack_compute_volume_attach_v2" "volume_attach_webserver" {
+ instance_id = "${openstack_compute_instance_v2.baserock_webserver.id}"
+ volume_id = "${openstack_blockstorage_volume_v2.volume_webserver.id}"
+ device = "/dev/vdb"
}