cloud-foundation-fabric/cloud-operations/dns-shared-vpc
Andras Gyomrey d2ef4c3277 Allow using gVNIC in compute-vm (#211) 2021-11-08 11:18:15 +00:00
..
examples/shared-vpc-example Allow using gVNIC in compute-vm (#211) 2021-11-08 11:18:15 +00:00
README.md Aurelien's SVPC DNS example (#186) 2021-01-11 11:57:57 +01:00
diagram.png Aurelien's SVPC DNS example (#186) 2021-01-11 11:57:57 +01:00
main.tf Update copyright to 2021 2021-02-15 09:38:10 +01:00
outputs.tf Update copyright to 2021 2021-02-15 09:38:10 +01:00
variables.tf Update copyright to 2021 2021-02-15 09:38:10 +01:00
versions.tf Use the same versions file everywhere, pin to tf 1.0+ provider 4.0+ (#355) 2021-11-03 15:05:43 +01:00

README.md

Cloud DNS & Shared VPC design

Usage

This example shows how to create reusable and modular Cloud DNS architectures when using Shared VPC.

The goal is to provision dedicated Cloud DNS instances for application teams that want to manage their own DNS records, and configure DNS peering to ensure name resolution works in a common Shared VPC.

The example will:

  • Create a GCP project per application team based on the teams input variable
  • Create a VPC and Cloud DNS instance per application team
  • Create a Cloud DNS private zone per application team in the form of [teamname].[dns_domain], with teamname and dns_domain based on input variables
  • Configure DNS peering for each private zone from the Shared VPC to the DNS VPC of each application team

The resources created in this example are shown in the high level diagram below:

Note that Terraform 0.13 at least is required due to the use of for_each with modules.

Variables

name description type required default
billing_account_id Billing account associated with the GCP Projects that will be created for each team. string
folder_id Folder ID in which DNS projects will be created. string
shared_vpc_link Shared VPC self link, used for DNS peering. string
dns_domain DNS domain under which each application team DNS domain will be created. string example.org
prefix Customer name to use as prefix for resources' naming. string test-dns
project_services Service APIs enabled by default. list(string) ...
teams List of application teams requiring their own Cloud DNS instance. list(string) ...

Outputs

name description sensitive
teams Team resources