NOTE: Pre-release module!
This Terraform module will create two BIG-IP instances that will have the required infrastructure for high-availability using Device Groups and Failover Sync.
Name | Version |
---|---|
terraform | >= 0.14.5 |
>= 3.85.0 |
Name | Source | Version |
---|---|---|
instances | F5Networks/bigip-module/gcp | 1.1.0 |
Name | Type |
---|---|
google_compute_firewall.data_sync | resource |
google_compute_firewall.mgt_sync | resource |
google_compute_instance_group.group | resource |
google_compute_target_instance.target | resource |
google_compute_subnetwork.dsc_data | data source |
google_compute_subnetwork.dsc_mgmt | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
prefix | The prefix to use when naming resources managed by this module. Must be RFC1035 compliant and between 1 and 58 characters in length, inclusive. |
string |
n/a | yes |
project_id | The GCP project identifier where the BIG-IP HA pair will be created | string |
n/a | yes |
service_account | The email address of the service account which will be used for BIG-IP instances. | string |
n/a | yes |
zones | The compute zones where where the BIG-IP instances will be deployed. At least one zone must be provided; if more than one zone is given, the instances will be distributed among them. |
list(string) |
n/a | yes |
AS3_URL | URL to download the BIG-IP Application Service Extension 3 (AS3) module | string |
"https://github.com/F5Networks/f5-appsvcs-extension/releases/download/v3.28.0/f5-appsvcs-3.28.0-3.noarch.rpm" |
no |
CFE_URL | URL to download the BIG-IP Cloud Failover Extension module | string |
"https://github.com/F5Networks/f5-cloud-failover-extension/releases/download/v1.8.0/f5-cloud-failover-1.8.0-0.noarch.rpm" |
no |
DO_URL | URL to download the BIG-IP Declarative Onboarding module | string |
"https://github.com/F5Networks/f5-declarative-onboarding/releases/download/v1.21.0/f5-declarative-onboarding-1.21.0-3.noarch.rpm" |
no |
FAST_URL | URL to download the BIG-IP FAST module | string |
"https://github.com/F5Networks/f5-appsvcs-templates/releases/download/v1.9.0/f5-appsvcs-templates-1.9.0-1.noarch.rpm" |
no |
INIT_URL | URL to download the BIG-IP runtime init | string |
"https://cdn.f5.com/product/cloudsolutions/f5-bigip-runtime-init/v1.2.1/dist/f5-bigip-runtime-init-1.2.1-1.gz.run" |
no |
TS_URL | URL to download the BIG-IP Telemetry Streaming module | string |
"https://github.com/F5Networks/f5-telemetry-streaming/releases/download/v1.20.0/f5-telemetry-1.20.0-3.noarch.rpm" |
no |
automatic_restart | Determines if the BIG-IP VMs should be automatically restarted if terminated by GCE. Defaults to true to match expected GCE behaviour. |
bool |
true |
no |
custom_user_data | Override the onboarding BASH script used by F5Networks/terraform-gcp-bigip-module. | string |
null |
no |
disk_size_gb | Use this flag to set the boot volume size in GB. If left at the default value the boot disk will have the same size as the base image. |
number |
null |
no |
disk_type | The boot disk type to use with instances; can be 'pd-balanced', 'pd-ssd' (default), or 'pd-standard'. |
string |
"pd-ssd" |
no |
external_subnet_ids | TODO @memes - update | list(list(object({ |
[ |
no |
f5_password | The admin password of the F5 Bigip that will be deployed | string |
"" |
no |
f5_ssh_publickey | The path to the SSH public key to install on BIG-IP instances for admin access. | string |
"~/.ssh/id_rsa.pub" |
no |
f5_username | The admin username of the F5 Bigip that will be deployed | string |
"bigipuser" |
no |
gcp_secret_manager_authentication | Whether to use secret manager to pass authentication | bool |
false |
no |
gcp_secret_name | The secret to get the secret version for | string |
"" |
no |
gcp_secret_version | (Optional)The version of the secret to get. If it is not provided, the latest version is retrieved. | string |
"latest" |
no |
image | The self-link URI for a BIG-IP image to use as a base for the VM cluster. This can be an official F5 image from GCP Marketplace, or a customised image. |
string |
"projects/f5-7626-networks-public/global/images/f5-bigip-16-1-1-0-0-16-payg-good-1gbps-210917181041" |
no |
internal_subnet_ids | TODO @memes - update | list(list(object({ |
[ |
no |
labels | An optional map of string key:value pairs that will be applied to all resources created that accept labels. Default is an empty map. |
map(string) |
{} |
no |
libs_dir | Directory on the BIG-IP to download the A&O Toolchain into | string |
"/config/cloud/gcp/node_modules" |
no |
machine_type | The machine type to use for BIG-IP VMs; this may be a standard GCE machine type, or a customised VM ('custom-VCPUS-MEM_IN_MB'). Default value is 'n1-standard-4'. Note: machine_type is highly-correlated with network bandwidth and performance; an N2 machine type will give better performance but has limited regional availability. |
string |
"n1-standard-4" |
no |
metadata | Provide custom metadata values for BIG-IP instance | map(string) |
{} |
no |
mgmt_subnet_ids | TODO @memes - update List of maps of subnetids of the virtual network where the virtual machines will reside. |
list(list(object({ |
[ |
no |
min_cpu_platform | An optional constraint used when scheduling the BIG-IP VMs; this value prevents the VMs from being scheduled on hardware that doesn't meet the minimum CPU micro-architecture. Default value is 'Intel Skylake'. |
string |
"Intel Skylake" |
no |
onboard_log | Directory on the BIG-IP to store the cloud-init logs | string |
"/var/log/startup-script.log" |
no |
preemptible | If set to true, the BIG-IP instances will be deployed on preemptible VMs, which could be terminated at any time, and have a maximum lifetime of 24 hours. Default value is false. DO NOT SET TO TRUE UNLESS YOU UNDERSTAND THE RAMIFICATIONS! |
string |
false |
no |
sleep_time | The number of seconds/minutes of delay to build into creation of BIG-IP VMs; default is 250. BIG-IP requires a few minutes to complete the onboarding process and this value can be used to delay the processing of dependent Terraform resources. | string |
"300s" |
no |
targets | Defines the target types to create for integration with GCP forwarding-rules, and/or load balancers. |
object({ |
{ |
no |
Name | Description |
---|---|
mgmtPublicIPs | A map of BIG-IP instance name to public IP address, if any, on the management interface. |
names | The instance names of the BIG-IPs. |
self_links | A map of BIG-IP instance name to fully-qualified self-links. |
target_groups | A list of fully-qualified BIG-IP unmanaged instance group self-links. |
target_instances | A list of fully-qualified target instance self-links for the BIG-IPs. |