Skip to content

f5xc_gcp_vpc_site Resource - terraform-provider-f5xc

Manages a GCP VPC Site resource in F5 Distributed Cloud for deploying F5 sites within Google Cloud VPC environments.

~> Note For more information about this resource, please refer to the F5 XC API Documentation.

# GCP VPC Site Resource Example
# Manages a GCP VPC Site resource in F5 Distributed Cloud for deploying F5 sites within Google Cloud VPC environments.
terraform {
required_version = ">= 1.0"
required_providers {
f5xc = {
source = "f5xc-salesdemos/f5xc"
version = ">= 0.1.0"
}
}
}
# Basic GCP VPC Site configuration
resource "f5xc_gcp_vpc_site" "example" {
name = "example-gcp-vpc-site"
namespace = "staging"
labels = {
environment = "production"
managed_by = "terraform"
}
annotations = {
"owner" = "platform-team"
}
# GCP VPC Site configuration
gcp_region = "us-west1"
# GCP credentials reference
cloud_credentials {
name = "gcp-credentials"
namespace = "staging"
}
# Instance type
instance_type = "n1-standard-4"
# Ingress/Egress gateway
ingress_egress_gw {
gcp_certified_hw = "gcp-byol-multi-nic-voltmesh"
node_number = 1
inside_network {
new_network {
name = "inside-network"
}
}
outside_network {
new_network {
name = "outside-network"
}
}
inside_subnet {
new_subnet {
subnet_name = "inside-subnet"
primary_ipv4 = "10.0.1.0/24"
}
}
outside_subnet {
new_subnet {
subnet_name = "outside-subnet"
primary_ipv4 = "10.0.2.0/24"
}
}
}
# No worker nodes by default
no_worker_nodes {}
}

🔶 High Risk Operations — Some operations on this resource have high danger level. Destructive operations may require confirmation.

~> Dependencies — This resource requires: cloud_credentials.

name - Required String
Name of the GCP VPC Site. Must be unique within the namespace

namespace - Required String
Namespace where the GCP VPC Site will be created

annotations - Optional Map
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata

description - Optional String
Human readable description for the object

disable - Optional Bool
A value of true will administratively disable the object

labels - Optional Map
Labels is a user defined key value map that can be attached to resources for organization and filtering

address - Required String
Site’s geographical address that can be used to determine its latitude and longitude

admin_password - Optional Block
SecretType is used in an object to indicate a sensitive/confidential field
See Admin Password below for details.

-> One of the following:block_all_services - Optional Block
Enable this option

blocked_services - Optional Block
Disable node local services on this site
See Blocked Services below for details.

cloud_credentials - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See Cloud Credentials below for details.

coordinates - Optional Block
Coordinates of the site which provides the site physical location
See Coordinates below for details.

custom_dns - Optional Block
Custom DNS is the configured for specify CE site
See Custom DNS below for details.

default_blocked_services - Optional Block
Enable this option

-> One of the following:disable_encryption - Optional Block
Configuration parameter for disable encryption

disk_size - Required Number
Disk size to be used for this instance in GiB. 80 is 80 GiB

enable_encryption - Optional Block
Configuration parameter for enable encryption
See Enable Encryption below for details.

gcp_labels - Optional Block
GCP Label is a label consisting of a user-defined key and value. It helps to manage, identify, organize, search for, and filter resources in GCP console

gcp_region - Required String
GCP Region. Name for GCP Region

-> One of the following:ingress_egress_gw - Optional Block
Configuration parameter for ingress egress gw
See Ingress Egress Gw below for details.

ingress_gw - Optional Block
GCP Ingress Gateway. Single interface GCP ingress site

voltstack_cluster - Optional Block
App Stack cluster of single interface GCP site

instance_type - Required String
Select Instance size based on performance needed

kubernetes_upgrade_drain - Optional Block
Specify how worker nodes within a site will be upgraded

-> One of the following:log_receiver - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name

logs_streaming_disabled - Optional Block
Enable this option

offline_survivability_mode - Optional Block
Offline Survivability allows the Site to continue functioning normally without traffic loss during periods of connectivity loss to the Regional Edge (RE) or the Global Controller (GC). When this feature is enabled, a site can continue to function as is with existing configuration for upto 7

os - Optional Block
Select the F5XC Operating System Version for the site. By default, latest available OS Version will be used. Refer to release notes to find required released OS versions

-> One of the following:private_connect_disabled - Optional Block
Enable this option

private_connectivity - Optional Block
X-displayName: ‘Private Connect Configuration’ Private Connect Configuration

ssh_key - Required String
Public SSH key for accessing the site

sw - Optional Block
Select the F5XC Software Version for the site. By default, latest available F5XC Software Version will be used. Refer to release notes to find required released SW versions

