consolidate network dirs

This commit is contained in:
gregory hendrickson
2023-03-15 16:00:36 -07:00
parent 611c314e2b
commit 0bb16df5a0
5 changed files with 205 additions and 157 deletions

13
main.tf
View File

@@ -11,19 +11,6 @@ module "instance" {
fancy_store_name = module.storage.fancy_store_name
}
module "healthchecks" {
source = "./modules/network/healthchecks"
}
module "firewall" {
source = "./modules/network/firewall"
}
module "loadbalancer" {
source = "./modules/network/loadbalancer"
}
module "network" {
source = "./modules/network"

View File

@@ -1,21 +0,0 @@
## Firewall Rules to allow Front-End and Back-End
resource "google_compute_firewall" "fw_fe" {
name = "fw-fe"
network = "default"
allow {
protocol = "tcp"
ports = ["8080"]
}
target_tags = ["frontend"]
}
resource "google_compute_firewall" "fw_be" {
name = "fw-be"
network = "default"
allow {
protocol = "tcp"
ports = ["8081-8082"]
}
target_tags = ["backend"]
}

View File

@@ -1,40 +0,0 @@
#Create HealthChecks
resource "google_compute_http_health_check" "fancy_fe_hc" {
name = "fancy-fe-hc"
port = "8080"
request_path = "/"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_be_hc" {
name = "fancy-be-hc"
port = "8081"
request_path = "/api/orders"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_fe_frontend_hc" {
name = "fancy-fe-frontend-hc"
request_path = "/"
port = 8080
}
resource "google_compute_http_health_check" "fancy_be_orders_hc" {
name = "fancy-be-orders-hc"
request_path = "/api/orders"
port = 8081
}
resource "google_compute_http_health_check" "fancy_be_products_hc" {
name = "fancy-be-products-hc"
request_path = "/api/products"
port = 8082
}

View File

@@ -1,82 +0,0 @@
resource "google_compute_backend_service" "fancy_fe_frontend" {
name = "fancy-fe-frontend"
port_name = "frontend"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_fe_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_fe_frontend_hc.self_link
]
}
resource "google_compute_backend_service" "fancy_be_orders" {
name = "fancy-be-orders"
port_name = "orders"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_be_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_be_orders_hc.self_link
]
}
resource "google_compute_backend_service" "fancy_be_products" {
name = "fancy-be-products"
port_name = "products"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_be_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_be_products_hc.self_link
]
}
resource "google_compute_url_map" "fancy_map" {
name = "fancy-map"
default_service = google_compute_backend_service.fancy_fe_frontend.self_link
}
resource "google_compute_path_matcher" "fancy_path_matcher" {
name = "orders"
default_service = google_compute_backend_service.fancy_fe_frontend.self_link
path_rule {
paths = ["/api/orders"]
service = google_compute_backend_service.fancy_be_orders.self_link
}
path_rule {
paths = ["/api/products"]
service = google_compute_backend_service.fancy_be_products.self_link
}
url_map = google_compute_url_map.fancy_map.self_link
}
resource "google_compute_target_http_proxy" "fancy_proxy" {
name = "fancy-proxy"
url_map = google_compute_url_map.fancy_map.self_link
}
resource "google_compute_global_forwarding_rule" "fancy_http_rule" {
name = "fancy-http-rule"
target = google_compute_target_http_proxy.fancy_proxy.self_link
port_range = "80"
}

View File

@@ -57,3 +57,207 @@ resource "google_compute_firewall" "allow_health_check" {
"35.191.0.0/16"
]
}
resource "google_compute_backend_service" "fancy_fe_frontend" {
name = "fancy-fe-frontend"
port_name = "frontend"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_fe_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_fe_frontend_hc.self_link
]
}
resource "google_compute_backend_service" "fancy_be_orders" {
name = "fancy-be-orders"
port_name = "orders"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_be_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_be_orders_hc.self_link
]
}
resource "google_compute_backend_service" "fancy_be_products" {
name = "fancy-be-products"
port_name = "products"
protocol = "HTTP"
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
backend {
group = google_compute_instance_group_manager.fancy_be_mig.self_link
}
health_checks = [
google_compute_http_health_check.fancy_be_products_hc.self_link
]
}
resource "google_compute_url_map" "fancy_map" {
name = "fancy-map"
default_service = google_compute_backend_service.fancy_fe_frontend.self_link
}
resource "google_compute_path_matcher" "fancy_path_matcher" {
name = "orders"
default_service = google_compute_backend_service.fancy_fe_frontend.self_link
path_rule {
paths = ["/api/orders"]
service = google_compute_backend_service.fancy_be_orders.self_link
}
path_rule {
paths = ["/api/products"]
service = google_compute_backend_service.fancy_be_products.self_link
}
url_map = google_compute_url_map.fancy_map.self_link
}
resource "google_compute_target_http_proxy" "fancy_proxy" {
name = "fancy-proxy"
url_map = google_compute_url_map.fancy_map.self_link
}
resource "google_compute_global_forwarding_rule" "fancy_http_rule" {
name = "fancy-http-rule"
target = google_compute_target_http_proxy.fancy_proxy.self_link
port_range = "80"
}
#Create HealthChecks
resource "google_compute_http_health_check" "fancy_fe_hc" {
name = "fancy-fe-hc"
port = "8080"
request_path = "/"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_be_hc" {
name = "fancy-be-hc"
port = "8081"
request_path = "/api/orders"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_fe_frontend_hc" {
name = "fancy-fe-frontend-hc"
request_path = "/"
port = 8080
}
resource "google_compute_http_health_check" "fancy_be_orders_hc" {
name = "fancy-be-orders-hc"
request_path = "/api/orders"
port = 8081
}
resource "google_compute_http_health_check" "fancy_be_products_hc" {
name = "fancy-be-products-hc"
request_path = "/api/products"
port = 8082
}
## Firewall Rules to allow Front-End and Back-End
resource "google_compute_firewall" "fw_fe" {
name = "fw-fe"
network = "default"
allow {
protocol = "tcp"
ports = ["8080"]
}
target_tags = ["frontend"]
}
resource "google_compute_firewall" "fw_be" {
name = "fw-be"
network = "default"
allow {
protocol = "tcp"
ports = ["8081-8082"]
}
target_tags = ["backend"]
}
#Create HealthChecks
resource "google_compute_http_health_check" "fancy_fe_hc" {
name = "fancy-fe-hc"
port = "8080"
request_path = "/"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_be_hc" {
name = "fancy-be-hc"
port = "8081"
request_path = "/api/orders"
check_interval_sec = 30
timeout_sec = 10
healthy_threshold = 1
unhealthy_threshold = 3
}
resource "google_compute_http_health_check" "fancy_fe_frontend_hc" {
name = "fancy-fe-frontend-hc"
request_path = "/"
port = 8080
}
resource "google_compute_http_health_check" "fancy_be_orders_hc" {
name = "fancy-be-orders-hc"
request_path = "/api/orders"
port = 8081
}
resource "google_compute_http_health_check" "fancy_be_products_hc" {
name = "fancy-be-products-hc"
request_path = "/api/products"
port = 8082
}
## Firewall Rules to allow Front-End and Back-End
resource "google_compute_firewall" "fw_fe" {
name = "fw-fe"
network = "default"
allow {
protocol = "tcp"
ports = ["8080"]
}
target_tags = ["frontend"]
}
resource "google_compute_firewall" "fw_be" {
name = "fw-be"
network = "default"
allow {
protocol = "tcp"
ports = ["8081-8082"]
}
target_tags = ["backend"]
}