This module handles opinionated Google Cloud Platform cloud router. Optionally it can also create cloud nat
This module is meant for use with Terraform 1.3+ and tested using Terraform 1.3+. If you find incompatibilities using Terraform >=1.3, please open an issue.
Upgrade guides:
Basic usage of this module is as follows:
module "cloud_router" {
source = "terraform-google-modules/cloud-router/google"
version = "~> 7.3"
name = "example-router"
region = "us-central1"
bgp = {
# The ASN (16550, 64512 - 65534, 4200000000 - 4294967294) can be any private ASN
# not already used as a peer ASN in the same region and network or 16550 for Partner Interconnect.
asn = "65001"
}
project = "<PROJECT ID>"
network = "default"
}Functional examples are included in the examples directory. By default logging will be enabled for Cloud NAT with filter set to All. You can disable cloud nat logging by setting parameters in nats.log_config
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| bgp | BGP information specific to this router. | object({ |
null |
no |
| description | An optional description of this resource | string |
null |
no |
| encrypted_interconnect_router | An optional field to indicate if a router is dedicated to use with encrypted Interconnect Attachment | bool |
false |
no |
| name | Name of the router | string |
n/a | yes |
| nats | NATs to deploy on this router. | list(object({ |
[] |
no |
| network | A reference to the network to which this router belongs | string |
n/a | yes |
| project | The project ID to deploy to | string |
n/a | yes |
| region | Region where the router resides | string |
n/a | yes |
| Name | Description |
|---|---|
| nat | Created NATs |
| router | Created Router |
These sections describe requirements for using this module.
The following dependencies must be available:
- Terraform v1.3 and above
- Terraform Provider for GCP plugin v4.51 and above
A service account with the following roles must be used to provision the resources of this module:
- Network Admin:
roles/compute.networkAdmin
The Project Factory module and the [IAM module][iam-module] may be used in combination to provision a service account with the necessary roles applied.
A project with the following APIs enabled must be used to host the resources of this module:
- Google Cloud Compute Engine API:
compute.googleapis.com
The Project Factory module can be used to provision a project with the necessary APIs enabled.
Refer to the contribution guidelines for information on contributing to this module.