timeouts - Optional Block

In addition to all arguments above, the following attributes are exported:

id - Optional String
Unique identifier for the resource


An admin_password block supports the following:

blindfold_secret_info - Optional Block
X-displayName: ‘Blindfold Secret’ BlindfoldSecretInfoType specifies information about the Secret managed by F5XC Secret Management
See Blindfold Secret Info below.

blindfold_secret_info_internal - Optional Block
X-displayName: ‘Blindfold Secret’ BlindfoldSecretInfoType specifies information about the Secret managed by F5XC Secret Management
See Blindfold Secret Info Internal below.

clear_secret_info - Optional Block
X-displayName: ‘In-Clear Secret’ ClearSecretInfoType specifies information about the Secret that is not encrypted
See Clear Secret Info below.

secret_encoding_type - Optional String Defaults to EncodingNone
Possible values are EncodingNone, Encodingbase64
[Enum: EncodingNone|Encodingbase64] X-displayName: ‘Secret Encoding’ SecretEncodingType defines the encoding type of the secret before handled by the Secret Management Service. - EncodingNone: x-displayName: ‘None’ No Encoding - Encodingbase64: base64 x-displayName: ‘base64’ base64 encoding

vault_secret_info - Optional Block
X-displayName: ‘Vault Secret’ VaultSecretInfoType specifies information about the Secret managed by Hashicorp Vault
See Vault Secret Info below.

wingman_secret_info - Optional Block
X-displayName: ‘Wingman Secret’ WingmanSecretInfoType specifies the handle to the wingman secret
See Wingman Secret Info below.

A blindfold_secret_info block (within admin_password) supports the following:

decryption_provider - Optional String
Name of the Secret Management Access object that contains information about the backend Secret Management service

location - Optional String
Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location

store_provider - Optional String
Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///

Admin Password Blindfold Secret Info Internal

Section titled “Admin Password Blindfold Secret Info Internal”

A blindfold_secret_info_internal block (within admin_password) supports the following:

decryption_provider - Optional String
Name of the Secret Management Access object that contains information about the backend Secret Management service

location - Optional String
Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location

store_provider - Optional String
Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///

A clear_secret_info block (within admin_password) supports the following:

provider_ref - Optional String
Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///

url - Optional String
URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded base64 format. When asked for this secret, caller will GET Secret bytes after base64 decoding

A vault_secret_info block (within admin_password) supports the following:

key - Optional String
X-displayName: ‘Key’ Key of the individual secret. Vault Secrets are stored as key-value pair. If user is only interested in one value from the map, this field should be set to the corresponding key

location - Optional String
X-displayName: ‘Location’Path to secret in Vault

provider_ref - Optional String
X-displayName: ‘Provider’Name of the Secret Management Access object that contains information about the backend Vault

secret_encoding - Optional String Defaults to EncodingNone
Possible values are EncodingNone, Encodingbase64
[Enum: EncodingNone|Encodingbase64] X-displayName: ‘Secret Encoding’ SecretEncodingType defines the encoding type of the secret before handled by the Secret Management Service. - EncodingNone: x-displayName: ‘None’ No Encoding - Encodingbase64: base64 x-displayName: ‘base64’ base64 encoding

version - Optional Number
X-displayName: ‘Version’ Version of the secret to be fetched. As vault secrets are versioned, user can specify this field to fetch specific version. If not provided latest version will be returned

A wingman_secret_info block (within admin_password) supports the following:

name - Optional String
X-displayName: ‘Name’Name of the secret

A blocked_services block supports the following:

blocked_service - Optional Block
Disable Node Local Services. Blocking or denial configuration
See Blocked Service below.

A blocked_service block (within blocked_services) supports the following:

dns - Optional Block
Enable this option

network_type - Optional String Defaults to VIRTUAL_NETWORK_SITE_LOCAL
Possible values are VIRTUAL_NETWORK_SITE_LOCAL, VIRTUAL_NETWORK_SITE_LOCAL_INSIDE, VIRTUAL_NETWORK_PER_SITE, VIRTUAL_NETWORK_PUBLIC, VIRTUAL_NETWORK_GLOBAL, VIRTUAL_NETWORK_SITE_SERVICE, VIRTUAL_NETWORK_VER_INTERNAL, VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE, VIRTUAL_NETWORK_IP_AUTO, VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK, VIRTUAL_NETWORK_SRV6_NETWORK, VIRTUAL_NETWORK_IP_FABRIC, VIRTUAL_NETWORK_SEGMENT, VIRTUAL_NETWORK_MANAGEMENT
[Enum: VIRTUAL_NETWORK_SITE_LOCAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE|VIRTUAL_NETWORK_PER_SITE|VIRTUAL_NETWORK_PUBLIC|VIRTUAL_NETWORK_GLOBAL|VIRTUAL_NETWORK_SITE_SERVICE|VIRTUAL_NETWORK_VER_INTERNAL|VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE|VIRTUAL_NETWORK_IP_AUTO|VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK|VIRTUAL_NETWORK_SRV6_NETWORK|VIRTUAL_NETWORK_IP_FABRIC|VIRTUAL_NETWORK_SEGMENT|VIRTUAL_NETWORK_MANAGEMENT] Different types of virtual networks understood by the system Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public (outside) network. This is an insecure network and is connected to public internet via NAT Gateways/firwalls Virtual-network of this type is local to

