Skip to content

sr-ghe-org/terraform-gcp-shared-vpc-new

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This module supports the creation of a VPC network (subnets, routers, and firewall rules) within a Google Cloud host project.

**/

Requirements

Name Version
terraform >= 0.13.0
google >= 4.64
google-beta >= 4.64

Providers

Name Version
google >= 4.64
google-beta >= 4.64

Modules

Name Source Version
firewall_rules terraform-google-modules/network/google//modules/firewall-rules 9.1.0
router terraform-google-modules/cloud-router/google 6.0
vpc terraform-google-modules/network/google 9.1

Resources

Name Type
google-beta_google_vmwareengine_network_peering.vmw-engine-network-peering resource
google_compute_address.psc_address resource
google_compute_forwarding_rule.psc_forwarding_rule resource
google_compute_global_address.private_ip_address resource
google_compute_network_peering.local_network_peering resource
google_compute_network_peering_routes_config.peering_routes resource
google_service_networking_connection.private_service_access resource

Inputs

Name Description Type Default Required
network_configs Template Network Configuration
object({
vpc = optional(map(object({
project_id = string
name = string
routing_mode = string
delete_default_internet_gateway_routes = bool
reserve_static_ip = optional(bool, false)
subnets = list(object(
{
subnet_name = string,
subnet_ip = string,
subnet_region = string,
subnet_private_access = string,
subnet_private_ipv6_access = optional(string)
subnet_flow_logs = optional(string)
subnet_flow_logs_interval = optional(string)
subnet_flow_logs_sampling = optional(number)
subnet_flow_logs_metadata = optional(string)
subnet_flow_logs_filter = optional(string)
subnet_flow_logs_metadata_fields = optional(list(string))
description = optional(string)
purpose = optional(string)
role = optional(string)
stack_type = optional(string)
ipv6_access_type = optional(string)
})
)
secondary_ranges = optional(map(list(object({
range_name = string
ip_cidr_range = string
}))), {})
routers = optional(map(object({
name = string
region = string
})), {})
firewall_rules = object({
egress = optional(list(object({
name = string
description = optional(string, null)
disabled = optional(bool, null)
priority = optional(number, null)
destination_ranges = optional(list(string), [])
source_ranges = optional(list(string), [])
source_tags = optional(list(string))
source_service_accounts = optional(list(string))
target_tags = optional(list(string))
target_service_accounts = optional(list(string))

allow = optional(list(object({
protocol = string
ports = optional(list(string))
})), [])
deny = optional(list(object({
protocol = string
ports = optional(list(string))
})), [])
log_config = optional(object({
metadata = string
}))
})), []),
ingress = optional(list(object({
name = string
description = optional(string, null)
disabled = optional(bool, null)
priority = optional(number, null)
destination_ranges = optional(list(string), [])
source_ranges = optional(list(string), [])
source_tags = optional(list(string))
source_service_accounts = optional(list(string))
target_tags = optional(list(string))
target_service_accounts = optional(list(string))

allow = optional(list(object({
protocol = string
ports = optional(list(string))
})), [])
deny = optional(list(object({
protocol = string
ports = optional(list(string))
})), [])
log_config = optional(object({
metadata = string
}))
})), []),
}),
dns_peering_config = optional(map(object({
dns_name = string
domain = string
type = optional(string, "peering")
description = optional(string, null)
force_destroy = optional(bool, false)
private_visibility_config_networks = optional(list(string), [])
target_network = optional(string, "")
})), {})
vpc_peering_config = optional(map(object({
vpc_peering_name = string
local_network = optional(string)
peer_network = string
export_peer_custom_routes = optional(bool, false)
export_local_custom_routes = optional(bool, false)
export_peer_subnet_routes_with_public_ip = optional(bool, false)
export_local_subnet_routes_with_public_ip = optional(bool, true)
stack_type = optional(string, "IPV4_ONLY")
})), {})
reserve_ip_for_psa = optional(map(object({
reserve_ip_name = string
address = string
prefix_length = string
})), {})
private_service_access = optional(map(object({
network = string
reserved_peering_ranges = list(string)
service = string
custom_routes = optional(object({
export_custom_routes = optional(bool, false)
import_custom_routes = optional(bool, false)
}))
})), {})
})), {})
})
n/a yes
private_service_connect Private Service Connect configuration
map(object({
project_id = string
psc_address_name = string
network_self_link = string
subnetwork_self_link = string
psc_forwarding_rule_name = string
psc_service_attachment = string
region = string
}))
{} no
vmw_network_peering VMware network peering configuration
map(object({
name = string
description = optional(string, null)
peer_network = string
peer_network_type = optional(string, "STANDARD")
vmware_engine_network = string
export_custom_routes = optional(bool, false)
import_custom_routes = optional(bool, false)
export_custom_routes_with_public_ip = optional(bool, false)
import_custom_routes_with_public_ip = optional(bool, false)
}))
{} no

Outputs

Name Description
firewall_rules n/a
network_ids Map of VPC network IDs
project_ids Map of VPC project IDs
router n/a
vpc n/a

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages