From 919cd5d19f8c1ac0cd6cd9cbd6b913d13ee91338 Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Tue, 5 Mar 2024 12:54:08 +0100 Subject: [PATCH] Delete deprecated/broken blueprints --- blueprints/networking/__need_fixing/README.md | 6 - .../filtering-proxy-psc/README.md | 43 -- .../filtering-proxy-psc/consumer.tf | 105 ----- .../__need_fixing/filtering-proxy-psc/main.tf | 229 ---------- .../filtering-proxy-psc/squid.conf | 60 --- .../filtering-proxy-psc/startup.sh | 26 -- .../filtering-proxy-psc/variables.tf | 79 ---- .../__need_fixing/filtering-proxy/README.md | 62 --- .../__need_fixing/filtering-proxy/main.tf | 281 ------------- .../__need_fixing/filtering-proxy/outputs.tf | 20 - .../__need_fixing/filtering-proxy/squid.png | Bin 53091 -> 0 bytes .../filtering-proxy/variables.tf | 70 ---- .../nginx-reverse-proxy-cluster/Dockerfile | 28 -- .../nginx-reverse-proxy-cluster/README.md | 41 -- .../nginx-reverse-proxy-cluster/main.tf | 330 --------------- .../nginx-reverse-proxy-cluster/outputs.tf | 20 - .../reverse-proxy.png | Bin 107701 -> 0 bytes .../nginx-reverse-proxy-cluster/variables.tf | 133 ------ .../onprem-google-access-dns/README.md | 226 ---------- .../onprem-google-access-dns/assets/Corefile | 21 - .../backend.tf.sample | 20 - .../onprem-google-access-dns/diagram.png | Bin 157471 -> 0 bytes .../onprem-google-access-dns/main.tf | 331 --------------- .../onprem-google-access-dns/outputs.tf | 39 -- .../onprem-google-access-dns/variables.tf | 77 ---- .../hub-and-spoke-peering/README.md | 126 ------ .../hub-and-spoke-peering/backend.tf.sample | 20 - .../hub-and-spoke-peering/diagram-network.png | Bin 36104 -> 0 bytes .../hub-and-spoke-peering/diagram.png | Bin 151868 -> 0 bytes .../networking/hub-and-spoke-peering/main.tf | 391 ------------------ .../hub-and-spoke-peering/outputs.tf | 26 -- .../hub-and-spoke-peering/variables.tf | 85 ---- .../networking/hub-and-spoke-vpn/README.md | 114 ----- .../hub-and-spoke-vpn/backend.tf.sample | 20 - .../networking/hub-and-spoke-vpn/diagram.png | Bin 92328 -> 0 bytes .../networking/hub-and-spoke-vpn/main.tf | 75 ---- .../networking/hub-and-spoke-vpn/net-dev.tf | 77 ---- .../hub-and-spoke-vpn/net-landing.tf | 64 --- .../networking/hub-and-spoke-vpn/net-prod.tf | 77 ---- .../networking/hub-and-spoke-vpn/outputs.tf | 45 -- .../networking/hub-and-spoke-vpn/variables.tf | 88 ---- .../hub-and-spoke-vpn/vpn-dev-r1.tf | 91 ---- .../hub-and-spoke-vpn/vpn-prod-r1.tf | 92 ----- 43 files changed, 3638 deletions(-) delete mode 100644 blueprints/networking/__need_fixing/README.md delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/README.md delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/consumer.tf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/main.tf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/squid.conf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/startup.sh delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy-psc/variables.tf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy/README.md delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy/main.tf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy/outputs.tf delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy/squid.png delete mode 100644 blueprints/networking/__need_fixing/filtering-proxy/variables.tf delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/Dockerfile delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/README.md delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/main.tf delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/outputs.tf delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/reverse-proxy.png delete mode 100644 blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/variables.tf delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/README.md delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/assets/Corefile delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/backend.tf.sample delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/diagram.png delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/main.tf delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/outputs.tf delete mode 100644 blueprints/networking/__need_fixing/onprem-google-access-dns/variables.tf delete mode 100644 blueprints/networking/hub-and-spoke-peering/README.md delete mode 100644 blueprints/networking/hub-and-spoke-peering/backend.tf.sample delete mode 100644 blueprints/networking/hub-and-spoke-peering/diagram-network.png delete mode 100644 blueprints/networking/hub-and-spoke-peering/diagram.png delete mode 100644 blueprints/networking/hub-and-spoke-peering/main.tf delete mode 100644 blueprints/networking/hub-and-spoke-peering/outputs.tf delete mode 100644 blueprints/networking/hub-and-spoke-peering/variables.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/README.md delete mode 100644 blueprints/networking/hub-and-spoke-vpn/backend.tf.sample delete mode 100644 blueprints/networking/hub-and-spoke-vpn/diagram.png delete mode 100644 blueprints/networking/hub-and-spoke-vpn/main.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/net-dev.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/net-landing.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/net-prod.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/outputs.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/variables.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/vpn-dev-r1.tf delete mode 100644 blueprints/networking/hub-and-spoke-vpn/vpn-prod-r1.tf diff --git a/blueprints/networking/__need_fixing/README.md b/blueprints/networking/__need_fixing/README.md deleted file mode 100644 index 44a0006d79..0000000000 --- a/blueprints/networking/__need_fixing/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Deprecated or unsupported blueprints - -The blueprints in this folder are either deprecated or need work on them. - -- nginx reverse proxy cluster needs tests and resolving a cycle -- filtering-proxy needs upstream `cloud-config-container/__need_fixing/squid` to be fixed diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/README.md b/blueprints/networking/__need_fixing/filtering-proxy-psc/README.md deleted file mode 100644 index db5149bc3a..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Network filtering with Squid with isolated VPCs using Private Service Connect - -This blueprint shows how to deploy a filtering HTTP proxy to restrict Internet access. Here we show one way to do this using isolated VPCs and Private Service Connect: - -- The `app` subnet hosts the consumer VMs that will have their Internet access tightly controlled by a non-caching filtering forward proxy. -- The `proxy` subnet hosts a Cloud NAT instance and a [Squid](http://www.squid-cache.org/) server. -- The `psc` subnet is reserved for the Private Service Connect. - -The reason for using Privat Service Connect in this setup is to have a common proxy setup between all environments without having to share a VPC between projects. This allows us to enforce the `compute.vmExternalIpAccess` [organization policy](https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints), which prevents the service projects from having external IPs, thus forcing all outbound Internet connections through the proxy. - -To allow Internet connectivity to the proxy subnet, a Cloud NAT instance is configured to allow usage from [that subnet only](https://cloud.google.com/nat/docs/set-up-manage-network-address-translation#specify_subnet_ranges_for_nat). All other subnets are not allowed to use the Cloud NAT instance. - -To simplify the usage of the proxy, a Cloud DNS private zone is created in each consumer VPC and the IP address of the proxy is exposed with the FQDN `proxy.internal`. In addition, system-wide `http_proxy` and `https_proxy` environment variables and an APT configuration are rolled out via a [startup script](startup.sh). - - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [prefix](variables.tf#L44) | Prefix used for resource names. | string | ✓ | | -| [project_id](variables.tf#L70) | Project id used for all resources. | string | ✓ | | -| [allowed_domains](variables.tf#L17) | List of domains allowed by the squid proxy. | list(string) | | […] | -| [cidrs](variables.tf#L28) | CIDR ranges for subnets. | map(string) | | {…} | -| [nat_logging](variables.tf#L38) | Enables Cloud NAT logging if not null, value is one of 'ERRORS_ONLY', 'TRANSLATIONS_ONLY', 'ALL'. | string | | "ERRORS_ONLY" | -| [project_create](variables.tf#L53) | Set to non null if project needs to be created. | object({…}) | | null | -| [region](variables.tf#L75) | Default region for resources. | string | | "europe-west1" | - - - -## Test - -```hcl -module "test" { - source = "./fabric/blueprints/networking/__need_fixing/filtering-proxy-psc" - prefix = "fabric" - project_create = { - billing_account = "123456-ABCDEF-123456" - parent = "folders/1234567890" - } - project_id = "test-project" -} -# tftest modules=13 resources=41 -``` diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/consumer.tf b/blueprints/networking/__need_fixing/filtering-proxy-psc/consumer.tf deleted file mode 100644 index 38849ee062..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/consumer.tf +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -############################################################################### -# Consumer project and VPC # -############################################################################### - -module "vpc-consumer" { - source = "../../../../modules/net-vpc" - project_id = module.project.project_id - name = "${var.prefix}-app" - subnets = [ - { - name = "${var.prefix}-app" - ip_cidr_range = var.cidrs.app - region = var.region - } - ] -} - -############################################################################### -# Test VM # -############################################################################### - -module "test-vm-consumer" { - source = "../../../../modules/compute-vm" - project_id = module.project.project_id - zone = "${var.region}-b" - name = "${var.prefix}-test-vm" - instance_type = "e2-micro" - tags = ["ssh"] - network_interfaces = [{ - network = module.vpc-consumer.self_link - subnetwork = module.vpc-consumer.subnet_self_links["${var.region}/${var.prefix}-app"] - nat = false - addresses = null - }] - service_account = { - auto_create = true - } - metadata = { - startup-script = templatefile("${path.module}/startup.sh", { proxy_url = "http://proxy.internal:3128" }) - } -} - -############################################################################### -# PSC Consumer # -############################################################################### - -resource "google_compute_address" "psc_endpoint_address" { - name = "${var.prefix}-psc-proxy-address" - project = module.project.project_id - address_type = "INTERNAL" - subnetwork = module.vpc-consumer.subnet_self_links["${var.region}/${var.prefix}-app"] - region = var.region -} - -resource "google_compute_forwarding_rule" "psc_ilb_consumer" { - name = "${var.prefix}-psc-proxy-fw-rule" - project = module.project.project_id - region = var.region - target = google_compute_service_attachment.service_attachment.id - load_balancing_scheme = "" - network = module.vpc-consumer.self_link - ip_address = google_compute_address.psc_endpoint_address.id -} - -############################################################################### -# DNS and Firewall # -############################################################################### - -module "private-dns" { - source = "../../../../modules/dns" - project_id = module.project.project_id - name = "${var.prefix}-internal" - zone_config = { - domain = "internal." - private = { - client_networks = [module.vpc-consumer.self_link] - } - } - recordsets = { - "A squid" = { ttl = 60, records = [google_compute_address.psc_endpoint_address.address] } - "CNAME proxy" = { ttl = 3600, records = ["squid.internal."] } - } -} - -module "firewall-consumer" { - source = "../../../../modules/net-vpc-firewall" - project_id = module.project.project_id - network = module.vpc-consumer.name -} diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/main.tf b/blueprints/networking/__need_fixing/filtering-proxy-psc/main.tf deleted file mode 100644 index ed35be3a99..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/main.tf +++ /dev/null @@ -1,229 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -############################################################################### -# Host project and VPC resources # -############################################################################### - -module "project" { - source = "../../../../modules/project" - project_create = var.project_create != null - billing_account = try(var.project_create.billing_account, null) - parent = try(var.project_create.parent, null) - name = var.project_id - services = [ - "dns.googleapis.com", - "compute.googleapis.com", - "logging.googleapis.com", - "monitoring.googleapis.com" - ] -} - -module "vpc" { - source = "../../../../modules/net-vpc" - project_id = module.project.project_id - name = "${var.prefix}-vpc" - subnets = [ - { - name = "proxy" - ip_cidr_range = var.cidrs.proxy - region = var.region - } - ] - subnets_psc = [ - { - name = "psc" - ip_cidr_range = var.cidrs.psc - region = var.region - } - ] -} - -module "firewall" { - source = "../../../../modules/net-vpc-firewall" - project_id = module.project.project_id - network = module.vpc.name - ingress_rules = { - allow-ingress-squid = { - description = "Allow squid ingress traffic" - source_ranges = [ - var.cidrs.psc, "35.191.0.0/16", "130.211.0.0/22" - ] - targets = [module.service-account-squid.email] - use_service_accounts = true - rules = [{ - protocol = "tcp" - ports = [3128] - }] - } - } -} - -module "nat" { - source = "../../../../modules/net-cloudnat" - project_id = module.project.project_id - region = var.region - name = "default" - router_network = module.vpc.name - config_source_subnets = "LIST_OF_SUBNETWORKS" - config_port_allocation = { - enable_endpoint_independent_mapping = false - enable_dynamic_port_allocation = true - # 64512/11 = 5864 . 11 is the number of usable IPs in the proxy subnet - min_ports_per_vm = 5864 - } - subnetworks = [ - { - self_link = module.vpc.subnet_self_links["${var.region}/proxy"] - config_source_ranges = ["ALL_IP_RANGES"] - secondary_ranges = null - } - ] - logging_filter = var.nat_logging -} - -############################################################################### -# PSC resources # -############################################################################### - -resource "google_compute_service_attachment" "service_attachment" { - name = "psc" - project = module.project.project_id - region = var.region - enable_proxy_protocol = true - connection_preference = "ACCEPT_MANUAL" - nat_subnets = [module.vpc.subnets_psc["${var.region}/psc"].self_link] - target_service = module.squid-ilb.forwarding_rule_self_links[""] - consumer_accept_lists { - project_id_or_num = module.project.project_id - connection_limit = 10 - } -} - -############################################################################### -# Squid resources # -############################################################################### - -module "service-account-squid" { - source = "../../../../modules/iam-service-account" - project_id = module.project.project_id - name = "svc-squid" - iam_project_roles = { - (module.project.project_id) = [ - "roles/logging.logWriter", - "roles/monitoring.metricWriter", - ] - } -} - -module "cos-squid" { - source = "../../../../modules/cloud-config-container/__need_fixing/squid" - allow = var.allowed_domains - clients = [var.cidrs.app] - squid_config = "${path.module}/squid.conf" - config_variables = { - psc_cidr = var.cidrs.psc - } -} - -module "squid-vm" { - source = "../../../../modules/compute-vm" - project_id = module.project.project_id - zone = "${var.region}-b" - name = "squid-vm" - instance_type = "e2-medium" - create_template = true - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region}/proxy"] - }] - boot_disk = { - initialize_params = { - image = "cos-cloud/cos-stable" - } - } - service_account = { - email = module.service-account-squid.email - } - metadata = { - user-data = module.cos-squid.cloud_config - google-logging-enabled = true - } -} - -module "squid-mig" { - source = "../../../../modules/compute-mig" - project_id = module.project.project_id - location = "${var.region}-b" - name = "squid-mig" - instance_template = module.squid-vm.template.self_link - target_size = 1 - auto_healing_policies = { - initial_delay_sec = 60 - } - autoscaler_config = { - max_replicas = 10 - min_replicas = 1 - cooldown_period = 30 - scaling_signals = { - cpu_utilization = { - target = 0.65 - } - } - } - health_check_config = { - enable_logging = true - tcp = { - port = 3128 - proxy_header = "PROXY_V1" - } - } - update_policy = { - minimal_action = "REPLACE" - type = "PROACTIVE" - max_surge = { - fixed = 3 - } - min_ready_sec = 60 - } -} - -module "squid-ilb" { - source = "../../../../modules/net-lb-int" - project_id = module.project.project_id - region = var.region - name = "squid-ilb" - service_label = "squid-ilb" - forwarding_rules_config = { - "" = { - ports = [3128] - } - } - vpc_config = { - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region}/proxy"] - } - backends = [{ - group = module.squid-mig.group_manager.instance_group - }] - health_check_config = { - enable_logging = true - tcp = { - port = 3128 - proxy_header = "PROXY_V1" - } - } -} diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/squid.conf b/blueprints/networking/__need_fixing/filtering-proxy-psc/squid.conf deleted file mode 100644 index 1d79645284..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/squid.conf +++ /dev/null @@ -1,60 +0,0 @@ -# bind to port 3128 and require PROXY protocol -http_port 0.0.0.0:3128 require-proxy-header - -# only proxy, don't cache -cache deny all - -# redirect all logs to /dev/stdout -logfile_rotate 0 -cache_log stdio:/dev/stdout -access_log stdio:/dev/stdout -cache_store_log stdio:/dev/stdout - -pid_filename /var/run/squid/squid.pid - -acl ssl_ports port 443 -acl safe_ports port 80 -acl safe_ports port 443 -acl CONNECT method CONNECT -acl to_metadata dst 169.254.169.254 -acl from_healthchecks src 130.211.0.0/22 35.191.0.0/16 -acl psc src ${psc_cidr} - -# read client CIDR ranges from clients.txt -acl clients src "/etc/squid/clients.txt" - -# read allowed domains from allowlist.txt -acl allowlist dstdomain "/etc/squid/allowlist.txt" - -# read denied domains from denylist.txt -acl denylist dstdomain "/etc/squid/denylist.txt" - -# allow PROXY protocol from the PSC subnet -proxy_protocol_access allow psc - -# allow PROXY protocol from the LB health checks -proxy_protocol_access allow from_healthchecks - -# deny access to anything other than ports 80 and 443 -http_access deny !safe_ports - -# deny CONNECT if connection is not using ssl -http_access deny CONNECT !ssl_ports - -# deny access to cachemgr -http_access deny manager - -# deny access to localhost through the proxy -http_access deny to_localhost - -# deny access to the local metadata server through the proxy -http_access deny to_metadata - -# deny connection from allowed clients to any denied domains -http_access deny clients denylist - -# allow connection from allowed clients only to the allowed domains -http_access allow clients allowlist - -# deny everything else -http_access ${default_action} all diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/startup.sh b/blueprints/networking/__need_fixing/filtering-proxy-psc/startup.sh deleted file mode 100644 index 904c425508..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/startup.sh +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -cat < /etc/apt/apt.conf.d/proxy.conf -Acquire { - HTTP::proxy "${proxy_url}"; - HTTPS::proxy "${proxy_url}"; -} -EOF - -cat < /etc/profile.d/proxy.sh -export http_proxy="${proxy_url}" -export https_proxy="${proxy_url}" -export no_proxy="127.0.0.1,localhost" -EOF diff --git a/blueprints/networking/__need_fixing/filtering-proxy-psc/variables.tf b/blueprints/networking/__need_fixing/filtering-proxy-psc/variables.tf deleted file mode 100644 index 6e8216512b..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy-psc/variables.tf +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -variable "allowed_domains" { - description = "List of domains allowed by the squid proxy." - type = list(string) - default = [ - ".google.com", - ".github.com", - ".fastlydns.net", - ".debian.org" - ] -} - -variable "cidrs" { - description = "CIDR ranges for subnets." - type = map(string) - default = { - app = "10.0.0.0/24" - proxy = "10.0.2.0/28" - psc = "10.0.3.0/28" - } -} - -variable "nat_logging" { - description = "Enables Cloud NAT logging if not null, value is one of 'ERRORS_ONLY', 'TRANSLATIONS_ONLY', 'ALL'." - type = string - default = "ERRORS_ONLY" -} - -variable "prefix" { - description = "Prefix used for resource names." - type = string - validation { - condition = var.prefix != "" - error_message = "Prefix cannot be empty." - } -} - -variable "project_create" { - description = "Set to non null if project needs to be created." - type = object({ - billing_account = string - parent = string - }) - default = null - validation { - condition = ( - var.project_create == null - ? true - : can(regex("(organizations|folders)/[0-9]+", var.project_create.parent)) - ) - error_message = "Project parent must be of the form folders/folder_id or organizations/organization_id." - } -} - -variable "project_id" { - description = "Project id used for all resources." - type = string -} - -variable "region" { - description = "Default region for resources." - type = string - default = "europe-west1" -} diff --git a/blueprints/networking/__need_fixing/filtering-proxy/README.md b/blueprints/networking/__need_fixing/filtering-proxy/README.md deleted file mode 100644 index b2c1d38ef0..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Network filtering with Squid - -This blueprint shows how to deploy a filtering HTTP proxy to restrict Internet access. Here we show one way to do this using a VPC with two subnets: - -- The `apps` subnet hosts the VMs that will have their Internet access tightly controlled by a non-caching filtering forward proxy. -- The `proxy` subnet hosts a Cloud NAT instance and a [Squid](http://www.squid-cache.org/) server. - -The VPC is a Shared VPC and all the service projects will be located under a folder enforcing the `compute.vmExternalIpAccess` [organization policy](https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints). This prevents the service projects from having external IPs, thus forcing all outbound Internet connections through the proxy. - -To allow Internet connectivity to the proxy subnet, a Cloud NAT instance is configured to allow usage from [that subnet only](https://cloud.google.com/nat/docs/set-up-manage-network-address-translation#specify_subnet_ranges_for_nat). All other subnets are not allowed to use the Cloud NAT instance. - -To simplify the usage of the proxy, a Cloud DNS private zone is created and the IP address of the proxy is exposed with the FQDN `proxy.internal`. - -You can optionally deploy the Squid server as [Managed Instance Group](https://cloud.google.com/compute/docs/instance-groups) by setting the `mig` option to `true`. This option defaults to `false` which results in a standalone VM. - -![High-level diagram](squid.png "High-level diagram") - - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [billing_account](variables.tf#L26) | Billing account id used as default for new projects. | string | ✓ | | -| [prefix](variables.tf#L52) | Prefix used for resource names. | string | ✓ | | -| [root_node](variables.tf#L67) | Root node for the new hierarchy, either 'organizations/org_id' or 'folders/folder_id'. | string | ✓ | | -| [allowed_domains](variables.tf#L17) | List of domains allowed by the squid proxy. | list(string) | | […] | -| [cidrs](variables.tf#L31) | CIDR ranges for subnets. | map(string) | | {…} | -| [mig](variables.tf#L40) | Enables the creation of an autoscaling managed instance group of squid instances. | bool | | false | -| [nat_logging](variables.tf#L46) | Enables Cloud NAT logging if not null, value is one of 'ERRORS_ONLY', 'TRANSLATIONS_ONLY', 'ALL'. | string | | "ERRORS_ONLY" | -| [region](variables.tf#L61) | Default region for resources. | string | | "europe-west1" | - -## Outputs - -| name | description | sensitive | -|---|---|:---:| -| [squid-address](outputs.tf#L17) | IP address of the Squid proxy. | | - - - -## Test - -```hcl -module "test1" { - source = "./fabric/blueprints/networking/__need_fixing/filtering-proxy" - billing_account = "123456-123456-123456" - mig = true - prefix = "fabric" - root_node = "folders/123456789" -} -# tftest modules=14 resources=38 -``` - -```hcl -module "test2" { - source = "./fabric/blueprints/networking/__need_fixing/filtering-proxy" - billing_account = "123456-123456-123456" - mig = false - prefix = "fabric" - root_node = "folders/123456789" -} -# tftest modules=12 resources=32 -``` diff --git a/blueprints/networking/__need_fixing/filtering-proxy/main.tf b/blueprints/networking/__need_fixing/filtering-proxy/main.tf deleted file mode 100644 index d8036cb243..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy/main.tf +++ /dev/null @@ -1,281 +0,0 @@ -/** - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -locals { - squid_address = ( - var.mig - ? module.squid-ilb.0.forwarding_rule_addresses[""] - : module.squid-vm.internal_ip - ) -} - -############################################################################### -# Folder with network-related resources # -############################################################################### - -module "folder-netops" { - source = "../../../../modules/folder" - parent = var.root_node - name = "netops" -} - -############################################################################### -# Host project and shared VPC resources # -############################################################################### - -module "project-host" { - source = "../../../../modules/project" - billing_account = var.billing_account - name = "host" - parent = module.folder-netops.id - prefix = var.prefix - services = [ - "compute.googleapis.com", - "dns.googleapis.com", - "logging.googleapis.com" - ] - shared_vpc_host_config = { - enabled = true - } -} - -module "vpc" { - source = "../../../../modules/net-vpc" - project_id = module.project-host.project_id - name = "vpc" - subnets = [ - { - name = "apps" - ip_cidr_range = var.cidrs.apps - region = var.region - }, - { - name = "proxy" - ip_cidr_range = var.cidrs.proxy - region = var.region - } - ] -} - -module "firewall" { - source = "../../../../modules/net-vpc-firewall" - project_id = module.project-host.project_id - network = module.vpc.name - ingress_rules = { - allow-ingress-squid = { - description = "Allow squid ingress traffic" - source_ranges = [ - var.cidrs.apps, "35.191.0.0/16", "130.211.0.0/22" - ] - targets = [module.service-account-squid.email] - use_service_accounts = true - rules = [{ - protocol = "tcp" - ports = [3128] - }] - } - } -} - -module "nat" { - source = "../../../../modules/net-cloudnat" - project_id = module.project-host.project_id - region = var.region - name = "default" - router_network = module.vpc.name - config_source_subnets = "LIST_OF_SUBNETWORKS" - # 64512/11 = 5864 . 11 is the number of usable IPs in the proxy subnet - config_port_allocation = { - enable_dynamic_port_allocation = true - enable_endpoint_independent_mapping = false - min_ports_per_vm = 5864 - } - subnetworks = [ - { - self_link = module.vpc.subnet_self_links["${var.region}/proxy"] - config_source_ranges = ["ALL_IP_RANGES"] - secondary_ranges = null - } - ] - logging_filter = var.nat_logging -} - -module "private-dns" { - source = "../../../../modules/dns" - project_id = module.project-host.project_id - name = "internal" - zone_config = { - domain = "internal." - private = { - client_networks = [module.vpc.self_link] - } - } - recordsets = { - "A squid" = { ttl = 60, records = [local.squid_address] } - "CNAME proxy" = { ttl = 3600, records = ["squid.internal."] } - } -} - -############################################################################### -# Squid resources # -############################################################################### - -module "service-account-squid" { - source = "../../../../modules/iam-service-account" - project_id = module.project-host.project_id - name = "svc-squid" - iam_project_roles = { - (module.project-host.project_id) = [ - "roles/logging.logWriter", - "roles/monitoring.metricWriter", - ] - } -} - -module "cos-squid" { - source = "../../../../modules/cloud-config-container/__need_fixing/squid" - allow = var.allowed_domains - clients = [var.cidrs.apps] -} - -module "squid-vm" { - source = "../../../../modules/compute-vm" - project_id = module.project-host.project_id - zone = "${var.region}-b" - name = "squid-vm" - instance_type = "e2-medium" - create_template = var.mig - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region}/proxy"] - }] - boot_disk = { - initialize_params = { - image = "cos-cloud/cos-stable" - } - } - service_account = { - email = module.service-account-squid.email - } - metadata = { - user-data = module.cos-squid.cloud_config - } -} - -module "squid-mig" { - count = var.mig ? 1 : 0 - source = "../../../../modules/compute-mig" - project_id = module.project-host.project_id - location = "${var.region}-b" - name = "squid-mig" - instance_template = module.squid-vm.template.self_link - target_size = 1 - auto_healing_policies = { - initial_delay_sec = 60 - } - autoscaler_config = { - max_replicas = 10 - min_replicas = 1 - cooldown_period = 30 - scaling_signals = { - cpu_utilization = { - target = 0.65 - } - } - } - health_check_config = { - enable_logging = true - tcp = { - port = 3128 - } - } -} - -module "squid-ilb" { - count = var.mig ? 1 : 0 - source = "../../../../modules/net-lb-int" - project_id = module.project-host.project_id - region = var.region - name = "squid-ilb" - service_label = "squid-ilb" - forwarding_rules_config = { - "" = { - ports = [3128] - } - } - vpc_config = { - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region}/proxy"] - } - backends = [{ - group = module.squid-mig.0.group_manager.instance_group - }] - health_check_config = { - enable_logging = true - tcp = { - port = 3128 - } - } -} - -############################################################################### -# Service project # -############################################################################### - -module "folder-apps" { - source = "../../../../modules/folder" - parent = var.root_node - name = "apps" - org_policies = { - # prevent VMs with public IPs in the apps folder - "compute.vmExternalIpAccess" = { - rules = [{ deny = { all = true } }] - } - } -} - -module "project-app" { - source = "../../../../modules/project" - billing_account = var.billing_account - name = "app1" - parent = module.folder-apps.id - prefix = var.prefix - services = ["compute.googleapis.com"] - shared_vpc_service_config = { - host_project = module.project-host.project_id - service_identity_iam = { - "roles/compute.networkUser" = ["cloudservices"] - } - } -} - -module "test-vm" { - source = "../../../../modules/compute-vm" - project_id = module.project-app.project_id - zone = "${var.region}-b" - name = "test-vm" - instance_type = "e2-micro" - tags = ["ssh"] - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region}/apps"] - nat = false - addresses = null - }] - service_account = { - auto_create = true - } -} diff --git a/blueprints/networking/__need_fixing/filtering-proxy/outputs.tf b/blueprints/networking/__need_fixing/filtering-proxy/outputs.tf deleted file mode 100644 index 687ce3cd50..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy/outputs.tf +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -output "squid-address" { - description = "IP address of the Squid proxy." - value = local.squid_address -} diff --git a/blueprints/networking/__need_fixing/filtering-proxy/squid.png b/blueprints/networking/__need_fixing/filtering-proxy/squid.png deleted file mode 100644 index 584bd47da35c7e1f3a29c9d4188a97977403c578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53091 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 axI+9{E_ekcLf3!?|4t}rDi+II1pW_+;yZ5u diff --git a/blueprints/networking/__need_fixing/filtering-proxy/variables.tf b/blueprints/networking/__need_fixing/filtering-proxy/variables.tf deleted file mode 100644 index a578eb1281..0000000000 --- a/blueprints/networking/__need_fixing/filtering-proxy/variables.tf +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -variable "allowed_domains" { - description = "List of domains allowed by the squid proxy." - type = list(string) - default = [ - ".google.com", - ".github.com" - ] -} - -variable "billing_account" { - description = "Billing account id used as default for new projects." - type = string -} - -variable "cidrs" { - description = "CIDR ranges for subnets." - type = map(string) - default = { - apps = "10.0.0.0/24" - proxy = "10.0.1.0/28" - } -} - -variable "mig" { - description = "Enables the creation of an autoscaling managed instance group of squid instances." - type = bool - default = false -} - -variable "nat_logging" { - description = "Enables Cloud NAT logging if not null, value is one of 'ERRORS_ONLY', 'TRANSLATIONS_ONLY', 'ALL'." - type = string - default = "ERRORS_ONLY" -} - -variable "prefix" { - description = "Prefix used for resource names." - type = string - validation { - condition = var.prefix != "" - error_message = "Prefix cannot be empty." - } -} - -variable "region" { - description = "Default region for resources." - type = string - default = "europe-west1" -} - -variable "root_node" { - description = "Root node for the new hierarchy, either 'organizations/org_id' or 'folders/folder_id'." - type = string -} diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/Dockerfile b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/Dockerfile deleted file mode 100644 index 6da90b5163..0000000000 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM marketplace.gcr.io/google/debian11 - -RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y curl gnupg2 -RUN curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh -RUN bash add-google-cloud-ops-agent-repo.sh --also-install -RUN rm -f add-google-cloud-ops-agent-repo.sh - -RUN echo '#!/bin/bash' > /entrypoint.sh -RUN echo 'cd /tmp' >> /entrypoint.sh -RUN echo '/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=otel -in /etc/google-cloud-ops-agent/config.yaml' >> /entrypoint.sh -RUN echo '/opt/google-cloud-ops-agent/subagents/opentelemetry-collector/otelopscol --config=/tmp/otel.yaml --feature-gates=exporter.googlecloud.OTLPDirect' >> /entrypoint.sh -RUN chmod +x /entrypoint.sh - -ENTRYPOINT /entrypoint.sh -CMD [] \ No newline at end of file diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/README.md b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/README.md deleted file mode 100644 index 6e469a8db0..0000000000 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Nginx-based reverse proxy cluster - -This blueprint shows how to deploy an autoscaling reverse proxy cluster using Nginx, based on regional Managed Instance Groups. - -![High-level diagram](reverse-proxy.png "High-level diagram") - -The autoscaling is driven by Nginx current connections metric, sent by Cloud Ops Agent. - -The example is for Nginx, but it could be easily adapted to any other reverse proxy software (eg. Squid, Varnish, etc). - -## Ops Agent image - -There is a simple [`Dockerfile`](Dockerfile) available for building Ops Agent to be run inside the ContainerOS instance. Build the container, push it to your Container/Artifact Repository and set the `ops_agent_image` to point to the image you built. - - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [autoscaling_metric](variables.tf#L31) | Definition of metric to use for scaling. | object({…} | ✓ | | -| [prefix](variables.tf#L94) | Prefix used for resource names. | string | ✓ | | -| [project_name](variables.tf#L112) | Name of an existing project or of the new project. | string | ✓ | | -| [autoscaling](variables.tf#L17) | Autoscaling configuration for the instance group. | object({…}) | | {…} | -| [backends](variables.tf#L50) | Nginx locations configurations to proxy traffic to. | string | | "<<-EOT…EOT" | -| [cidrs](variables.tf#L62) | Subnet IP CIDR ranges. | map(string) | | {…} | -| [network](variables.tf#L70) | Network name. | string | | "reverse-proxy-vpc" | -| [network_create](variables.tf#L76) | Create network or use existing one. | bool | | true | -| [nginx_image](variables.tf#L82) | Nginx container image to use. | string | | "gcr.io/cloud-marketplace/google/nginx1:latest" | -| [ops_agent_image](variables.tf#L88) | Google Cloud Ops Agent container image to use. | string | | "gcr.io/sfans-hub-project-d647/ops-agent:latest" | -| [project_create](variables.tf#L103) | Parameters for the creation of the new project. | object({…}) | | null | -| [region](variables.tf#L117) | Default region for resources. | string | | "europe-west4" | -| [subnetwork](variables.tf#L123) | Subnetwork name. | string | | "gce" | -| [tls](variables.tf#L129) | Also offer reverse proxying with TLS (self-signed certificate). | bool | | false | - -## Outputs - -| name | description | sensitive | -|---|---|:---:| -| [load_balancer_url](outputs.tf#L17) | Load balancer for the reverse proxy instance group. | | - - diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/main.tf b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/main.tf deleted file mode 100644 index c9a7614bae..0000000000 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/main.tf +++ /dev/null @@ -1,330 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -locals { - monitoring_agent_unit = <<-EOT - [Unit] - Description=Start monitoring agent container - After=gcr-online.target docker.socket - Wants=gcr-online.target docker.socket docker-events-collector.service - - [Service] - Environment="HOME=/home/opsagent" - ExecStartPre=/usr/bin/docker-credential-gcr configure-docker - ExecStart=/usr/bin/docker run --rm --name=monitoring-agent \ - --network host \ - -v /etc/google-cloud-ops-agent/config.yaml:/etc/google-cloud-ops-agent/config.yaml \ - ${var.ops_agent_image} - ExecStop=/usr/bin/docker stop monitoring-agent - EOT - monitoring_agent_config = <<-EOT - logging: - service: - pipelines: - default_pipeline: - receivers: [] - metrics: - receivers: - hostmetrics: - type: hostmetrics - nginx: - type: nginx - collection_interval: 10s - stub_status_url: http://localhost/healthz - service: - pipelines: - default_pipeline: - receivers: - - hostmetrics - - nginx - EOT - nginx_config = <<-EOT - server { - listen 80; - server_name HOSTNAME localhost; - %{if var.tls} - listen 443 ssl; - ssl_certificate /etc/ssl/self-signed.crt; - ssl_certificate_key /etc/ssl/self-signed.key; - %{endif} - - keepalive_timeout 650s; - keepalive_requests 10000; - - proxy_connect_timeout 60s; - proxy_read_timeout 5m; - proxy_send_timeout 5m; - - error_log stderr; - access_log /dev/stdout combined; - - set_real_ip_from ${module.glb.address}/32; - set_real_ip_from 35.191.0.0/16; - set_real_ip_from 130.211.0.0/22; - real_ip_header X-Forwarded-For; - real_ip_recursive off; - - location /healthz { - stub_status on; - access_log off; - allow 127.0.0.1; - allow 35.191.0.0/16; - allow 130.211.0.0/22; - deny all; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } - - ${var.backends} - } - EOT - nginx_files = { - "/etc/systemd/system/monitoring-agent.service" = { - content = local.monitoring_agent_unit - owner = "root" - permissions = "0644" - } - "/etc/nginx/conf.d/default.conf" = { - content = local.nginx_config - owner = "root" - permissions = "0644" - } - "/etc/google-cloud-ops-agent/config.yaml" = { - content = local.monitoring_agent_config - owner = "root" - permissions = "0644" - } - } - users = [ - { - username = "opsagent" - uid = 2001 - } - ] -} - -module "project" { - source = "../../../modules/project" - billing_account = ( - var.project_create != null - ? var.project_create.billing_account_id - : null - ) - name = var.project_name - parent = (var.project_create != null - ? var.project_create.parent - : null - ) - project_create = var.project_create != null - services = [ - "cloudresourcemanager.googleapis.com", - "compute.googleapis.com", - "iam.googleapis.com", - "logging.googleapis.com", - "monitoring.googleapis.com", - ] -} - -module "vpc" { - source = "../../../modules/net-vpc" - project_id = module.project.project_id - name = var.network - subnets = [{ - name = var.subnetwork - ip_cidr_range = var.cidrs[var.subnetwork] - region = var.region - }] - vpc_create = var.network_create -} - -module "firewall" { - source = "../../../modules/net-vpc-firewall" - project_id = module.project.project_id - network = module.vpc.name - ingress_rules = { - "${var.prefix}-allow-http-to-proxy-cluster" = { - description = "Allow Nginx HTTP(S) ingress traffic" - source_ranges = [ - var.cidrs[var.subnetwork], "35.191.0.0/16", "130.211.0.0/22" - ] - targets = [module.service-account-proxy.email] - use_service_accounts = true - rules = [{ protocol = "tcp", ports = [80, 443] }] - } - "${var.prefix}-allow-iap-ssh" = { - description = "Allow Nginx SSH traffic from IAP" - source_ranges = ["35.235.240.0/20"] - targets = [module.service-account-proxy.email] - use_service_accounts = true - rules = [{ protocol = "tcp", ports = [22] }] - } - } -} - -module "nat" { - source = "../../../modules/net-cloudnat" - project_id = module.project.project_id - region = var.region - name = "${var.prefix}-nat" - config_min_ports_per_vm = 4000 - config_source_subnets = "LIST_OF_SUBNETWORKS" - logging_filter = "ALL" - router_network = module.vpc.name - subnetworks = [{ - self_link = ( - module.vpc.subnet_self_links[format("%s/%s", var.region, var.subnetwork)] - ) - config_source_ranges = ["ALL_IP_RANGES"] - secondary_ranges = null - }] -} - -############################################################################### -# Proxy resources # -############################################################################### - -module "service-account-proxy" { - source = "../../../modules/iam-service-account" - project_id = module.project.project_id - name = "${var.prefix}-reverse-proxy" - iam_project_roles = { - (module.project.project_id) = [ - "roles/logging.logWriter", - "roles/monitoring.metricWriter", - "roles/storage.objectViewer", // For pulling the Ops Agent image - ] - } -} - -module "cos-nginx" { - count = !var.tls ? 1 : 0 - source = "../../../modules/cloud-config-container/nginx" - image = var.nginx_image - files = local.nginx_files - users = local.users - runcmd_pre = ["sed -i \"s/HOSTNAME/$${HOSTNAME}/\" /etc/nginx/conf.d/default.conf"] - runcmd_post = ["systemctl start monitoring-agent"] -} - -module "cos-nginx-tls" { - count = var.tls ? 1 : 0 - source = "../../../modules/cloud-config-container/nginx-tls" - nginx_image = var.nginx_image - files = local.nginx_files - users = local.users - runcmd_post = ["systemctl start monitoring-agent"] -} - -module "mig-proxy" { - source = "../../../modules/compute-mig" - project_id = module.project.project_id - location = var.region - name = "${var.prefix}-proxy-cluster" - named_ports = { - http = "80" - https = "443" - } - autoscaler_config = var.autoscaling == null ? null : { - min_replicas = var.autoscaling.min_replicas - max_replicas = var.autoscaling.max_replicas - cooldown_period = var.autoscaling.cooldown_period - cpu_utilization_target = null - load_balancing_utilization_target = null - metric = var.autoscaling_metric - } - update_policy = { - minimal_action = "REPLACE" - type = "PROACTIVE" - min_ready_sec = 30 - max_surge = { - fixed = 1 - } - } - instance_template = module.proxy-vm.template.self_link - health_check_config = { - type = "http" - check = { - port = 80 - request_path = "/healthz" - } - config = { - check_interval_sec = 10 - healthy_threshold = 1 - unhealthy_threshold = 1 - timeout_sec = 10 - } - logging = true - } - auto_healing_policies = { - health_check = module.mig-proxy.health_check.self_link - initial_delay_sec = 60 - } -} - -module "proxy-vm" { - source = "../../../modules/compute-vm" - project_id = module.project.project_id - zone = format("%s-c", var.region) - name = "nginx-test-vm" - instance_type = "e2-standard-2" - tags = ["proxy-cluster"] - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links[format("%s/%s", var.region, var.subnetwork)] - }] - boot_disk = { - initialize_params = { - image = "projects/cos-cloud/global/images/family/cos-stable" - } - } - create_template = true - metadata = { - user-data = !var.tls ? module.cos-nginx.0.cloud_config : module.cos-nginx-tls.0.cloud_config - google-logging-enabled = true - } - service_account = { - email = module.service-account-proxy.email - } -} - -module "glb" { - source = "../../../modules/net-lb-app-ext" - project_id = module.project.project_id - name = "${var.prefix}-reverse-proxy-glb" - health_check_configs = { - default = { - check_interval_sec = 10 - healthy_threshold = 1 - unhealthy_threshold = 1 - timeout_sec = 10 - http = { - port_specification = "USE_NAMED_PORT" - port_name = "http" - request_path = "/healthz" - } - } - } - backend_service_configs = { - default = { - backends = [{ backend = module.mig-proxy.group_manager.instance_group }] - port_name = !var.tls ? "http" : "https" - protocol = !var.tls ? "HTTP" : "HTTPS" - } - } -} diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/outputs.tf b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/outputs.tf deleted file mode 100644 index 1e0fda0045..0000000000 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/outputs.tf +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -output "load_balancer_url" { - description = "Load balancer for the reverse proxy instance group." - value = format("http%s://%s/", var.tls ? "s" : "", module.glb.address) -} diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/reverse-proxy.png b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/reverse-proxy.png deleted file mode 100644 index dd0c8e622362823ba34fa415a24a798cc7105f22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107701 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
=tC%G74DcCN-JM>Q%P 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 diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/variables.tf b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/variables.tf deleted file mode 100644 index 286bbcbebb..0000000000 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/variables.tf +++ /dev/null @@ -1,133 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -variable "autoscaling" { - description = "Autoscaling configuration for the instance group." - type = object({ - min_replicas = number - max_replicas = number - cooldown_period = number - }) - default = { - min_replicas = 1 - max_replicas = 10 - cooldown_period = 30 - } -} - -variable "autoscaling_metric" { - description = "Definition of metric to use for scaling." - type = object({ - name = string - single_instance_assignment = number - target = number - type = string # GAUGE, DELTA_PER_SECOND, DELTA_PER_MINUTE - filter = string - }) - - default = { - name = "workload.googleapis.com/nginx.connections_current" - single_instance_assignment = null - target = 10 # Target 10 connections per instance, just for demonstration purposes - type = "GAUGE" - filter = null - } -} - -variable "backends" { - description = "Nginx locations configurations to proxy traffic to." - type = string - default = <<-EOT - location / { - proxy_pass http://10.0.16.58:80; - proxy_http_version 1.1; - proxy_set_header Connection ""; - } - EOT -} - -variable "cidrs" { - description = "Subnet IP CIDR ranges." - type = map(string) - default = { - gce = "10.0.16.0/24" - } -} - -variable "network" { - description = "Network name." - type = string - default = "reverse-proxy-vpc" -} - -variable "network_create" { - description = "Create network or use existing one." - type = bool - default = true -} - -variable "nginx_image" { - description = "Nginx container image to use." - type = string - default = "gcr.io/cloud-marketplace/google/nginx1:latest" -} - -variable "ops_agent_image" { - description = "Google Cloud Ops Agent container image to use." - type = string - default = "gcr.io/sfans-hub-project-d647/ops-agent:latest" -} - -variable "prefix" { - description = "Prefix used for resource names." - type = string - validation { - condition = var.prefix != "" - error_message = "Prefix cannot be empty." - } -} - -variable "project_create" { - description = "Parameters for the creation of the new project." - type = object({ - billing_account_id = string - parent = string - }) - default = null -} - -variable "project_name" { - description = "Name of an existing project or of the new project." - type = string -} - -variable "region" { - description = "Default region for resources." - type = string - default = "europe-west4" -} - -variable "subnetwork" { - description = "Subnetwork name." - type = string - default = "gce" -} - -variable "tls" { - description = "Also offer reverse proxying with TLS (self-signed certificate)." - type = bool - default = false -} diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/README.md b/blueprints/networking/__need_fixing/onprem-google-access-dns/README.md deleted file mode 100644 index deb3593f79..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/README.md +++ /dev/null @@ -1,226 +0,0 @@ -# On-prem DNS and Google Private Access - -This blueprint leverages the on prem in a box module to bootstrap an emulated on-premises environment on GCP, then connects it via VPN and sets up BGP and DNS so that several specific features can be tested: - -- [Cloud DNS forwarding zone](https://cloud.google.com/dns/docs/overview#fz-targets) to on-prem -- DNS forwarding from on-prem via a [Cloud DNS inbound policy](https://cloud.google.com/dns/docs/policies#create-in) -- [Private Access for on-premises hosts](https://cloud.google.com/vpc/docs/configure-private-google-access-hybrid) - -The blueprint has been purposefully kept simple to show how to use and wire the on-prem module, but it lends itself well to experimenting and can be combined with the other [infrastructure blueprints](../) in this repository to test different GCP networking patterns in connection to on-prem. This is the high level diagram: - -![High-level diagram](diagram.png "High-level diagram") - -## Managed resources and services - -This sample creates several distinct groups of resources: - -- one VPC with two regions -- one set of firewall rules -- one Cloud NAT configuration per region -- one test instance on each region -- one service account for the test instances -- one service account for the onprem instance -- two dynamic VPN gateways in each of the regions with a single tunnel -- two DNS zones (private and forwarding) and a DNS inbound policy -- one emulated on-premises environment in a single GCP instance - -## Cloud DNS inbound forwarder entry point - -The Cloud DNS inbound policy reserves an IP address in the VPC, which is used by the on-prem DNS server to forward queries to Cloud DNS. This address needs of course to be explicitly set in the on-prem DNS configuration (see below for details), but since there's currently no way for Terraform to find the exact address (cf [Google provider issue](https://github.com/terraform-providers/terraform-provider-google/issues/3753)), the following manual workaround needs to be applied. - -### Find out the forwarder entry point address - -Run this gcloud command to [find out the address assigned to the inbound forwarder](https://cloud.google.com/dns/docs/policies#list-in-entrypoints): - -```bash -gcloud compute addresses list --project [your project id] -``` - -In the list of addresses, look for the address with purpose `DNS_RESOLVER` in the subnet `to-onprem-default`. If its IP address is `10.0.0.2` it matches the default value in the Terraform `forwarder_address` variable, which means you're all set. If it's different, proceed to the next step. - -### Update the forwarder address variable and recreate on-prem - -If the forwarder address does not match the Terraform variable, add the correct value in your `terraform.tfvars` (or change the default value in `variables.tf`), then taint the onprem instance and apply to recreate it with the correct value in the DNS configuration: - -```bash -tf apply -tf taint 'module.vm-onprem.google_compute_instance.default["onprem-1"]' -tf apply -``` - -## CoreDNS configuration for on-premises - -The on-prem module uses a CoreDNS container to expose its DNS service, configured with foru distinct blocks: - -- the onprem block serving static records for the `onprem.example.com` zone that map to each of the on-prem containers -- the forwarding block for the `gcp.example.com` zone and for Google Private Access, that map to the IP address of the Cloud DNS inbound policy -- the `google.internal` block that exposes to containers a name for the instance metadata address -- the default block that forwards to Google public DNS resolvers - -This is the CoreDNS configuration: - -```coredns -onprem.example.com { - root /etc/coredns - hosts onprem.hosts - log - errors -} -gcp.example.com googleapis.com { - forward . ${resolver_address} - log - errors -} -google.internal { - hosts { - 169.254.169.254 metadata.google.internal - } -} -. { - forward . 8.8.8.8 - log - errors -} -``` - -## Testing - -### Onprem to cloud - -```bash -# check containers are running -sudo docker ps - -# connect to the onprem instance -gcloud compute ssh onprem-1 - -# check that the VPN tunnels are up -sudo docker exec -it onprem_vpn_1 ipsec statusall - -Status of IKE charon daemon (strongSwan 5.8.1, Linux 5.4.0-1029-gcp, x86_64): - uptime: 6 minutes, since Nov 30 08:42:08 2020 - worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 8 - loaded plugins: charon aesni mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp curve25519 xcbc cmac curl sqlite attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-sim eap-aka eap-aka-3gpp2 eap-simaka-pseudonym eap-simaka-reauth eap-md5 eap-mschapv2 eap-radius eap-tls xauth-generic xauth-eap dhcp unity counters -Listening IP addresses: - 10.0.16.2 - 169.254.1.2 - 169.254.2.2 -Connections: - gcp: %any...35.233.104.67,0.0.0.0/0,::/0 IKEv2, dpddelay=30s - gcp: local: uses pre-shared key authentication - gcp: remote: [35.233.104.67] uses pre-shared key authentication - gcp: child: 0.0.0.0/0 === 0.0.0.0/0 TUNNEL, dpdaction=restart - gcp2: %any...35.246.101.51,0.0.0.0/0,::/0 IKEv2, dpddelay=30s - gcp2: local: uses pre-shared key authentication - gcp2: remote: [35.246.101.51] uses pre-shared key authentication - gcp2: child: 0.0.0.0/0 === 0.0.0.0/0 TUNNEL, dpdaction=restart -Security Associations (2 up, 0 connecting): - gcp2[4]: ESTABLISHED 6 minutes ago, 10.0.16.2[34.76.57.103]...35.246.101.51[35.246.101.51] - gcp2[4]: IKEv2 SPIs: 227cb2c52085a743_i 13b18b0ad5d4de2b_r*, pre-shared key reauthentication in 9 hours - gcp2[4]: IKE proposal: AES_GCM_16_256/PRF_HMAC_SHA2_512/MODP_2048 - gcp2{4}: INSTALLED, TUNNEL, reqid 2, ESP in UDP SPIs: cb6fdb84_i eea28dee_o - gcp2{4}: AES_GCM_16_256, 3298 bytes_i, 3051 bytes_o (48 pkts, 3s ago), rekeying in 2 hours - gcp2{4}: 0.0.0.0/0 === 0.0.0.0/0 - gcp[3]: ESTABLISHED 6 minutes ago, 10.0.16.2[34.76.57.103]...35.233.104.67[35.233.104.67] - gcp[3]: IKEv2 SPIs: e2cffed5395b63dd_i 99f343468625507c_r*, pre-shared key reauthentication in 9 hours - gcp[3]: IKE proposal: AES_GCM_16_256/PRF_HMAC_SHA2_512/MODP_2048 - gcp{3}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c3f09701_i 4e8cc8d5_o - gcp{3}: AES_GCM_16_256, 3438 bytes_i, 3135 bytes_o (49 pkts, 8s ago), rekeying in 2 hours - gcp{3}: 0.0.0.0/0 === 0.0.0.0/0 - -# check that the BGP sessions works and the advertised routes are set -sudo docker exec -it onprem_bird_1 ip route -default via 10.0.16.1 dev eth0 -10.0.0.0/24 proto bird src 10.0.16.2 - nexthop via 169.254.1.1 dev vti0 weight 1 - nexthop via 169.254.2.1 dev vti1 weight 1 -10.0.16.0/24 dev eth0 proto kernel scope link src 10.0.16.2 -10.10.0.0/24 proto bird src 10.0.16.2 - nexthop via 169.254.1.1 dev vti0 weight 1 - nexthop via 169.254.2.1 dev vti1 weight 1 -35.199.192.0/19 proto bird src 10.0.16.2 - nexthop via 169.254.1.1 dev vti0 weight 1 - nexthop via 169.254.2.1 dev vti1 weight 1 -169.254.1.0/30 dev vti0 proto kernel scope link src 169.254.1.2 -169.254.2.0/30 dev vti1 proto kernel scope link src 169.254.2.2 -199.36.153.4/30 proto bird src 10.0.16.2 - nexthop via 169.254.1.1 dev vti0 weight 1 - nexthop via 169.254.2.1 dev vti1 weight 1 -199.36.153.8/30 proto bird src 10.0.16.2 - nexthop via 169.254.1.1 dev vti0 weight 1 - nexthop via 169.254.2.1 dev vti1 weight 1 - - -# get a shell on the toolbox container -sudo docker exec -it onprem_toolbox_1 sh - -# test pinging the IP address of the test instances (check outputs for it) -ping 10.0.0.3 -ping 10.10.0.3 - -# note: if you are able to ping the IP but the DNS tests below do not work, -# refer to the sections above on configuring the DNS inbound fwd IP - -# test forwarding from CoreDNS via the Cloud DNS inbound policy -dig test-1-1.gcp.example.org +short -10.0.0.3 -dig test-2-1.gcp.example.org +short -10.10.0.3 - -# test that Private Access is configured correctly -dig compute.googleapis.com +short -private.googleapis.com. -199.36.153.8 -199.36.153.9 -199.36.153.10 -199.36.153.11 - -# issue an API call via Private Access -gcloud config set project [your project id] -gcloud compute instances list -``` - -### Cloud to onprem - -```bash -# connect to the test instance -gcloud compute ssh test-1 - -# test forwarding from Cloud DNS to onprem CoreDNS (address may differ) -dig gw.onprem.example.org +short -10.0.16.1 - -# test a request to the onprem web server -curl www.onprem.example.org -s |grep h1 -

On Prem in a Box

-``` - -## Operational considerations - -A single pre-existing project is used in this blueprint to keep variables and complexity to a minimum, in a real world scenarios each spoke would probably use a separate project. - -The VPN-s used to connect to the on-premises environment do not account for HA, upgrading to use HA VPN is reasonably simple by using the relevant [module](../../../../modules/net-vpn-ha). - - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [project_id](variables.tf#L59) | Project id for all resources. | string | ✓ | | -| [bgp_asn](variables.tf#L17) | BGP ASNs. | map(number) | | {…} | -| [bgp_interface_ranges](variables.tf#L28) | BGP interface IP CIDR ranges. | map(string) | | {…} | -| [dns_forwarder_address](variables.tf#L37) | Address of the DNS server used to forward queries from on-premises. | string | | "10.0.0.2" | -| [forwarder_address](variables.tf#L43) | GCP DNS inbound policy forwarder address. | string | | "10.0.0.2" | -| [ip_ranges](variables.tf#L49) | IP CIDR ranges. | map(string) | | {…} | -| [region](variables.tf#L64) | VPC region. | map(string) | | {…} | -| [ssh_source_ranges](variables.tf#L73) | IP CIDR ranges that will be allowed to connect via SSH to the onprem instance. | list(string) | | ["0.0.0.0/0"] | - -## Outputs - -| name | description | sensitive | -|---|---|:---:| -| [onprem-instance](outputs.tf#L17) | Onprem instance details. | | -| [test-instance1](outputs.tf#L26) | Test instance details. | | -| [test-instance2](outputs.tf#L33) | Test instance details. | | - - diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/assets/Corefile b/blueprints/networking/__need_fixing/onprem-google-access-dns/assets/Corefile deleted file mode 100644 index 3b0e01704d..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/assets/Corefile +++ /dev/null @@ -1,21 +0,0 @@ -onprem.example.org { - root /etc/coredns - hosts onprem.hosts - log - errors -} -gcp.example.org googleapis.com { - forward . ${dns_forwarder_address} - log - errors -} -google.internal { - hosts { - 169.254.169.254 metadata.google.internal - } -} -. { - forward . 8.8.8.8 - log - errors -} diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/backend.tf.sample b/blueprints/networking/__need_fixing/onprem-google-access-dns/backend.tf.sample deleted file mode 100644 index e1bb8eaf50..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/backend.tf.sample +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -terraform { - backend "gcs" { - bucket = "" - } -} diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/diagram.png b/blueprints/networking/__need_fixing/onprem-google-access-dns/diagram.png deleted file mode 100644 index 466cbca8ceab5c7ef1d4629c176d44ec8e1b1def..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157471 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�whtQK(eCx;JjF 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

8;6|9Ja%q_`(4 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 JF;l@b;C~BW%ZdO1 diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/main.tf b/blueprints/networking/__need_fixing/onprem-google-access-dns/main.tf deleted file mode 100644 index f687ff2b1f..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/main.tf +++ /dev/null @@ -1,331 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -locals { - bgp_interface_gcp1 = cidrhost(var.bgp_interface_ranges.gcp1, 1) - bgp_interface_onprem1 = cidrhost(var.bgp_interface_ranges.gcp1, 2) - bgp_interface_gcp2 = cidrhost(var.bgp_interface_ranges.gcp2, 1) - bgp_interface_onprem2 = cidrhost(var.bgp_interface_ranges.gcp2, 2) - netblocks = { - dns = data.google_netblock_ip_ranges.dns-forwarders.cidr_blocks_ipv4.0 - private = data.google_netblock_ip_ranges.private-googleapis.cidr_blocks_ipv4.0 - restricted = data.google_netblock_ip_ranges.restricted-googleapis.cidr_blocks_ipv4.0 - } - vips = { - private = [for i in range(4) : cidrhost(local.netblocks.private, i)] - restricted = [for i in range(4) : cidrhost(local.netblocks.restricted, i)] - } - vm-startup-script = join("\n", [ - "#! /bin/bash", - "apt-get update && apt-get install -y bash-completion dnsutils kubectl" - ]) -} - -data "google_netblock_ip_ranges" "dns-forwarders" { - range_type = "dns-forwarders" -} - -data "google_netblock_ip_ranges" "private-googleapis" { - range_type = "private-googleapis" -} - -data "google_netblock_ip_ranges" "restricted-googleapis" { - range_type = "restricted-googleapis" -} - -################################################################################ -# Networking # -################################################################################ - -module "vpc" { - source = "../../../modules/net-vpc" - project_id = var.project_id - name = "to-onprem" - subnets = [ - { - ip_cidr_range = var.ip_ranges.gcp1 - name = "subnet1" - region = var.region.gcp1 - }, - { - ip_cidr_range = var.ip_ranges.gcp2 - name = "subnet2" - region = var.region.gcp2 - } - ] -} - -module "vpc-firewall" { - source = "../../../modules/net-vpc-firewall" - project_id = var.project_id - network = module.vpc.name - default_rules_config = { - admin_ranges = values(var.ip_ranges) - ssh_ranges = var.ssh_source_ranges - } -} - -module "vpn1" { - source = "../../../modules/net-vpn-dynamic" - project_id = var.project_id - region = var.region.gcp1 - network = module.vpc.name - name = "to-onprem1" - router_config = { asn = var.bgp_asn.gcp1 } - tunnels = { - onprem = { - bgp_peer = { - address = local.bgp_interface_onprem1 - asn = var.bgp_asn.onprem1 - custom_advertise = { - all_subnets = true - all_vpc_subnets = false - all_peer_vpc_subnets = false - ip_ranges = { - (local.netblocks.dns) = "DNS resolvers" - (local.netblocks.private) = "private.gooogleapis.com" - (local.netblocks.restricted) = "restricted.gooogleapis.com" - } } - } - bgp_session_range = "${local.bgp_interface_gcp1}/30" - peer_ip = module.vm-onprem.external_ip - } - } -} - -module "vpn2" { - source = "../../../modules/net-vpn-dynamic" - project_id = var.project_id - region = var.region.gcp2 - network = module.vpc.name - name = "to-onprem2" - router_config = { asn = var.bgp_asn.gcp2 } - tunnels = { - onprem = { - bgp_peer = { - address = local.bgp_interface_onprem2 - asn = var.bgp_asn.onprem2 - custom_advertise = { - all_subnets = true - all_vpc_subnets = false - all_peer_vpc_subnets = false - ip_ranges = { - (local.netblocks.dns) = "DNS resolvers" - (local.netblocks.private) = "private.gooogleapis.com" - (local.netblocks.restricted) = "restricted.gooogleapis.com" - } - } - } - bgp_session_range = "${local.bgp_interface_gcp2}/30" - peer_ip = module.vm-onprem.external_ip - } - } -} - -module "nat1" { - source = "../../../modules/net-cloudnat" - project_id = var.project_id - region = var.region.gcp1 - name = "default" - router_create = false - router_name = module.vpn1.router_name -} -module "nat2" { - source = "../../../modules/net-cloudnat" - project_id = var.project_id - region = var.region.gcp2 - name = "default" - router_create = false - router_name = module.vpn2.router_name -} - -################################################################################ -# DNS # -################################################################################ - -module "dns-gcp" { - source = "../../../modules/dns" - project_id = var.project_id - name = "gcp-example" - zone_config = { - domain = "gcp.example.org." - private = { - client_networks = [module.vpc.self_link] - } - } - recordsets = { - "A localhost" = { records = ["127.0.0.1"] } - "A test-1" = { records = [module.vm-test1.internal_ip] } - "A test-2" = { records = [module.vm-test2.internal_ip] } - } -} - -module "dns-api" { - source = "../../../modules/dns" - project_id = var.project_id - name = "googleapis" - zone_config = { - domain = "googleapis.com." - private = { - client_networks = [module.vpc.self_link] - } - } - recordsets = { - "CNAME *" = { records = ["private.googleapis.com."] } - "A private" = { records = local.vips.private } - "A restricted" = { records = local.vips.restricted } - } -} - -module "dns-onprem" { - source = "../../../modules/dns" - project_id = var.project_id - name = "onprem-example" - zone_config = { - domain = "onprem.example.org." - forwarding = { - client_networks = [module.vpc.self_link] - forwarders = { - "${cidrhost(var.ip_ranges.onprem, 3)}" = null - } - } - } -} - -resource "google_dns_policy" "inbound" { - provider = google-beta - project = var.project_id - name = "gcp-inbound" - enable_inbound_forwarding = true - networks { - network_url = module.vpc.self_link - } -} - -################################################################################ -# Test instance # -################################################################################ - -module "service-account-gce" { - source = "../../../modules/iam-service-account" - project_id = var.project_id - name = "gce-test" - iam_project_roles = { - (var.project_id) = [ - "roles/logging.logWriter", - "roles/monitoring.metricWriter", - ] - } -} - -module "vm-test1" { - source = "../../../modules/compute-vm" - project_id = var.project_id - zone = "${var.region.gcp1}-b" - name = "test-1" - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region.gcp1}/subnet1"] - }] - metadata = { startup-script = local.vm-startup-script } - service_account = { - email = module.service-account-gce.email - } - tags = ["ssh"] -} - -module "vm-test2" { - source = "../../../modules/compute-vm" - project_id = var.project_id - zone = "${var.region.gcp2}-b" - name = "test-2" - network_interfaces = [{ - network = module.vpc.self_link - subnetwork = module.vpc.subnet_self_links["${var.region.gcp2}/subnet2"] - nat = false - addresses = null - }] - metadata = { startup-script = local.vm-startup-script } - service_account = { - email = module.service-account-gce.email - } - tags = ["ssh"] -} - -################################################################################ -# On prem # -################################################################################ - -module "config-onprem" { - source = "../../../modules/cloud-config-container/onprem" - config_variables = { dns_forwarder_address = var.dns_forwarder_address } - coredns_config = "${path.module}/assets/Corefile" - local_ip_cidr_range = var.ip_ranges.onprem - vpn_config = { - peer_ip = module.vpn1.address - peer_ip2 = module.vpn2.address - shared_secret = module.vpn1.random_secret - shared_secret2 = module.vpn2.random_secret - type = "dynamic" - } - vpn_dynamic_config = { - local_bgp_asn = var.bgp_asn.onprem1 - local_bgp_address = local.bgp_interface_onprem1 - peer_bgp_asn = var.bgp_asn.gcp1 - peer_bgp_address = local.bgp_interface_gcp1 - local_bgp_asn2 = var.bgp_asn.onprem2 - local_bgp_address2 = local.bgp_interface_onprem2 - peer_bgp_asn2 = var.bgp_asn.gcp2 - peer_bgp_address2 = local.bgp_interface_gcp2 - } -} - -module "service-account-onprem" { - source = "../../../modules/iam-service-account" - project_id = var.project_id - name = "gce-onprem" - iam_project_roles = { - (var.project_id) = [ - "roles/compute.viewer", - "roles/logging.logWriter", - "roles/monitoring.metricWriter", - ] - } -} - -module "vm-onprem" { - source = "../../../modules/compute-vm" - project_id = var.project_id - zone = "${var.region.gcp1}-b" - instance_type = "f1-micro" - name = "onprem" - boot_disk = { - initialize_params = { - image = "ubuntu-os-cloud/ubuntu-1804-lts" - } - } - metadata = { - user-data = module.config-onprem.cloud_config - } - network_interfaces = [{ - network = module.vpc.name - subnetwork = module.vpc.subnet_self_links["${var.region.gcp1}/subnet1"] - }] - service_account = { - email = module.service-account-onprem.email - } - tags = ["ssh"] -} diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/outputs.tf b/blueprints/networking/__need_fixing/onprem-google-access-dns/outputs.tf deleted file mode 100644 index 35a8e90067..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/outputs.tf +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -output "onprem-instance" { - description = "Onprem instance details." - value = { - external_ip = module.vm-onprem.external_ip - internal_ip = module.vm-onprem.internal_ip - name = module.vm-onprem.instance.name - } -} - -output "test-instance1" { - description = "Test instance details." - value = join(" ", [ - module.vm-test1.instance.name, - module.vm-test1.internal_ip - ]) -} -output "test-instance2" { - description = "Test instance details." - value = join(" ", [ - module.vm-test2.instance.name, - module.vm-test2.internal_ip - ]) -} diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/variables.tf b/blueprints/networking/__need_fixing/onprem-google-access-dns/variables.tf deleted file mode 100644 index a32f4b54e4..0000000000 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/variables.tf +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -variable "bgp_asn" { - description = "BGP ASNs." - type = map(number) - default = { - gcp1 = 64513 - gcp2 = 64520 - onprem1 = 64514 - onprem2 = 64514 - } -} - -variable "bgp_interface_ranges" { - description = "BGP interface IP CIDR ranges." - type = map(string) - default = { - gcp1 = "169.254.1.0/30" - gcp2 = "169.254.2.0/30" - } -} - -variable "dns_forwarder_address" { - description = "Address of the DNS server used to forward queries from on-premises." - type = string - default = "10.0.0.2" -} - -variable "forwarder_address" { - description = "GCP DNS inbound policy forwarder address." - type = string - default = "10.0.0.2" -} - -variable "ip_ranges" { - description = "IP CIDR ranges." - type = map(string) - default = { - gcp1 = "10.0.0.0/24" - gcp2 = "10.10.0.0/24" - onprem = "10.0.16.0/24" - } -} - -variable "project_id" { - description = "Project id for all resources." - type = string -} - -variable "region" { - description = "VPC region." - type = map(string) - default = { - gcp1 = "europe-west1" - gcp2 = "europe-west2" - } -} - -variable "ssh_source_ranges" { - description = "IP CIDR ranges that will be allowed to connect via SSH to the onprem instance." - type = list(string) - default = ["0.0.0.0/0"] -} diff --git a/blueprints/networking/hub-and-spoke-peering/README.md b/blueprints/networking/hub-and-spoke-peering/README.md deleted file mode 100644 index af07525201..0000000000 --- a/blueprints/networking/hub-and-spoke-peering/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# Hub and Spoke using VPC Network Peering - -This blueprint creates a simple **Hub and Spoke** setup, where the VPC network connects satellite locations (spokes) through a single intermediary location (hub) via [VPC Network Peering](https://cloud.google.com/vpc/docs/vpc-peering). - -Since VPC Network Peering does not provide transitive routing, some things -don't work without additional configuration. By default, spokes cannot -talk with other spokes, and managed services in tenent networks can only be -reached from the attached spoke. - -To get around these limitations, this blueprint uses [Cloud -VPN](https://cloud.google.com/network-connectivity/docs/vpn/concepts/overview) -to provide transitive routing and to establish connectivity to the Google Kubernetes Engine (GKE) -masters in the tenant project ([courtesy of @drebes](https://github.com/drebes/tf-samples/blob/master/gke-master-from-hub/main.tf#L10)). Other solutions typically involve the use of proxies, as [described in this GKE article](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies). - -One other topic that needs to be considered when using peering is the limit of 25 peerings in each peering group, which constrains the scalability of design like the one presented here. - -The blueprint has been purposefully kept simple to show how to use and wire the VPC modules together, and so that it can be used as a basis for more complex scenarios. This is the high level diagram: - -![High-level diagram](diagram.png "High-level diagram") - - -## Managed resources and services - -This sample creates several distinct groups of resources: - -- three VPC networks, one each for the hub and spokes, each with one subnet -- VPC Network Peering configurations between the hub network and each spoke -- a Compute Engine VM instance for each VPC network. The VMs are created - using an accompanying service account -- private GKE cluster with a single node pool in the spoke-2 VPC network. The GKE nodes have an accompanying service account. -- one set of firewall rules for each VPC network -- one Cloud NAT configuration for each network -- one test instance for each spoke -- VPN gateways in the hub and spoke-2 networks with accompanying tunnels. These tunnels allow the Cloud Routers to exchange transitive routes so that resources in spoke-1 and spoke-2 can reach each other, and so that resources in the hub network can reach the control plane of the GKE cluster hosted in spoke-2. - -## Testing GKE access from spoke 1 - -As mentioned above, VPN tunnels are to provide transitive routing so that -the hub network can connect to the GKE master. This diagram illustrates the solution - -![Network-level diagram](diagram-network.png "Network-level diagram") - -To test cluster access, first log on to the spoke 2 instance and confirm cluster and IAM roles are set up correctly: - -```bash -gcloud container clusters get-credentials cluster-1 --zone europe-west1-b -kubectl get all -``` - -The blueprint configures the peering with the GKE master VPC network to export routes for you, so that VPN routes are passed through the peering. You can disable by hand in the console or by editing the `peering_config` variable in the `gke-cluster` module, to test non-working configurations or switch to using the [GKE proxy](https://cloud.google.com/solutions/creating-kubernetes-engine-private-clusters-with-net-proxies). - -### Export routes via Terraform (recommended) - -Change the GKE cluster module and add a new variable after `private_cluster_config`: - -```tfvars - peering_config = { - export_routes = true - import_routes = false - } -``` - -If you added the variable after applying, simply apply Terraform again. - - -### Export routes via gcloud (alternative) - -If you prefer to use `gcloud` to export routes on the peering, first identify the peering (it has a name like `gke-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-peer`) in the Cloud Console from the *VPC network peering* page, or using `gcloud`, then configure it to export routes: - -``` -gcloud compute networks peerings list -# find the gke-xxxxxxxxxxxxxxxxxxxx-xxxx-xxxx-peer in the spoke-2 network -gcloud compute networks peerings update [peering name from above] \ - --network spoke-2 --export-custom-routes -``` - -### Test routes - -Then connect via SSH to the hub VM instance and run the same commands you ran on the spoke 2 instance above. You should be able to run `kubectl` commands against the cluster. To test the default situation with no supporting VPN, just comment out the two VPN modules in `main.tf` and run `terraform apply` to bring down the VPN gateways and tunnels. GKE should only become accessible from spoke 2. - -## Operational considerations - -A single pre-existing project is used in this blueprint to keep variables and complexity to a minimum, in a real world scenario each spoke would use a separate project (and Shared VPC). - -A few APIs need to be enabled in the project, if `apply` fails due to a service not being enabled just click on the link in the error message to enable it for the project, then resume `apply`. - -You can connect your hub to on-premises using Cloud Interconnect or HA VPN. On-premises networks would be able to reach the hub and all spokes, and the hub and all spokes would be able to reach on-premises, assuming the on-premises network is configured to allow access. - -You can add additional spoke to the architecture. All of these spokes have networking similar to spoke-1: They will have connectivity to the hub and to spoke-2, but not to each other unless you also create VPN tunnels for the new spokes. - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [prefix](variables.tf#L41) | Prefix used for resource names. | string | ✓ | | -| [project_id](variables.tf#L76) | Project id used for all resources. | string | ✓ | | -| [deletion_protection](variables.tf#L15) | Prevent Terraform from destroying data storage resources (storage buckets, GKE clusters, CloudSQL instances) in this blueprint. When this field is set in Terraform state, a terraform destroy or terraform apply that would delete data storage resources will fail. | bool | | false | -| [ip_ranges](variables.tf#L22) | IP CIDR ranges. | map(string) | | {…} | -| [ip_secondary_ranges](variables.tf#L32) | Secondary IP CIDR ranges. | map(string) | | {…} | -| [private_service_ranges](variables.tf#L50) | Private service IP CIDR ranges. | map(string) | | {…} | -| [project_create](variables.tf#L58) | Set to non null if project needs to be created. | object({…}) | | null | -| [region](variables.tf#L81) | VPC region. | string | | "europe-west1" | - -## Outputs - -| name | description | sensitive | -|---|---|:---:| -| [project](outputs.tf#L15) | Project id. | | -| [vms](outputs.tf#L20) | GCE VMs. | | - -## Test - -```hcl -module "test" { - source = "./fabric/blueprints/networking/hub-and-spoke-peering" - prefix = "prefix" - project_create = { - billing_account = "123456-123456-123456" - oslogin = true - parent = "folders/123456789" - } - project_id = "project-1" -} - -# tftest modules=22 resources=69 -``` diff --git a/blueprints/networking/hub-and-spoke-peering/backend.tf.sample b/blueprints/networking/hub-and-spoke-peering/backend.tf.sample deleted file mode 100644 index e1bb8eaf50..0000000000 --- a/blueprints/networking/hub-and-spoke-peering/backend.tf.sample +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -terraform { - backend "gcs" { - bucket = "" - } -} diff --git a/blueprints/networking/hub-and-spoke-peering/diagram-network.png b/blueprints/networking/hub-and-spoke-peering/diagram-network.png deleted file mode 100644 index 66ac5ba8191204cb2c3eeb021578e6570f6347d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36104 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 P@SnW&8>!zChJpVJ(9iy; diff --git a/blueprints/networking/hub-and-spoke-peering/diagram.png b/blueprints/networking/hub-and-spoke-peering/diagram.png deleted file mode 100644 index ad2b37ab1fe45b5b24e44b1004d53a3c980cc5df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151868 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 HO#}ZQITc range - } - master_ipv4_cidr_block = var.private_service_ranges.spoke-2-cluster-1 - } - max_pods_per_node = 32 - labels = { - environment = "test" - } - private_cluster_config = { - enable_private_endpoint = true - master_global_access = true - peering_config = { - export_routes = true - import_routes = false - } - } - deletion_protection = var.deletion_protection -} - -module "cluster-1-nodepool-1" { - source = "../../../modules/gke-nodepool" - name = "${var.prefix}-nodepool-1" - project_id = module.project.project_id - location = module.cluster-1.location - cluster_name = module.cluster-1.name - service_account = { - email = module.service-account-gke-node.email - } -} - -# roles assigned via this module use non-authoritative IAM bindings at the -# project level, with no risk of conflicts with pre-existing roles - -module "service-account-gke-node" { - source = "../../../modules/iam-service-account" - project_id = module.project.project_id - name = "${var.prefix}-gke-node" - iam_project_roles = { - (var.project_id) = [ - "roles/logging.logWriter", "roles/monitoring.metricWriter", - ] - } -} - -################################################################################ -# GKE peering VPN # -################################################################################ - -module "vpn-hub" { - source = "../../../modules/net-vpn-ha" - project_id = module.project.project_id - region = var.region - network = module.vpc-hub.name - name = "${var.prefix}-hub" - peer_gateways = { - default = { gcp = module.vpn-spoke-2.self_link } - } - router_config = { - asn = 64516 - custom_advertise = { - all_subnets = true - all_vpc_subnets = true - all_peer_vpc_subnets = true - ip_ranges = { - "10.0.0.0/8" = "default" - } - } - } - tunnels = { - remote-0 = { - bgp_peer = { - address = "169.254.1.1" - asn = 64515 - } - bgp_session_range = "169.254.1.2/30" - vpn_gateway_interface = 0 - } - remote-1 = { - bgp_peer = { - address = "169.254.2.1" - asn = 64515 - } - bgp_session_range = "169.254.2.2/30" - vpn_gateway_interface = 1 - } - } -} - - -module "vpn-spoke-2" { - source = "../../../modules/net-vpn-ha" - project_id = module.project.project_id - region = var.region - network = module.vpc-spoke-2.name - name = "${var.prefix}-spoke-2" - router_config = { - asn = 64515 - custom_advertise = { - all_subnets = true - all_vpc_subnets = true - all_peer_vpc_subnets = true - ip_ranges = { - "10.0.0.0/8" = "default" - "${var.private_service_ranges.spoke-2-cluster-1}" = "access to control plane" - } - } - } - peer_gateways = { - default = { gcp = module.vpn-hub.self_link } - } - tunnels = { - remote-0 = { - bgp_peer = { - address = "169.254.1.2" - asn = 64516 - } - bgp_session_range = "169.254.1.1/30" - shared_secret = module.vpn-hub.random_secret - vpn_gateway_interface = 0 - } - remote-1 = { - bgp_peer = { - address = "169.254.2.2" - asn = 64516 - } - bgp_session_range = "169.254.2.1/30" - shared_secret = module.vpn-hub.random_secret - vpn_gateway_interface = 1 - } - } -} diff --git a/blueprints/networking/hub-and-spoke-peering/outputs.tf b/blueprints/networking/hub-and-spoke-peering/outputs.tf deleted file mode 100644 index 97b15117d7..0000000000 --- a/blueprints/networking/hub-and-spoke-peering/outputs.tf +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -output "project" { - description = "Project id." - value = module.project.project_id -} - -output "vms" { - description = "GCE VMs." - value = { - for instance in local.vm-instances : - instance.name => instance.network_interface.0.network_ip - } -} diff --git a/blueprints/networking/hub-and-spoke-peering/variables.tf b/blueprints/networking/hub-and-spoke-peering/variables.tf deleted file mode 100644 index 2a5f9cb6cf..0000000000 --- a/blueprints/networking/hub-and-spoke-peering/variables.tf +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -variable "deletion_protection" { - description = "Prevent Terraform from destroying data storage resources (storage buckets, GKE clusters, CloudSQL instances) in this blueprint. When this field is set in Terraform state, a terraform destroy or terraform apply that would delete data storage resources will fail." - type = bool - default = false - nullable = false -} - -variable "ip_ranges" { - description = "IP CIDR ranges." - type = map(string) - default = { - hub = "10.0.0.0/24" - spoke-1 = "10.0.16.0/24" - spoke-2 = "10.0.32.0/24" - } -} - -variable "ip_secondary_ranges" { - description = "Secondary IP CIDR ranges." - type = map(string) - default = { - spoke-2-pods = "10.128.0.0/18" - spoke-2-services = "172.16.0.0/24" - } -} - -variable "prefix" { - description = "Prefix used for resource names." - type = string - validation { - condition = var.prefix != "" - error_message = "Prefix cannot be empty." - } -} - -variable "private_service_ranges" { - description = "Private service IP CIDR ranges." - type = map(string) - default = { - spoke-2-cluster-1 = "192.168.0.0/28" - } -} - -variable "project_create" { - description = "Set to non null if project needs to be created." - type = object({ - billing_account = string - oslogin = bool - parent = string - }) - default = null - validation { - condition = ( - var.project_create == null - ? true - : can(regex("(organizations|folders)/[0-9]+", var.project_create.parent)) - ) - error_message = "Project parent must be of the form folders/folder_id or organizations/organization_id." - } -} - -variable "project_id" { - description = "Project id used for all resources." - type = string -} - -variable "region" { - description = "VPC region." - type = string - default = "europe-west1" -} diff --git a/blueprints/networking/hub-and-spoke-vpn/README.md b/blueprints/networking/hub-and-spoke-vpn/README.md deleted file mode 100644 index 16fb1d6706..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Hub and Spoke via VPN - -This blueprint creates a simple **Hub and Spoke VPN** setup, where the VPC network connects satellite locations (spokes) through a single intermediary location (hub) via [IPsec HA VPN](https://cloud.google.com/network-connectivity/docs/vpn/concepts/overview#ha-vpn). - -A few additional features are also shown: - -- [custom BGP advertisements](https://cloud.google.com/network-connectivity/docs/router/how-to/advertising-overview) to implement transitivity between spokes -- [VPC Global Routing](https://cloud.google.com/network-connectivity/docs/router/how-to/configuring-routing-mode) to leverage a regional set of VPN gateways in different regions as next hops (used here for illustrative/study purpose, not usually done in real life) - -The blueprint has been purposefully kept simple to show how to use and wire the VPC and VPN-HA modules together, and so that it can be used as a basis for experimentation. For a more complex scenario that better reflects real-life usage, including [Shared VPC](https://cloud.google.com/vpc/docs/shared-vpc) and [DNS cross-project binding](https://cloud.google.com/dns/docs/zones/cross-project-binding) please refer to the [FAST network stage](../../../fast/stages/2-networking-b-vpn/). - -This is the high level diagram of this blueprint: - -![High-level diagram](diagram.png "High-level diagram") - -## Managed resources and services - -This sample creates several distinct groups of resources: - -- one VPC for each hub and each spoke -- one set of firewall rules for each VPC -- one HA VPN gateway with two tunnels and one Cloud Router for each spoke -- two HA VPN gateways with two tunnels and a shared Cloud Routers for the hub -- one DNS private zone in the hub -- one DNS peering zone and one DNS private zone in each spoke -- one test instance for the hub each spoke - -## Prerequisites - -A single pre-existing project is used in this blueprint to keep variables and complexity to a minimum, in a real world scenarios each spoke would probably use a separate project. - -The provided project needs a valid billing account, the Compute and DNS APIs are enabled by the blueprint. - -You can easily create such a project by commenting turning on project creation in the project module contained in `main.tf`, as shown in this snippet: - -```hcl -module "project" { - source = "../../../modules/project" - name = var.project_id - # comment or remove this line to enable project creation - # project_create = false - # add the following line with your billing account id value - billing_account = "12345-ABCD-12345" - services = [ - "compute.googleapis.com", - "dns.googleapis.com" - ] -} - -# tftest skip -``` - -## Testing - -Once the blueprint is up, you can quickly test features by logging in to one of the test VMs: - -```bash -gcloud compute ssh hs-ha-lnd-test-r1 -# test DNS resolution of the landing zone -ping test-r1.example.com -# test DNS resolution of the prod zone, and prod reachability -ping test-r1.prod.example.com -# test DNS resolution of the dev zone, and dev reachability via global routing -ping test-r2.dev.example.com -``` - - - -## Files - -| name | description | modules | -|---|---|---| -| [main.tf](./main.tf) | Module-level locals and resources. | compute-vm · project | -| [net-dev.tf](./net-dev.tf) | Development spoke VPC. | dns · net-vpc · net-vpc-firewall | -| [net-landing.tf](./net-landing.tf) | Landing hub VPC. | dns · net-vpc · net-vpc-firewall | -| [net-prod.tf](./net-prod.tf) | Production spoke VPC. | dns · net-vpc · net-vpc-firewall | -| [outputs.tf](./outputs.tf) | Module outputs. | | -| [variables.tf](./variables.tf) | Module variables. | | -| [vpn-dev-r1.tf](./vpn-dev-r1.tf) | Landing to Development VPN for region 1. | net-vpn-ha | -| [vpn-prod-r1.tf](./vpn-prod-r1.tf) | Landing to Production VPN for region 1. | net-vpn-ha | - -## Variables - -| name | description | type | required | default | -|---|---|:---:|:---:|:---:| -| [prefix](variables.tf#L34) | Prefix used for resource names. | string | ✓ | | -| [project_id](variables.tf#L52) | Project id for all resources. | string | ✓ | | -| [ip_ranges](variables.tf#L15) | Subnet IP CIDR ranges. | map(string) | | {…} | -| [ip_secondary_ranges](variables.tf#L28) | Subnet secondary ranges. | map(map(string)) | | {} | -| [project_create_config](variables.tf#L43) | Populate with billing account id to trigger project creation. | object({…}) | | null | -| [regions](variables.tf#L57) | VPC regions. | map(string) | | {…} | -| [vpn_configs](variables.tf#L66) | VPN configurations. | map(object({…})) | | {…} | - -## Outputs - -| name | description | sensitive | -|---|---|:---:| -| [subnets](outputs.tf#L15) | Subnet details. | | -| [vms](outputs.tf#L39) | GCE VMs. | | - -## Test -```hcl -module "test" { - source = "./fabric/blueprints/networking/hub-and-spoke-vpn" - prefix = "prefix" - project_create_config = { - billing_account_id = "123456-123456-123456" - parent_id = "folders/123456789" - } - project_id = "project-1" -} - -# tftest modules=20 resources=79 -``` diff --git a/blueprints/networking/hub-and-spoke-vpn/backend.tf.sample b/blueprints/networking/hub-and-spoke-vpn/backend.tf.sample deleted file mode 100644 index e1bb8eaf50..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/backend.tf.sample +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -terraform { - backend "gcs" { - bucket = "" - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/diagram.png b/blueprints/networking/hub-and-spoke-vpn/diagram.png deleted file mode 100644 index 6bddab62e539af0e9a230b2e5d167e97eadc6a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92328 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

+5RWu3`zKivqxLXZR{3) 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%0A%J@NY8K#{ zf?eHT4Pa??vXUMD2|4&7?0R7oA4}owvIDn5nd&EfEf(2IzowZ5fH<94oMoN z>dSwrb4n0!jnUiKe+ySPZ%v$zv6eY%4ucC^?M-a9a%Q(QA(j)2MaSspj5rU>-hm;wAm=-3k%l%kDF^54_n|%#tTq!%M-b z7M@TL;fmhc5@g&6s5#7=^txP3HN%4{;r2X0OBk%Q-`U@>c=y5Bl#`G(QWG4qP|~my z+FEKyT;TF~>$@f-0v1Mq;4re38b99#?E3HVTC5_rCET@w1#;n8&u)UP5~heZ_vKeN zS0ln%vx2RssVRTV{fbnoyx7{(vAX^>xjU8IS^88d#XRDA+)OQvgnNeeM}uUzt0wGV z=K#n7)EoYyg!iv&SPVQIn^6A#ygsl5&!&WD_d(O|&3D~69(3U$Kc-K0gBDtDvj3K< z$y`=HE?HLl%JhI=k5%MsuV0LvTmxua`wVM#3M5^nTR`oq8z>x+&Y;^}<{;-NiPm1O z;&p+Si<7$s9!qQsJBMBimw9E%;dX+shF_A1$Ek1rJfsn+MdA+i^41$fil48vhI8eI zL$YI%K*SNg^RI)_;50d%BiTkI-sRK#cVyr*+<2X2gKOo_6zg}*bf)>iMyir%youVy zp)t-I@;fHr?X~SwZFOods)UgimNGfBQt@~0axqY*X7t8TpW>3)FQ#mOu>%bZ>9;)QmL<(n~a}7Gr?ES>{IML@17&E&0LC@Go|8oY5#J*6=t#Qev$DgX+FP0KpVI9QazH9Yh>$~%bdQ0RlG=Ro2Qg;D zy()t1zL8|rrBYT>)~;tVV_Q%Yv{_J9xRi6DYFW*3A~&BZV$5eB;%IO%cje0@;TV?F zddy_ukHu6((L>&0>x)l5GR#B@MF*sQyfwySqffnR&e6*o^e6UZ9h^?Zi7*(C_!>$q z-`m0=r2Bg_Z3fpDcj+s5wfj&ge*xFh`H1mk>aqC6&5>D)gYbH5gQ?sAYOTiR2M){_ z6gvrH=pSu92Yf zQR#l7AK5g$ejHQ9SM!g%gq9)M-jrV|q~1X&N)Jfit!hS*py`9^Lr*sIJ;NKUb-pwF z9(s2{J#GhN12hCdS zhcz?U&{Z?`!-hF2$pbwd+kdqHxK?Kk0Qkq?_dkiTK4R1RL`PvzJmWxYQuH3tM@``b zLzO?>68@)K{I{>Qt}eV{6ZW#!Fp4!lE6aSzjo9vfp*2#A z-}21DhX7%_{sGR}FuC1V{Ff>Db8QUHM;YcVe`bc^JZqK*S&rNlNq?|w$A1>Uyq)}~ zgpT)InXxG)9uAW`Mz%3U@dxs^TDbNS3Z1^s%l>TP$)|CzOjyeJCJG`6hI97sa8$59 z{!UtW`=a`hC;}7x#Q)2Y0Mg{Y90{QGFx=MveU9Y+Cza*WehqOl_xvB$tXOvLb1~8L z^`DD+1zLAKXiL*SDdl);|7FJ#?r#5)<5V`~tdGA&05y)IETcEs-~XH^r(xKN={A!p z6QOd{QUwSWfy6tuKTP4bRA3N)v`l{}(r19qGyd*rS&Sh7U*VKvA@bU=C;=gYl55Xw_8)yf}N}!VYOB!=vb_-nl2YMg=QlQizP`I^y zfAr7O2fEcL4ugfj<`ej|nAfz;{O@ngq(~rsPBa zk*27!myLyAT}`RZ+VTapV%Ah$leSRlOz#Em9}*qtY2u~F7EJ^k`l{>Kfn!8Eq7gPM zSq_JMKmTX|6w^QBykPptr)6CO7@Sd{p8X$L%}*R)_YOa;y`17sn${hQ4RRp;Wu!qM}HFAU!Hy#L++C>{EtRP z`U8gCuL70rKcbmG4d7U`|K5a|ng31%(0}~DFcIE3rUng950eF>j1`&RgMCR>Ht^~n zr`WuWVW{^H_rEQsnm)Tn5eTr^=*LHpGFkPn3U4qHvO_3vA&jQ2QY>&Y2wQ+(ghTKw zx5ii3u;nI3JbNY&WNng`2|ur3!7e^TA(Bnc@I)`ayU{tfYF{;e5h+5n#@75y`?m=c0Ry2YH|Rt}2!AL^oqL%NLkP z@zDV{?MfSJT_1Y;sGv3K(aT^6Jjox>!U?oPxxL7iBi6dH917gQmdKp^i-Y++-srKW zwTBU{_RZZL>Jm4P$J!W!_Df&bE(il1jU^D^bbSujt2sXxI!QA-&%Ousl8~UNFm{`% zS;S5>;SJ-JcqviCIpTG>Rj7~eGHrda##-0qOkR!(I3B|?8ylKo?PhYR{Ny|RCg+(^ zR~Y8#g+h=%1DWy5D_|2okg@N4MIU)QnS*@ah&{XR*eJ8*vncaHs!ILEfhw77%IwxH zpCh(JmvlYkdVFsU*oOH57Up7Gt;w|mX0iZtiqaQnH7^pGMqjL%l^VEzX7D;5 zsC#G^2kTtK^b;9Y8 zpMET7ukYSUcno{$%7eCJy}~{n1cI^vFt^LxY4T$`!a$4uk9_{IwEXGz7iwYhBDzBY={0USpz^SNWIi7YSmms~?g zy8jBa)a$H2(!t|6i(62;mU1G?hzeL7YeV~s2VBrY-LypTJMhlq2j6YfaORZ-kQy$WO4OK$&LJvHQf%viFs3p7NztE|Km4S zt{-b2D%IdyCL|Z;Yh7r#2>|H|HrV~TK2PXbz+GcnT+UR6nT&XUS-((Oe>d%T@-4P^ zG2|f?BoCdHyo;5#&P%d+Hh7xOpO&y_r0F=l*LC7}Ia>lF@iVO{9+FC4-)p5MemM5v zqS{5d#Q^=k+WW4krn+xmK$NC{B1O8Of)oMiH6Q|_RO!+|r1vH@6tU4%KoOAMLq~cE zML+`r(xn9m5PAoK4cyO2T7wyU{F0I+Acd1yGfu>-9bqfT&dhND!G;>d#_BwA5YClvC z>Gf*eezYGI-&$_Safuh^|{abysZZv(LH@c9SrTc zl&wxw1^z!(7|9^o<)>?-SyKVKbRDNl8kDeZ4o5md$3*6DwNBdRp2pFyK9z7S(#UUw$kzxxLdYvnU02?o{U#i zCP57(-I^ETz$L(b_X8RZ^tHM(rdgxbK%?_Hpdme0?`>(Q-?n);(VE2ylG@~HW@d(u zZDww$1!lS8v`am~F3|np$JZJv=+0X|i_ZJWe*-j{CX64;G0zHt`!259q_?#;p)>{2h}* zF&R^bTcYzD*NrCPn2~dG6rX)3BXMsA0+v53P{IVKJqgi@CmOF3cvBrf^P|H#OTo}2LSev}3wJLoFG3slC6xoz$Cg(qQ>?v&KeJl3C~l?Tt6(%TGw&fwTl4Kd1K z>o-43$2NB?w=114uc;s?=nwP}C}3JCgDgtb2rD}PMSDt0dx_ycO27jp>cc5!%# ztkMc)5VL+mf+KCh)w0G6N6TU$1-Eg5E>Tc{x5NykMEf!)LTj1@C!WmPyjaDIe@&su zI+S9lLk;BPIle>!4ONcup9Lf*sAWg`kIIe1&%zy0<#Q$cO}CmHbO&bxSMtV`bIAs5Zrk4ANcX@J0nklgtz(cVJY8xsf9eHf{uZdr*r@90vsiSp@K% z2z`Bi&6Y?U>m7bH-+|>zql!qCvs$N9Lj#@ER0$QbDk0CS!e5eu82oUG6Vf7Ukp@Is z{Jc44FKcMkPz_?s!}V&|k6?+I?vAYqVkA#kY|!(VF;f~18be+XMx%{JWDXJ!QV$FY zR5s#mvb`K5Z$-mFhR-hInyyOhiDGp_eqWZmpKSNBf-bwvVwT&kuM zw_i@^m>|*D#Tj5LCRJi-4t`Fz{a6DUVh*wVU+}0@iRWmejqIT?$$qu9W1vYVZYl~9 z-*hl@5a2YJ)@>BQe>Y7G?s({4UAP3Wv4*fZD#(7+e&ou+M82u*X+dd7u}*0RB#vu^ zznN38`t3NH$w6F(DPh(kMd)iNI?vW&HtjF3GS{?yt{P6u&m3L5|7KLCJ67Gt`qCr~ zRj@*67slB_DOOVCYS|`oKic&A2Igr+TlO_5>kMjR>-aTBaHZ_3z?Z#kgAurn2~cL2 z#=Hl5<$##cigPYHf6FNNMeYKUMN8hc?^9(SBcys{wVp&YCgB_j0J3Uzc=8#cMfp(a zSUP8j99C~XacBv;7ft!uyr)Q@LU6U>3^n`yX@xHt`&gJHjM}%Ongjer#1@7gRi@Fe zJFyy!^0~sC_~L?CHmO}=EU|K;vR_v;ugHzk%n}OTH8^@7?n-J z3V?nv7lZ~OBq%iWd{NgV@+2kH!gZ$g{BC~&f5xlnpDUD^_s;lE0KKA%b7b((5ndBE z{L?*vba=j5kNoTsBY3)=r^ym|5Q8JNdsuSWp!W6poUk)GCS~EXfcb%)D=5QqWI;qw zKwykIC|!(9(urmLIMROSvtK#TGK4t-E1_Za=Sdfs73Q4#Wb zTmJOecGUIZ*V1R3GLN1BTQ1?mYBQn&$vu2kCLzPh-}*CTg(hS+Xe1U=04UTrerHwq zffc{88Ri7C+(9zStJ?;Cu1ea>cjHCrp=fil*td^BQl7=*w`^2%x z*=-$YJaa{y0;!;!oXMKR&td0y%W9fi!%B+&@6w5*gbdr<(*?OfU~ zO!>*NPlKEuIE41A~qI3U-|6dG0;$(j5zB ze^GW-8?r+ek-OqxRJ1Q7=$@E0zDpi=Zxgnre4G zw0L$l$&G{K1NHq7wTH0iYf92CUGICvHi^Y|B6rGxf^Q_-El)?;VDOXOa+!}VyXETq zpMYvTU~49d9ieIUY>K!wNCkzd=9y*qIEQwOk&Yq$zKAs30vIb+^0(n=sJvs$@!H!` z_-9IOhCkyCN3D4=ve@iqAdKgfl2pTB3X^X-5o_sZtZ7{`1<3PB<5tryCCqW?dRI+G zz7FMsfVYmOt8wrMj{&et|bo)Gs=NaOe(BPGhGmsbKbE?)0<B;6ET2HH-T|fErp6OK;iUH=Y=mw5mdD8d-Ht@pM=Fj+V zH4mVA-n5CcrZlf!11&pyu|Bb5%{_ZW;jji(w+Dv&|a!8i|51tkWT5zZa$HKAz4xwj&@?W&#>;~NGCk!xA z&bkEcQK{J*$oqi|+YSSHc<*#~>4t*JS1(jVue{|6<#|biRYnJ2JOozN=c&*6lvjMS zg!`Y^pDWt#ak2*0mA@Wnd^E|&i-CKulY@WUco>_7xbd{}nLTLCpiRiC52s#`8^XK?K z%=zrVw_rD=XiAu#bE~wfpJIX6AlKSL85uX+aetU{MpEd~R&3-8oqk_JoK|CCJlbdx z?AG;Uv~g6)+!{gsNKBrL*1=rTZS_OOG`833L3Ju)FCQ<&yNl=y*U4232d}n#UG}5a z^yBE;zRtsTj1~e3K|yvnh5h1oj}gTltQnaNd1g%sP{;mCvt2Lv)nJpFUH@1Ob9MUw z==ncglcXUvt>67rzd2>?8V}&{OJ`jj#F#cF)XEiEg>TMUH`MJ~6yCE6Hg|ka2Q23$ z27jj@mR|e0X`KS=fbcmF#)F{b<1eU2Jqx`AWogH#swpIQm~uv}0u6ul;D-h1yrkH5 zefgV0I?q`a&)FRu!1j^`p1q&n^TVzKy&sf&*v<@<6Qg6nVRP=9BLT6%Z}HN z2ann-yCEcju3C?$+KJ%NGpQrcg@BGS03xst+BmTG`a)T}J{~+#TFHiA!yB4H`yHuUQB0|SXqx8 zT&c1i?p}M!yQR}wSkI&|6mL*kSqpEa&DW(q-T=Adl9$zDdLiOKs<*$@{GSk?f^*_7 zXY8Dj&>~~-z!YP=bOU?sxCPi;oQ!*8K39zBD0;-I&uc-7wObOm{myBYf0_zqe9%o* z9CtY~oDjE@TcCza3|*YPjCc{-Hgb{ILmnmF%o=&*AFtU{?t3{bW^7ru&|ht9LZ>@OyI(m**3!I41=%;lLeL000o zNl==m=$?@&!A>OGlC~NAZ0dDTeP|5Wyyl6oCbs=jjE}u;&M5@%B6DsB3jtBTgqgDe z_=c^za=&_!n{vf?c&I&mu>2%G8`Q7q5`m`Xbb$Ah8|hiNJs>GG0rZP_@>LlagDHtU zR4pw%j!UQ1OfdmFI>bzsbN29~A9wFsi;yj3@!x7FVIDYc1qsZKKBY*=0pj#&Vtqvf zzxnwDRUK*;o;gv_a)-T}e2yQ-b-^{__>7q#Bj2LuM~F9%aW;t{vT{eT_}@td3v8DzUz z0c^5KPm~S|D_`R04tk}T;+mwedR^Zrx}GR{8_yS)Bk0O}^Vn2> zR{dS76yc^x0HugfpUb>LT4BTLxd`kX3GO>lB<$yMYJBr#B-W0B0Q|5q1;8}?!hz5r zC;2-3a)dcW`3enoaGU+Y-lP4@bc$Wd$9r!8N*NO<^~33uRE$Ty_7W7G#B)~mvDkQ4 z>ageO^~DhD13dZ~F6K&9{wkvo0svs|v7#vXvrpf{%sYUF zh@!>?zXge$et~Kx;C1ccT7OU^?$DC=4l{ii54@u|uN()wqa6!?Cqh67I8O}1b8oF7 zeOxruo2kg#pcej!3+?k-fj^*oGlcwU?Gdm({xxY6(vH1H2&-uo_hw;{vrnqm`n*gt zeogn~pXu_FIC@8D@=66yj1cJc<`;Vx_`)AtQvxwm3z6Ge-d-0%NF1sJR% zWuFZ$jESqQbHOqjRH~B0VvDJ^m4APUCjAG8!v*_VqT%`F#MEgbf%M<~2(kq0X4@LiJ{oSfA?x{@%WxDZJ-spl-01`f0mER@g^Whrp4069~pQCVV)M;KZ=Cz zOpkqqTvRYXe9H}NP@o?m2BjS_-6)DX4RQu7vWqjvKh~BmJP&l7H|;SDlntTa5yHH> zz<3BP?3|WC#S-o<+q~FMUU*U4wm< zOqcggIqk}5k*0k;LuD6?!JppUs$Z|O-2ye#nc^0-;R59{^A*qK>D=`R4ST(#>A@+d z6mo}OyuC(8@z;$)7HN782294gkBY#!EcdVI3#s0aUPkC4d~X6V@a-M=L~$|a7B1R( zF${b3Ry$-d{;tVM_l^NF1E^S%VHms5*G&gzxNuB}EW7V~WVG~=iJU93{7exHqy_2f zcTZM|C_a0oeL!2=wC;R^;6;!5PakoYLr=co-))|eU0Syc)LwDL*5B?g;7X5**FXS3 zZ^EGIul9>AFl9nIS@4%*e@&`E`Y0gtZB*uYUUlLl5PnK*SSKd^=Hmxz3A^B10)IiJ;eaA&Y^6>zJP zEfmJ#5p)jMm9B&+7;0H_iNq(Vf|~a0_E2DaR`7}tp3`UHA&&oN z1Voc_9gC&+wKJ0t&8i&(_jPddt~6ik@B^EBdD>WY@iFi9O^g{ExL(0`s#fV_-t~xV zH)A{XVnWAwN5LJrv8R_1=RTV!bGTiToQ0VEilGvIhZAjgGn2@e0lYL%VoBimCtg|f zOYBl77&R7VeVLnd5WG9@K2qX`8|1;u-+Md%x-V2YGnjOb0BZ&W1g(tMgcV4DJ?rt? z>O){zN5;5w~7;?x-niWCt z)3G<-2?FO$ijM^i|Kx#j;OC`n`MgFM@ed5;nt%;%h~Tv#-17R+*qEXD<|zl>*HoAS zLf34q{Yu^HOKyP1Js!P$70563xcW;yoUBPaB$D&Kz&J_{!mHcvkLSc2Grdf3>$f7c zueb2+$O<10*x0pSD(qy?A69JpfgNx?GTLWKKZSKJmW;E~tv%JbWyqE#kn7x5J0iOk zd`)CY<>3`Kw(a_L-3Gj*_BmhG{;!2;ueZE&ZrOjry%sS|=mgH}ny{($n-8sqK+4~( zF&^?+^$M*m7qpPmr6SJRZV{ywH<#E+ z2%U@;u9UuYYyf|eWb*axhITE(;aTf0DgYkLD=RfVY2Z!Rb^K4@lSEgmC81Aka zdV^|RSx>O-L-z^C@fAsi1H@1vlhn=77DPY%+-lC8&|8T?&<9Qp9aVE$S%mDGB^F(@ z9Vc5(c4UDcdN1NA)bZs>w6;phw+a>YE3M4UC{mze#S~QyY&b?F zUZB4igy-Ce0d}g~2AxFRx8SQgFJ(pgv0g{b1=(K0&w6cR2hSAKM!m}B^MpQ*_2kuC zgl@)J-vCF%dn=DH*Y?1Zh^n!(;ev)lh;&aBX3(-ld`}SsDvf%7@7I^v<=&j}ub;4R(95{0h zScTLG6Z_`V>Vr;a>kJ}I=+&+!I_-g_?vb{7^wA0$Bu5Dj@jnX*MH#j72WhSrQMSqm z@6cp>)1*dUN;J5p67t!F6mpD=$M0;+iI#G2m1huxjT;(UdT9DbD;rH6&6T7zG{z1t zm$k)sjgD!W&O@oKiTy_m=Y^Gi%0Jc4IJ+615d2ZLDheEYwh%azfkf;QWMYW)G>lq- z_{G--+|54iHsqWamKKc$OgMDhMb98(Zd+BCnBhn#gZVlyrqvV*A%>uN;qDMil`EbN z$CXq)N8uAGO@8LkU<3!Qc`{VDy&U~m5S;Cj>bA<5nnVRG!Iq;HNoq*5hb~5)T#M~A z^Sm5NO_yxEk<;OxO!K3jO4hn_2vi972uWBb89QxL7ZJYk)VKX%BFD&phzMkr;@7OG zgO|4sF5`Ym8cQWD&&lV-*SoLRw(Bbx=-E5S-tB@1_u#=nM~u!UzT?EfIrmQJ=KYwS z2qay(ASjxD`->w|VS;!nmy;s)P6~76QuvU9amA~153_4E9mQ%if(M5fmBi>BG*Ti2 z)vw&6JTGP~%#`^mQw&C1bf(iM9|kJ532iD_Z(QH~a6`up`M8{#YB9RG#d+$z-F3~_$CNkqj8m6oHDn8Tz61=Wh8m{l z6tzFV}`)HEqCii7ib&%&a&XAR@u-HJqv zRJ!q*hR!JMYjv3!ij3Q$Z{J>V^ki@TzyS$v&pzIx&q+E9W5e}~M`lwb2I;83o^TAe z=6;r)^KtT-gBl{-H870DRVyX}c4oZ($88O^!zP8vBqmomKAqOpXlTpEg%thek;9(O zX{L6w_t#+ws@WH)5_{`B&V4^4?Vy6L*J2N(N|eRE&46@JBqEC&XI!YlpPKH)#1=># zg7zeCUPyCXdyyx>C9mVUrj{3K^fNS%OX31GUo@zM#w;!-4kL4tOIIu}X;yRR>L;G0 z>t|s<3ZgGgECos|VV8IWFyA#7mrM&Ct&AG-+bSf)Np?OfZWrSGqn+xg!s$s!mi#y< z!@XpAf_#mw^m_z2KC)cU(xA}w<5P=${(V5i#j{D*PCci7Aqk$`%GELBHQQ}Xb#;*q zQ~1tdk<2$j&*b4#_NBOP$@JtNRPPU~)n2Wb4!*jl*ZE)yC7tG>Cd`+c3%pdGrq$|c zNf+HRRX~mf3X=brkFUxujSN!^VAJ{JRR&-}Nw?^}8{;RBNoHOH;D#U8(cL_amEgHE zvX^BwtCde3fD;z!VH4vD&}mDH)3nn`y| z)|nGG_sv2wr(Ft2NnxLgsiQttwK+}Z9$*yE-XeK=4Ju&%sPCG@8-=a*iPz5&<=v#o z0oOVsrDI*cWrl0GV#=44CxX#k4tUt0TvT`GR)|g$yO!Nb8v0EnJ9V9_UaU^~9w_rl zQ?p`&c@$;hl=M$XCrQqo>DxMSrZ;8lmsTeC{H7$n=D;o?HK~|3z#FT9Vn!|}!9C9O zydT(R573?(7cNaj3t^usJqz|R5jg*rtR=4#a7LQAN6&L~;l zk~!7Y|4dCuo+xX4^YsXSI55n(SxyeCs|smeWmn{6)6rJBY%7E!ku3K9eMMl5f|In~ zC|iV#W;wm2feudoYD5^}Fqy7<<<>b3``+(~eajVSDP{El?td)Sk`&EXqzs*sTVy>T z5)taS!opa5w5?EwgPeZG~^^R zJD9m!iE1Z_=3#H~H%6a<@xgCL&Qtl+kJhdF;v+keW{R29TW0_r{-wW(<*Q=8lMgGT zc}v(nFSyL;D){)ANXfY5>b0(Du~dR3!(=j&LMlE@Hp7F5;9qxKK}`O4r;ss(}>wZxMIYWNUM^}g(cf84ciQ`8ce-AS># zf72m}-HTh3@A8d;Qzz4Oxf63fcXrH*v2_*R6oTohFOe@fAZ$fuNBoxW7fpB0w!Oj* zEB8+b%~CrBT20pOvml!eMe9nQR!r#!{a~P8t0)g~l|?jDkS8KbyJxm}!)slKDjYdd z%HC=V9&d)k8y$g8XV%Ky(KEVTCWrezaU)<;O%5piYGK!ziSCwMpi5|2GRZhI_G& z&F|@=JIuZ2%Oneuo>qm*^KL6rr)qJX?YXESv?XUhCq0yAC<2qTuzfV$P#XG>1v1;C zH+`A}e75^W=V~0ckYacEd<_%q^iH0Ck4oAS^{qz?M5=0)-vGKma)lIk zqij8qvXG}C0xlL$cklV)JGBixGcNk5efmkBNJ3(lK|z9`NMvg~7!;N1*wqoAEI4kl zs0F*8S#prfj%1x81N&Ag*lSSGe_AyjDgT}woTJLy(~#2=eJDLSs%bBvF9bbxqGy8} zpVkC_@_%D2qlWX-Zryg0fqI(xgaMAvX*PIm`NjEYIq+oAV0a zq8|rvNJWf{)HP#f)r=0p_i@fn&X!U>x#%fbj^e45(<~=Fa09DO(!f==kiq(+5kJY6 zPa_A?529JSS-)xOJuI!&)I9Sg+nov9;h=}WTgv(5x^3r_x(;Wc+#?jp$rGnSs7Ya) zX&a-~;Umeayv(uYDIcU{vW+Zo;dV;4r*gIYLePrcxCOHxuVT;f)FyLrG4I|kiBUZn zo7#rh^v_RZSH9-?UisC+EGI2T8ah$voU1Aqv0JYi3>;O#jO6u?c>=3DzD7k~w6s}h-VOqwS{j;d;8GGW7PjMqM7h?s#c@|J)>80s9+dA9h_R;;8*1J4 z*ThyFV~#_>!-8-Z7nW3)UImji_xxIC@sK$wuoE-~l!R{7#P;UnyjWRi6m!l4ZXEZs zv~I=}R1#Y%052SPaL~a0OpB(l7u(~gw;wc;A6HBPa=%2&TZb_N81&1PLfCdE=S_>E zC0s81j`x-YlQ!Pq)Y*Cz%S#i!N`5{?(sQg;Swn5y0K*4dcK&`-G8~`5>@lbx9Yanl z7h!8=xC=r%#OpTIe-z;xWy z1pje~ti5T?Y^|RHwGb2MzVA;jRq?ZgmjV8z$&eeSY$ZdY>8;i+_hETHLo1}-NfH=x zrjRU;(?fuydW=kg;Y<&$u@GU(Ccmb9ky9~Dkp>u3zC=vrhGG~|_$z>wJRKWcq~x@m zgQCDMn<(jc>%6NNiAhMw4|D)?*Lh#>G4Po-`6UpLarNE06GlW#B2Ndf1S0(JLwSP! zrRo1kk*b&_h4Gwz0UNP|t~oR{{gy-8!s4}^c!pv;Is;)py8s|_LqgF!c<<%y;R}}l zk#3u$IK`~9jBh<=QyA``!0Uc`I=#+zD=YgKZ$6NQ>a$t01%_ljP+5Cy5=h7E|4=&% zkas}-2~z$aAB5EaGay~;Qg{DJxIY6zW%#gh=|B$)$c0llPq~2us--BPr}tC7x_4_?OCr#n}PKemZ{;- zJlgsIt8QO*e}?uSp|q+cWryQ+P@UXDqk7uShcN!p)}XE8IM&e0Np#%iXq2InaK!>H7Z0 z1ZvjK19LcQfR`>yjc4wU2PXId^4%R?mCd?(S2rC?vr!ty9$MryDLFG032&@cxCX26 zKwt4a88DreH>F>7`>Qrj?f{ZaH@b4;&y{Naout%OoflsUT2KdTD>N35Jadqi2kWSg zfJzl%7A21j7Sl=4_sG+Ogm?pZJz_bKFWM`b2+f^wJThcipxb$JV(Ye44kY#`#X*0Y06Z@rJ^p6aLqX^55f--NqKUy6l_~u1f>a3q3 z8$0xHjUV+D&e)1K3&DvUc~B+}t8mwwONHoRdzi48ya7wo7wzuSySZx-(LxXjD7FMG zhd-DB7ao06o(GoG&fU$hiw}EVBB_L0nk^K!U#W4FZMEzlqL1UvF%3@pA5DvyKAuWS zV%4$!y31Xb4TZCkFh;w$b@0X{%i51&HQO%-sX1A;t;mlgSP$J`QHRyQQ z^aDL-RI}!=`Xcx1VP3>-om*-k$r*DQe?D)@WHoi;MEAru8Gm`>E?=k9@j-|TecV+ z7%ipUhnyB$Qt9h$e%c--`q0}g@{iV9F#u6fwJ~Jt)jwB+l}S#rgH7R;EsvV#ve8>y zqzcEU;b?p+!xDc%vy|7dPD`PM0E|(|9r%~Ehrk?-QmuEr*Vg^RDd zSN&rw6f>Oxe^fU5a__I#5TN_YxP+O1+sW@U6cK#$@oe2uSzrbrq|gUc>*5#P1E)+z z>Br5WVqW#<6A{VAI@>J%(`GNAONRa5bY6cZGug%(b*H~S3!LToJIyL9mi`gm!ERp&_?eeW3F(8G@f z#pHzuxvBn;qt`_@Qb?AhET<59L~Kj1oVysfOLF?A`ez!l9Rhx)!VuiQLdaiZWl{kX zyfqSW`|kulQzr6AU-*)#XktL{-oLq#Y!4`i+<0pc&p%fV6gfGva z2BN>;36MX2!^`zostIv9U5?+?zq7KvnCz38CPcy%jWpk1m4C3$$MN8VP5Cdit=j7hBb2SE7Msf{=J#+FxJtpC6K|fIu2XKezXv7ynN6-+TX)EdRgKN|6+XC(BP27h|t^ S7)1p9sjFz+ExThC@xK5^yayBj diff --git a/blueprints/networking/hub-and-spoke-vpn/main.tf b/blueprints/networking/hub-and-spoke-vpn/main.tf deleted file mode 100644 index 033908042f..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/main.tf +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# enable services in the project used - -module "project" { - source = "../../..//modules/project" - name = var.project_id - parent = try(var.project_create_config.parent, null) - billing_account = try(var.project_create_config.billing_account_id, null) - project_create = try(var.project_create_config.billing_account_id, null) != null - services = [ - "compute.googleapis.com", - "dns.googleapis.com" - ] -} - -# test VM in landing region 1 - -module "landing-r1-vm" { - source = "../../../modules/compute-vm" - project_id = var.project_id - name = "${var.prefix}-lnd-test-r1" - zone = "${var.regions.r1}-b" - network_interfaces = [{ - network = module.landing-vpc.self_link - subnetwork = module.landing-vpc.subnet_self_links["${var.regions.r1}/${var.prefix}-lnd-0"] - nat = false - addresses = null - }] - tags = ["ssh"] -} - -# test VM in prod region 1 - -module "prod-r1-vm" { - source = "../../../modules/compute-vm" - project_id = var.project_id - name = "${var.prefix}-prd-test-r1" - zone = "${var.regions.r1}-b" - network_interfaces = [{ - network = module.prod-vpc.self_link - subnetwork = module.prod-vpc.subnet_self_links["${var.regions.r1}/${var.prefix}-prd-0"] - nat = false - addresses = null - }] - tags = ["ssh"] -} - -# test VM in dev region 1 - -module "dev-r2-vm" { - source = "../../../modules/compute-vm" - project_id = var.project_id - name = "${var.prefix}-dev-test-r2" - zone = "${var.regions.r2}-b" - network_interfaces = [{ - network = module.dev-vpc.self_link - subnetwork = module.dev-vpc.subnet_self_links["${var.regions.r2}/${var.prefix}-dev-0"] - nat = false - addresses = null - }] - tags = ["ssh"] -} diff --git a/blueprints/networking/hub-and-spoke-vpn/net-dev.tf b/blueprints/networking/hub-and-spoke-vpn/net-dev.tf deleted file mode 100644 index fe033a6e54..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/net-dev.tf +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# tfdoc:file:description Development spoke VPC. - -module "dev-vpc" { - source = "../../../modules/net-vpc" - project_id = var.project_id - name = "${var.prefix}-dev" - subnets = [ - { - ip_cidr_range = var.ip_ranges.dev-0-r1 - name = "${var.prefix}-dev-0" - region = var.regions.r1 - secondary_ip_ranges = try( - var.ip_secondary_ranges.dev-0-r1, {} - ) - }, - { - ip_cidr_range = var.ip_ranges.dev-0-r2 - name = "${var.prefix}-dev-0" - region = var.regions.r2 - secondary_ip_ranges = try( - var.ip_secondary_ranges.dev-0-r2, {} - ) - } - ] -} - -module "dev-firewall" { - source = "../../../modules/net-vpc-firewall" - project_id = var.project_id - network = module.dev-vpc.name - default_rules_config = { - admin_ranges = values(var.ip_ranges) - } -} - -module "dev-dns-peering" { - source = "../../../modules/dns" - project_id = var.project_id - name = "${var.prefix}-example-com-dev-peering" - zone_config = { - domain = "example.com." - peering = { - client_networks = [module.dev-vpc.self_link] - peer_network = module.landing-vpc.self_link - } - } -} - -module "dev-dns-zone" { - source = "../../../modules/dns" - project_id = var.project_id - name = "${var.prefix}-dev-example-com" - zone_config = { - domain = "dev.example.com." - private = { - client_networks = [module.landing-vpc.self_link] - } - } - recordsets = { - "A localhost" = { records = ["127.0.0.1"] } - "A test-r2" = { records = [module.dev-r2-vm.internal_ip] } - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/net-landing.tf b/blueprints/networking/hub-and-spoke-vpn/net-landing.tf deleted file mode 100644 index 152d46bbff..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/net-landing.tf +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# tfdoc:file:description Landing hub VPC. - -module "landing-vpc" { - source = "../../../modules/net-vpc" - project_id = var.project_id - name = "${var.prefix}-lnd" - subnets = [ - { - ip_cidr_range = var.ip_ranges.land-0-r1 - name = "${var.prefix}-lnd-0" - region = var.regions.r1 - secondary_ip_ranges = try( - var.ip_secondary_ranges.land-0-r1, {} - ) - }, - { - ip_cidr_range = var.ip_ranges.land-0-r2 - name = "${var.prefix}-lnd-0" - region = var.regions.r2 - secondary_ip_ranges = try( - var.ip_secondary_ranges.land-0-r2, {} - ) - } - ] -} - -module "landing-firewall" { - source = "../../../modules/net-vpc-firewall" - project_id = var.project_id - network = module.landing-vpc.name - default_rules_config = { - admin_ranges = values(var.ip_ranges) - } -} - -module "landing-dns-zone" { - source = "../../../modules/dns" - project_id = var.project_id - name = "${var.prefix}-example-com" - zone_config = { - domain = "example.com." - private = { - client_networks = [module.landing-vpc.self_link] - } - } - recordsets = { - "A localhost" = { records = ["127.0.0.1"] } - "A test-r1" = { records = [module.landing-r1-vm.internal_ip] } - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/net-prod.tf b/blueprints/networking/hub-and-spoke-vpn/net-prod.tf deleted file mode 100644 index 385b7cbbdb..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/net-prod.tf +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# tfdoc:file:description Production spoke VPC. - -module "prod-vpc" { - source = "../../../modules/net-vpc" - project_id = var.project_id - name = "${var.prefix}-prd" - subnets = [ - { - ip_cidr_range = var.ip_ranges.prod-0-r1 - name = "${var.prefix}-prd-0" - region = var.regions.r1 - secondary_ip_ranges = try( - var.ip_secondary_ranges.prod-0-r1, {} - ) - }, - { - ip_cidr_range = var.ip_ranges.prod-0-r2 - name = "${var.prefix}-prd-0" - region = var.regions.r2 - secondary_ip_ranges = try( - var.ip_secondary_ranges.prod-0-r2, {} - ) - } - ] -} - -module "prod-firewall" { - source = "../../../modules/net-vpc-firewall" - project_id = var.project_id - network = module.prod-vpc.name - default_rules_config = { - admin_ranges = values(var.ip_ranges) - } -} - -module "prod-dns-peering" { - source = "../../../modules/dns" - project_id = var.project_id - name = "${var.prefix}-example-com-prd-peering" - zone_config = { - domain = "example.com." - peering = { - client_networks = [module.prod-vpc.self_link] - peer_network = module.landing-vpc.self_link - } - } -} - -module "prod-dns-zone" { - source = "../../../modules/dns" - project_id = var.project_id - name = "${var.prefix}-prd-example-com" - zone_config = { - domain = "prd.example.com." - private = { - client_networks = [module.landing-vpc.self_link] - } - } - recordsets = { - "A localhost" = { records = ["127.0.0.1"] } - "A test-r1" = { records = [module.prod-r1-vm.internal_ip] } - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/outputs.tf b/blueprints/networking/hub-and-spoke-vpn/outputs.tf deleted file mode 100644 index 062bbbfac9..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/outputs.tf +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -output "subnets" { - description = "Subnet details." - value = { - dev = { - for k, v in module.dev-vpc.subnets : k => { - id = v.id - ip_cidr_range = v.ip_cidr_range - } - } - landing = { - for k, v in module.landing-vpc.subnets : k => { - id = v.id - ip_cidr_range = v.ip_cidr_range - } - } - prod = { - for k, v in module.prod-vpc.subnets : k => { - id = v.id - ip_cidr_range = v.ip_cidr_range - } - } - } -} - -output "vms" { - description = "GCE VMs." - value = { - for mod in [module.landing-r1-vm, module.dev-r2-vm, module.prod-r1-vm] : - mod.instance.name => mod.internal_ip - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/variables.tf b/blueprints/networking/hub-and-spoke-vpn/variables.tf deleted file mode 100644 index 334d84968c..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/variables.tf +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -variable "ip_ranges" { - description = "Subnet IP CIDR ranges." - type = map(string) - default = { - land-0-r1 = "10.0.0.0/24" - land-0-r2 = "10.0.8.0/24" - dev-0-r1 = "10.0.16.0/24" - dev-0-r2 = "10.0.24.0/24" - prod-0-r1 = "10.0.32.0/24" - prod-0-r2 = "10.0.40.0/24" - } -} - -variable "ip_secondary_ranges" { - description = "Subnet secondary ranges." - type = map(map(string)) - default = {} -} - -variable "prefix" { - description = "Prefix used for resource names." - type = string - validation { - condition = var.prefix != "" - error_message = "Prefix cannot be empty." - } -} - -variable "project_create_config" { - description = "Populate with billing account id to trigger project creation." - type = object({ - billing_account_id = string - parent_id = string - }) - default = null -} - -variable "project_id" { - description = "Project id for all resources." - type = string -} - -variable "regions" { - description = "VPC regions." - type = map(string) - default = { - r1 = "europe-west1" - r2 = "europe-west4" - } -} - -variable "vpn_configs" { - description = "VPN configurations." - type = map(object({ - asn = number - custom_ranges = map(string) - })) - default = { - land-r1 = { - asn = 64513 - custom_ranges = { - "10.0.0.0/8" = "internal default" - } - } - dev-r1 = { - asn = 64514 - custom_ranges = null - } - prod-r1 = { - asn = 64515 - custom_ranges = null - } - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/vpn-dev-r1.tf b/blueprints/networking/hub-and-spoke-vpn/vpn-dev-r1.tf deleted file mode 100644 index 5dff262c9e..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/vpn-dev-r1.tf +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# tfdoc:file:description Landing to Development VPN for region 1. - -module "landing-to-dev-vpn-r1" { - source = "../../../modules/net-vpn-ha" - project_id = var.project_id - network = module.landing-vpc.self_link - region = var.regions.r1 - name = "${var.prefix}-lnd-to-dev-r1" - # router is created and managed by the production VPN module - # so we don't configure advertisements here - router_config = { - create = false - name = "${var.prefix}-lnd-vpn-r1" - asn = 64514 - } - peer_gateways = { - default = { gcp = module.dev-to-landing-vpn-r1.self_link } - } - tunnels = { - 0 = { - bgp_peer = { - address = "169.254.2.2" - asn = var.vpn_configs.dev-r1.asn - } - bgp_session_range = "169.254.2.1/30" - vpn_gateway_interface = 0 - } - 1 = { - bgp_peer = { - address = "169.254.2.6" - asn = var.vpn_configs.dev-r1.asn - } - bgp_session_range = "169.254.2.5/30" - vpn_gateway_interface = 1 - } - } -} - -module "dev-to-landing-vpn-r1" { - source = "../../../modules/net-vpn-ha" - project_id = var.project_id - network = module.dev-vpc.self_link - region = var.regions.r1 - name = "${var.prefix}-dev-to-lnd-r1" - router_config = { - name = "${var.prefix}-dev-vpn-r1" - asn = var.vpn_configs.dev-r1.asn - custom_advertise = { - all_subnets = false - ip_ranges = coalesce(var.vpn_configs.dev-r1.custom_ranges, {}) - mode = "CUSTOM" - } - } - peer_gateways = { - default = { gcp = module.landing-to-dev-vpn-r1.self_link } - } - tunnels = { - 0 = { - bgp_peer = { - address = "169.254.2.1" - asn = var.vpn_configs.land-r1.asn - } - bgp_session_range = "169.254.2.2/30" - shared_secret = module.landing-to-dev-vpn-r1.random_secret - vpn_gateway_interface = 0 - } - 1 = { - bgp_peer = { - address = "169.254.2.5" - asn = var.vpn_configs.land-r1.asn - } - bgp_session_range = "169.254.2.6/30" - shared_secret = module.landing-to-dev-vpn-r1.random_secret - vpn_gateway_interface = 1 - } - } -} diff --git a/blueprints/networking/hub-and-spoke-vpn/vpn-prod-r1.tf b/blueprints/networking/hub-and-spoke-vpn/vpn-prod-r1.tf deleted file mode 100644 index 678fa1452f..0000000000 --- a/blueprints/networking/hub-and-spoke-vpn/vpn-prod-r1.tf +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# tfdoc:file:description Landing to Production VPN for region 1. - -module "landing-to-prod-vpn-r1" { - source = "../../../modules/net-vpn-ha" - project_id = var.project_id - network = module.landing-vpc.self_link - region = var.regions.r1 - name = "${var.prefix}-lnd-to-prd-r1" - router_config = { - name = "${var.prefix}-lnd-vpn-r1" - asn = var.vpn_configs.land-r1.asn - custom_advertise = { - all_subnets = false - ip_ranges = coalesce(var.vpn_configs.land-r1.custom_ranges, {}) - } - } - peer_gateways = { - default = { gcp = module.prod-to-landing-vpn-r1.self_link } - } - tunnels = { - 0 = { - bgp_peer = { - address = "169.254.0.2" - asn = var.vpn_configs.prod-r1.asn - } - bgp_session_range = "169.254.0.1/30" - vpn_gateway_interface = 0 - } - 1 = { - bgp_peer = { - address = "169.254.0.6" - asn = var.vpn_configs.prod-r1.asn - } - bgp_session_range = "169.254.0.5/30" - vpn_gateway_interface = 1 - } - } -} - -module "prod-to-landing-vpn-r1" { - source = "../../../modules/net-vpn-ha" - project_id = var.project_id - network = module.prod-vpc.self_link - region = var.regions.r1 - name = "${var.prefix}-prd-to-lnd-r1" - router_config = { - name = "${var.prefix}-prd-vpn-r1" - asn = var.vpn_configs.prod-r1.asn - # the router is managed here but shared with the dev VPN - custom_advertise = { - all_subnets = false - ip_ranges = coalesce(var.vpn_configs.prod-r1.custom_ranges, {}) - } - } - peer_gateways = { - default = { gcp = module.landing-to-prod-vpn-r1.self_link } - } - tunnels = { - 0 = { - bgp_peer = { - address = "169.254.0.1" - asn = var.vpn_configs.land-r1.asn - } - bgp_session_range = "169.254.0.2/30" - shared_secret = module.landing-to-prod-vpn-r1.random_secret - vpn_gateway_interface = 0 - } - 1 = { - bgp_peer = { - address = "169.254.0.5" - asn = var.vpn_configs.land-r1.asn - } - bgp_session_range = "169.254.0.6/30" - shared_secret = module.landing-to-prod-vpn-r1.random_secret - vpn_gateway_interface = 1 - } - } -}