ssh - Optional Block
Enable this option

web_user_interface - Optional Block
Enable this option

A cloud_credentials block supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

A coordinates block supports the following:

latitude - Optional Number
Latitude. Latitude of the site location

longitude - Optional Number
Longitude. Longitude of site location

A custom_dns block supports the following:

inside_nameserver - Optional String
Optional DNS server IP to be used for name resolution in inside network

outside_nameserver - Optional String
Optional DNS server IP to be used for name resolution in outside network

An enable_encryption block supports the following:

kms_key_resource_id - Optional String
GCP KMS Key to be used to encrypt the disk attached to the VM

kms_key_ring_id - Optional String
Key ring in which the CMK to be used to encrypt is present

An ingress_egress_gw block supports the following:

active_enhanced_firewall_policies - Optional Block
List of Enhanced Firewall Policies These policies use session-based rules and provide all OPTIONS available under firewall policies with an additional option for service insertion
See Active Enhanced Firewall Policies below.

active_forward_proxy_policies - Optional Block
Ordered List of Forward Proxy Policies active
See Active Forward Proxy Policies below.

active_network_policies - Optional Block
Configuration parameter for active network policies
See Active Network Policies below.

dc_cluster_group_inside_vn - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See Dc Cluster Group Inside Vn below.

dc_cluster_group_outside_vn - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See Dc Cluster Group Outside Vn below.

forward_proxy_allow_all - Optional Block
Configuration parameter for forward proxy allow all

gcp_certified_hw - Optional String
Name for GCP certified hardware

gcp_zone_names - Optional List
X-required List of zones when instances will be created, needs to match with region selected

global_network_list - Optional Block
Global Network Connection List. List of global network connections
See Global Network List below.

inside_network - Optional Block
Defines choice about GCP VPC network for a view
See Inside Network below.

inside_static_routes - Optional Block
Configuration parameter for inside static routes
See Inside Static Routes below.

inside_subnet - Optional Block
Defines choice about GCP VPC network for a view
See Inside Subnet below.

no_dc_cluster_group - Optional Block
Enable this option

no_forward_proxy - Optional Block
Configuration parameter for no forward proxy

no_global_network - Optional Block
Configuration parameter for no global network

no_inside_static_routes - Optional Block
Configuration parameter for no inside static routes

no_network_policy - Optional Block
Policy configuration for this feature

no_outside_static_routes - Optional Block
Configuration parameter for no outside static routes

node_number - Optional Number
Number of main nodes to create, either 1 or 3

outside_network - Optional Block
Defines choice about GCP VPC network for a view
See Outside Network below.

outside_static_routes - Optional Block
Configuration parameter for outside static routes
See Outside Static Routes below.

outside_subnet - Optional Block
Defines choice about GCP VPC network for a view
See Outside Subnet below.

performance_enhancement_mode - Optional Block
Optimize the site for L3 or L7 traffic processing. L7 optimized is the default
See Performance Enhancement Mode below.

sm_connection_public_ip - Optional Block
Enable this option

sm_connection_pvt_ip - Optional Block
Enable this option

Ingress Egress Gw Active Enhanced Firewall Policies

Section titled “Ingress Egress Gw Active Enhanced Firewall Policies”

An active_enhanced_firewall_policies block (within ingress_egress_gw) supports the following:

enhanced_firewall_policies - Optional Block
Ordered List of Enhanced Firewall Policies active
See Enhanced Firewall Policies below.

Ingress Egress Gw Active Enhanced Firewall Policies Enhanced Firewall Policies

Section titled “Ingress Egress Gw Active Enhanced Firewall Policies Enhanced Firewall Policies”

Deeply nested Policies block collapsed for readability.

Ingress Egress Gw Active Forward Proxy Policies

Section titled “Ingress Egress Gw Active Forward Proxy Policies”

An active_forward_proxy_policies block (within ingress_egress_gw) supports the following:

forward_proxy_policies - Optional Block
Ordered List of Forward Proxy Policies active
See Forward Proxy Policies below.

Ingress Egress Gw Active Forward Proxy Policies Forward Proxy Policies

Section titled “Ingress Egress Gw Active Forward Proxy Policies Forward Proxy Policies”

Deeply nested Policies block collapsed for readability.

An active_network_policies block (within ingress_egress_gw) supports the following:

network_policies - Optional Block
Ordered List of Firewall Policies active for this network firewall
See Network Policies below.

Ingress Egress Gw Active Network Policies Network Policies

Section titled “Ingress Egress Gw Active Network Policies Network Policies”

Deeply nested Policies block collapsed for readability.

Ingress Egress Gw Dc Cluster Group Inside Vn

Section titled “Ingress Egress Gw Dc Cluster Group Inside Vn”

Deeply nested Vn block collapsed for readability.

Ingress Egress Gw Dc Cluster Group Outside Vn

Section titled “Ingress Egress Gw Dc Cluster Group Outside Vn”

Deeply nested Vn block collapsed for readability.

A global_network_list block (within ingress_egress_gw) supports the following:

global_network_connections - Optional Block
Global network connections
See Global Network Connections below.

Ingress Egress Gw Global Network List Global Network Connections

Section titled “Ingress Egress Gw Global Network List Global Network Connections”

Deeply nested Connections block collapsed for readability.

Ingress Egress Gw Global Network List Global Network Connections SLI To Global DR

Section titled “Ingress Egress Gw Global Network List Global Network Connections SLI To Global DR”

Deeply nested DR block collapsed for readability.

Ingress Egress Gw Global Network List Global Network Connections SLI To Global DR Global Vn

Section titled “Ingress Egress Gw Global Network List Global Network Connections SLI To Global DR Global Vn”

Deeply nested Vn block collapsed for readability.

Ingress Egress Gw Global Network List Global Network Connections Slo To Global DR

Section titled “Ingress Egress Gw Global Network List Global Network Connections Slo To Global DR”

Deeply nested DR block collapsed for readability.

Ingress Egress Gw Global Network List Global Network Connections Slo To Global DR Global Vn

Section titled “Ingress Egress Gw Global Network List Global Network Connections Slo To Global DR Global Vn”

Deeply nested Vn block collapsed for readability.

An inside_network block (within ingress_egress_gw) supports the following:

existing_network - Optional Block
Configuration parameter for existing network
See Existing Network below.

new_network - Optional Block
Parameters to create a new GCP VPC Network
See New Network below.

new_network_autogenerate - Optional Block
Create a new GCP VPC Network with autogenerated name

Ingress Egress Gw Inside Network Existing Network

Section titled “Ingress Egress Gw Inside Network Existing Network”

An existing_network block (within ingress_egress_gw.inside_network) supports the following:

name - Optional String
Name for your GCP VPC Network

Ingress Egress Gw Inside Network New Network

Section titled “Ingress Egress Gw Inside Network New Network”

A new_network block (within ingress_egress_gw.inside_network) supports the following:

name - Optional String
Name for your GCP VPC Network

An inside_static_routes block (within ingress_egress_gw) supports the following:

static_route_list - Optional Block
List of Static Routes. List of Static routes
See Static Route List below.

Ingress Egress Gw Inside Static Routes Static Route List

Section titled “Ingress Egress Gw Inside Static Routes Static Route List”

Deeply nested List block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route”

Deeply nested Route block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop”

Deeply nested Nexthop block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Interface

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Interface”

Deeply nested Interface block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address”

Deeply nested Address block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4”

Deeply nested IPv4 block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6”

Deeply nested IPv6 block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets”

Deeply nested Subnets block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets IPv4

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets IPv4”

Deeply nested IPv4 block collapsed for readability.

Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets IPv6

Section titled “Ingress Egress Gw Inside Static Routes Static Route List Custom Static Route Subnets IPv6”

Deeply nested IPv6 block collapsed for readability.

An inside_subnet block (within ingress_egress_gw) supports the following:

existing_subnet - Optional Block
Configuration parameter for existing subnet
See Existing Subnet below.

new_subnet - Optional Block
GCP subnet parameters Type. Parameters for GCP subnet
See New Subnet below.

Ingress Egress Gw Inside Subnet Existing Subnet

Section titled “Ingress Egress Gw Inside Subnet Existing Subnet”

An existing_subnet block (within ingress_egress_gw.inside_subnet) supports the following:

subnet_name - Optional String
Name of your subnet in VPC network

Ingress Egress Gw Inside Subnet New Subnet

Section titled “Ingress Egress Gw Inside Subnet New Subnet”

A new_subnet block (within ingress_egress_gw.inside_subnet) supports the following:

primary_ipv4 - Optional String
IPv4 prefix for this Subnet. It has to be private address space

subnet_name - Optional String
Name of new VPC Subnet, will be autogenerated if empty

An outside_network block (within ingress_egress_gw) supports the following:

existing_network - Optional Block
Configuration parameter for existing network
See Existing Network below.

new_network - Optional Block
Parameters to create a new GCP VPC Network
See New Network below.

new_network_autogenerate - Optional Block
Create a new GCP VPC Network with autogenerated name

Ingress Egress Gw Outside Network Existing Network

Section titled “Ingress Egress Gw Outside Network Existing Network”

An existing_network block (within ingress_egress_gw.outside_network) supports the following:

name - Optional String
Name for your GCP VPC Network

Ingress Egress Gw Outside Network New Network

Section titled “Ingress Egress Gw Outside Network New Network”

A new_network block (within ingress_egress_gw.outside_network) supports the following:

name - Optional String
Name for your GCP VPC Network

An outside_static_routes block (within ingress_egress_gw) supports the following:

static_route_list - Optional Block
List of Static Routes. List of Static routes
See Static Route List below.

Ingress Egress Gw Outside Static Routes Static Route List

Section titled “Ingress Egress Gw Outside Static Routes Static Route List”

Deeply nested List block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route”

Deeply nested Route block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop”

Deeply nested Nexthop block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Interface

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Interface”

Deeply nested Interface block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address”

Deeply nested Address block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4”

Deeply nested IPv4 block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6”

Deeply nested IPv6 block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets”

Deeply nested Subnets block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets IPv4

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets IPv4”

Deeply nested IPv4 block collapsed for readability.

Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets IPv6

Section titled “Ingress Egress Gw Outside Static Routes Static Route List Custom Static Route Subnets IPv6”

Deeply nested IPv6 block collapsed for readability.

An outside_subnet block (within ingress_egress_gw) supports the following:

existing_subnet - Optional Block
Configuration parameter for existing subnet
See Existing Subnet below.

new_subnet - Optional Block
GCP subnet parameters Type. Parameters for GCP subnet
See New Subnet below.

Ingress Egress Gw Outside Subnet Existing Subnet

Section titled “Ingress Egress Gw Outside Subnet Existing Subnet”

An existing_subnet block (within ingress_egress_gw.outside_subnet) supports the following:

subnet_name - Optional String
Name of your subnet in VPC network

Ingress Egress Gw Outside Subnet New Subnet

Section titled “Ingress Egress Gw Outside Subnet New Subnet”

A new_subnet block (within ingress_egress_gw.outside_subnet) supports the following:

primary_ipv4 - Optional String
IPv4 prefix for this Subnet. It has to be private address space

subnet_name - Optional String
Name of new VPC Subnet, will be autogenerated if empty

Ingress Egress Gw Performance Enhancement Mode

Section titled “Ingress Egress Gw Performance Enhancement Mode”

A performance_enhancement_mode block (within ingress_egress_gw) supports the following:

perf_mode_l3_enhanced - Optional Block
Configuration parameter for perf mode l3 enhanced
See Perf Mode L3 Enhanced below.

perf_mode_l7_enhanced - Optional Block
Configuration parameter for perf mode l7 enhanced

Ingress Egress Gw Performance Enhancement Mode Perf Mode L3 Enhanced

Section titled “Ingress Egress Gw Performance Enhancement Mode Perf Mode L3 Enhanced”

Deeply nested Enhanced block collapsed for readability.

An ingress_gw block supports the following:

gcp_certified_hw - Optional String
Name for GCP certified hardware

gcp_zone_names - Optional List
X-required List of zones when instances will be created, needs to match with region selected

local_network - Optional Block
Defines choice about GCP VPC network for a view
See Local Network below.

local_subnet - Optional Block
Defines choice about GCP VPC network for a view
See Local Subnet below.

node_number - Optional Number
Number of main nodes to create, either 1 or 3

performance_enhancement_mode - Optional Block
Optimize the site for L3 or L7 traffic processing. L7 optimized is the default
See Performance Enhancement Mode below.

A local_network block (within ingress_gw) supports the following:

existing_network - Optional Block
Configuration parameter for existing network
See Existing Network below.

new_network - Optional Block
Parameters to create a new GCP VPC Network
See New Network below.

new_network_autogenerate - Optional Block
Create a new GCP VPC Network with autogenerated name

An existing_network block (within ingress_gw.local_network) supports the following:

name - Optional String
Name for your GCP VPC Network

A new_network block (within ingress_gw.local_network) supports the following:

name - Optional String
Name for your GCP VPC Network

A local_subnet block (within ingress_gw) supports the following:

existing_subnet - Optional Block
Configuration parameter for existing subnet
See Existing Subnet below.

new_subnet - Optional Block
GCP subnet parameters Type. Parameters for GCP subnet
See New Subnet below.

An existing_subnet block (within ingress_gw.local_subnet) supports the following:

subnet_name - Optional String
Name of your subnet in VPC network

A new_subnet block (within ingress_gw.local_subnet) supports the following:

primary_ipv4 - Optional String
IPv4 prefix for this Subnet. It has to be private address space

subnet_name - Optional String
Name of new VPC Subnet, will be autogenerated if empty

A performance_enhancement_mode block (within ingress_gw) supports the following:

perf_mode_l3_enhanced - Optional Block
Configuration parameter for perf mode l3 enhanced
See Perf Mode L3 Enhanced below.

perf_mode_l7_enhanced - Optional Block
Configuration parameter for perf mode l7 enhanced

Ingress Gw Performance Enhancement Mode Perf Mode L3 Enhanced

Section titled “Ingress Gw Performance Enhancement Mode Perf Mode L3 Enhanced”

Deeply nested Enhanced block collapsed for readability.

A kubernetes_upgrade_drain block supports the following:

disable_upgrade_drain - Optional Block
Configuration parameter for disable upgrade drain

enable_upgrade_drain - Optional Block
Specify batch upgrade settings for worker nodes within a site
See Enable Upgrade Drain below.

Kubernetes Upgrade Drain Enable Upgrade Drain

Section titled “Kubernetes Upgrade Drain Enable Upgrade Drain”

An enable_upgrade_drain block (within kubernetes_upgrade_drain) supports the following:

disable_vega_upgrade_mode - Optional Block
Configuration parameter for disable vega upgrade mode

drain_max_unavailable_node_count - Optional Number
Node Batch Size Count

drain_node_timeout - Optional Number
Seconds to wait before initiating upgrade on the next set of nodes. Setting it to 0 will wait indefinitely for all services on nodes to be upgraded gracefully before proceeding to the next set of nodes. (Warning: It may block upgrade if services on a node cannot be gracefully upgraded. It is

enable_vega_upgrade_mode - Optional Block
Configuration parameter for enable vega upgrade mode

A log_receiver block supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

An offline_survivability_mode block supports the following:

enable_offline_survivability_mode - Optional Block
Configuration parameter for enable offline survivability mode

no_offline_survivability_mode - Optional Block
Configuration parameter for no offline survivability mode

An os block supports the following:

default_os_version - Optional Block
Enable this option

operating_system_version - Optional String
Specify a OS version to be used e.g. 9.2024.6

A private_connectivity block supports the following:

cloud_link - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See Cloud Link below.

inside - Optional Block
Enable this option

outside - Optional Block
Enable this option

A cloud_link block (within private_connectivity) supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

A sw block supports the following:

default_sw_version - Optional Block
Enable this option

volterra_software_version - Optional String
Specify a F5XC Software Version to be used e.g. Crt-20210329-1002

A timeouts block supports the following:

create - Optional String (Defaults to 30 minutes)
Used when creating the resource

delete - Optional String (Defaults to 30 minutes)
Used when deleting the resource

read - Optional String (Defaults to 5 minutes)
Used when retrieving the resource

update - Optional String (Defaults to 30 minutes)
Used when updating the resource

A voltstack_cluster block supports the following:

active_enhanced_firewall_policies - Optional Block
List of Enhanced Firewall Policies These policies use session-based rules and provide all OPTIONS available under firewall policies with an additional option for service insertion
See Active Enhanced Firewall Policies below.

active_forward_proxy_policies - Optional Block
Ordered List of Forward Proxy Policies active
See Active Forward Proxy Policies below.

active_network_policies - Optional Block
Configuration parameter for active network policies
See Active Network Policies below.

dc_cluster_group - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See Dc Cluster Group below.

default_storage - Optional Block
Configuration parameter for default storage

forward_proxy_allow_all - Optional Block
Configuration parameter for forward proxy allow all

gcp_certified_hw - Optional String
Name for GCP certified hardware

gcp_zone_names - Optional List
X-required List of zones when instances will be created, needs to match with region selected

global_network_list - Optional Block
Global Network Connection List. List of global network connections
See Global Network List below.

k8s_cluster - Optional Block
Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name
See K8S Cluster below.

no_dc_cluster_group - Optional Block
Enable this option

no_forward_proxy - Optional Block
Configuration parameter for no forward proxy

no_global_network - Optional Block
Configuration parameter for no global network

no_k8s_cluster - Optional Block
Enable this option

no_network_policy - Optional Block
Policy configuration for this feature

no_outside_static_routes - Optional Block
Configuration parameter for no outside static routes

node_number - Optional Number
Number of main nodes to create, either 1 or 3

outside_static_routes - Optional Block
Configuration parameter for outside static routes
See Outside Static Routes below.

site_local_network - Optional Block
Defines choice about GCP VPC network for a view
See Site Local Network below.

site_local_subnet - Optional Block
Defines choice about GCP VPC network for a view
See Site Local Subnet below.

sm_connection_public_ip - Optional Block
Enable this option

sm_connection_pvt_ip - Optional Block
Enable this option

storage_class_list - Optional Block
Add additional custom storage classes in Kubernetes for this site
See Storage Class List below.

Voltstack Cluster Active Enhanced Firewall Policies

Section titled “Voltstack Cluster Active Enhanced Firewall Policies”

An active_enhanced_firewall_policies block (within voltstack_cluster) supports the following:

enhanced_firewall_policies - Optional Block
Ordered List of Enhanced Firewall Policies active
See Enhanced Firewall Policies below.

Voltstack Cluster Active Enhanced Firewall Policies Enhanced Firewall Policies

Section titled “Voltstack Cluster Active Enhanced Firewall Policies Enhanced Firewall Policies”

Deeply nested Policies block collapsed for readability.

Voltstack Cluster Active Forward Proxy Policies

Section titled “Voltstack Cluster Active Forward Proxy Policies”

An active_forward_proxy_policies block (within voltstack_cluster) supports the following:

forward_proxy_policies - Optional Block
Ordered List of Forward Proxy Policies active
See Forward Proxy Policies below.

Voltstack Cluster Active Forward Proxy Policies Forward Proxy Policies

Section titled “Voltstack Cluster Active Forward Proxy Policies Forward Proxy Policies”

Deeply nested Policies block collapsed for readability.

An active_network_policies block (within voltstack_cluster) supports the following:

network_policies - Optional Block
Ordered List of Firewall Policies active for this network firewall
See Network Policies below.

Voltstack Cluster Active Network Policies Network Policies

Section titled “Voltstack Cluster Active Network Policies Network Policies”

A network_policies block (within voltstack_cluster.active_network_policies) supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

A dc_cluster_group block (within voltstack_cluster) supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

A global_network_list block (within voltstack_cluster) supports the following:

global_network_connections - Optional Block
Global network connections
See Global Network Connections below.

Voltstack Cluster Global Network List Global Network Connections

Section titled “Voltstack Cluster Global Network List Global Network Connections”

Deeply nested Connections block collapsed for readability.

Voltstack Cluster Global Network List Global Network Connections SLI To Global DR

Section titled “Voltstack Cluster Global Network List Global Network Connections SLI To Global DR”

Deeply nested DR block collapsed for readability.

Voltstack Cluster Global Network List Global Network Connections SLI To Global DR Global Vn

Section titled “Voltstack Cluster Global Network List Global Network Connections SLI To Global DR Global Vn”

Deeply nested Vn block collapsed for readability.

Voltstack Cluster Global Network List Global Network Connections Slo To Global DR

Section titled “Voltstack Cluster Global Network List Global Network Connections Slo To Global DR”

Deeply nested DR block collapsed for readability.

Voltstack Cluster Global Network List Global Network Connections Slo To Global DR Global Vn

Section titled “Voltstack Cluster Global Network List Global Network Connections Slo To Global DR Global Vn”

Deeply nested Vn block collapsed for readability.

A k8s_cluster block (within voltstack_cluster) supports the following:

name - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name

namespace - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace

tenant - Optional String
When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant

An outside_static_routes block (within voltstack_cluster) supports the following:

static_route_list - Optional Block
List of Static Routes. List of Static routes
See Static Route List below.

Voltstack Cluster Outside Static Routes Static Route List

Section titled “Voltstack Cluster Outside Static Routes Static Route List”

Deeply nested List block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route”

Deeply nested Route block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop”

Deeply nested Nexthop block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Interface

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Interface”

Deeply nested Interface block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address”

Deeply nested Address block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv4”

Deeply nested IPv4 block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Nexthop Nexthop Address IPv6”

Deeply nested IPv6 block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets”

Deeply nested Subnets block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets IPv4

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets IPv4”

Deeply nested IPv4 block collapsed for readability.

Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets IPv6

Section titled “Voltstack Cluster Outside Static Routes Static Route List Custom Static Route Subnets IPv6”

Deeply nested IPv6 block collapsed for readability.

A site_local_network block (within voltstack_cluster) supports the following:

existing_network - Optional Block
Configuration parameter for existing network
See Existing Network below.

new_network - Optional Block
Parameters to create a new GCP VPC Network
See New Network below.

new_network_autogenerate - Optional Block
Create a new GCP VPC Network with autogenerated name

Voltstack Cluster Site Local Network Existing Network

Section titled “Voltstack Cluster Site Local Network Existing Network”

An existing_network block (within voltstack_cluster.site_local_network) supports the following:

name - Optional String
Name for your GCP VPC Network

Voltstack Cluster Site Local Network New Network

Section titled “Voltstack Cluster Site Local Network New Network”

A new_network block (within voltstack_cluster.site_local_network) supports the following:

name - Optional String
Name for your GCP VPC Network

A site_local_subnet block (within voltstack_cluster) supports the following:

existing_subnet - Optional Block
Configuration parameter for existing subnet
See Existing Subnet below.

new_subnet - Optional Block
GCP subnet parameters Type. Parameters for GCP subnet
See New Subnet below.

Voltstack Cluster Site Local Subnet Existing Subnet

Section titled “Voltstack Cluster Site Local Subnet Existing Subnet”

An existing_subnet block (within voltstack_cluster.site_local_subnet) supports the following:

subnet_name - Optional String
Name of your subnet in VPC network

Voltstack Cluster Site Local Subnet New Subnet

Section titled “Voltstack Cluster Site Local Subnet New Subnet”

A new_subnet block (within voltstack_cluster.site_local_subnet) supports the following:

primary_ipv4 - Optional String
IPv4 prefix for this Subnet. It has to be private address space

subnet_name - Optional String
Name of new VPC Subnet, will be autogenerated if empty

A storage_class_list block (within voltstack_cluster) supports the following:

storage_classes - Optional Block
List of Storage Classes. List of custom storage classes
See Storage Classes below.

Voltstack Cluster Storage Class List Storage Classes

Section titled “Voltstack Cluster Storage Class List Storage Classes”

A storage_classes block (within voltstack_cluster.storage_class_list) supports the following:

default_storage_class - Optional Bool
Make this storage class default storage class for the K8S cluster

storage_class_name - Optional String
Name of the storage class as it will appear in K8S


The following type definitions are used throughout this resource. See the full definition here rather than repeated inline.

Object Reference {#common-object-reference}

Section titled “Object Reference {#common-object-reference}”

Object references establish a direct reference from one configuration object to another in F5 Distributed Cloud. References use the format tenant/namespace/name.

FieldTypeDescription
nameStringName of the referenced object
namespaceStringNamespace containing the referenced object
tenantStringTenant of the referenced object (system-managed)

Transformers apply transformations to input values before matching. Multiple transformers can be applied in order.

ValueDescription
LOWER_CASEConvert to lowercase
UPPER_CASEConvert to uppercase
BASE64_DECODEDecodebase64 content
NORMALIZE_PATHNormalize URL path
REMOVE_WHITESPACERemove whitespace characters
URL_DECODEDecode URL-encoded characters
TRIM_LEFTTrim leading whitespace
TRIM_RIGHTTrim trailing whitespace
TRIMTrim both leading and trailing whitespace

HTTP methods used for request matching.

ValueDescription
ANYMatch any HTTP method
GETHTTP GET request
HEADHTTP HEAD request
POSTHTTP POST request
PUTHTTP PUT request
DELETEHTTP DELETE request
CONNECTHTTP CONNECT request
OPTIONSHTTP OPTIONS request
TRACEHTTP TRACE request
PATCHHTTP PATCH request
COPYHTTP COPY request (WebDAV)

TLS Fingerprints {#common-tls-fingerprints}

Section titled “TLS Fingerprints {#common-tls-fingerprints}”

TLS fingerprint categories for malicious client detection.

ValueDescription
TLS_FINGERPRINT_NONENo fingerprint matching
ANY_MALICIOUS_FINGERPRINTMatch any known malicious fingerprint
ADWAREAdware-associated fingerprints
DRIDEXDridex malware fingerprints
GOOTKITGootkit malware fingerprints
RANSOMWARERansomware-associated fingerprints
TRICKBOTTrickbot malware fingerprints

IP Threat Categories {#common-ip-threat-categories}

Section titled “IP Threat Categories {#common-ip-threat-categories}”

IP address threat categories for security filtering.

ValueDescription
SPAM_SOURCESKnown spam sources
WINDOWS_EXPLOITSWindows exploit sources
WEB_ATTACKSWeb attack sources
BOTNETSKnown botnet IPs
SCANNERSNetwork scanner IPs
REPUTATIONPoor reputation IPs
PHISHINGPhishing-related IPs
PROXYAnonymous proxy IPs
MOBILE_THREATSMobile threat sources
TOR_PROXYTor exit nodes
DENIAL_OF_SERVICEDoS attack sources
NETWORKKnown bad network ranges

Import is supported using the following syntax:

Terminal window
# Import using namespace/name format
terraform import f5xc_gcp_vpc_site.example system/example