Setting up a Transit Network using Aviatrix Terraform Provider |
---|
The Aviatrix Terraform Provider is used to interact with Aviatrix resources. To learn more about Terraform, please see the Terraform Registry. |
Setting up a Terraform Provider |
# Configure Aviatrix provider provider "aviatrix" { controller_ip = "1.2.3.4" username = "username" password = "password" version = "2.2" } # Create a record resource "aviatrix_account" "myacc" { # ... }
Resources
These are the available resources for creating a transit VPC solution.
aviatrix_transit_gateway
Manages an Aviatrix Transit Gateway.
Example Usage
provider "aviatrix" { controller_ip = "1.2.3.4" username = "username" password = "password" version = "2.2" } # Create a transit gateway. # Omit ha_subnet to launch transit gateway without HA. # HA subnet can later be added or deleted to enable/disable HA in transit gateway resource "aviatrix_transit_gateway" "test_transit_gw" { cloud_type = 1 account_name = "devops" gw_name = "transit" vpc_id = "vpc-abcd1234" vpc_reg = "us-east-1" gw_size = "t2.micro" subnet = "10.1.0.0/24" ha_subnet = "10.1.0.0/24" tag_list = ["key:value", "key1:value1", "key2:value2"] }
cloud_type | Enter 1 for AWS cloud type. |
---|---|
account_name |
Enter Aviatrix’s cloud account name. |
gw_name |
Enter Gateway name for transit VPC. |
vpc_id |
VPC ID of transit VPC. |
gw_size |
Gateway size. |
subnet |
VPC subnet where you want to deploy transit VPC GW. |
ha_subnet |
(Optional) VPC subnet for HA. |
tag_list |
(Optional) List of tags with key/value pairs in string format. |
aviatrix_vgw_conn
Manages VGW connection
Example Usage :
provider "aviatrix" { controller_ip = "1.2.3.4" username = "username" password = "password" version = "2.2" } # Once this resource is created, VGW can be disconnected # from transit GW by destroying this resource using command: # terraform destroy --target aviatrix_vgw_conn.test_vgw_conn. resource "aviatrix_vgw_conn" "test_vgw_conn" { conn_name = "my_conn" gw_name = "transit" vpc_id = "vpc-abcd1234" bgp_vgw_id = "vgw-abcd1234" bgp_vgw_account = "devops" bgp_vgw_region = "us-east-1" bgp_local_as_num = "65001" }
conn_name |
Name for transit VPC to VGW connection. |
gw_name |
Transit VPC GW name. |
vpc_id |
Enter VPC Id of transit VPC. |
bgp_vgw_id |
Enter AWS VGW Id used for connection. |
bgp_vgw_account |
AWS Account Number of the VGW used. |
bgp_vgw_region |
Region of the AWS’s VGW used. |
bgp_local_as_num |
Enter BGP Local ASN. |
aviatrix_spoke_gateway
Manages an Aviatrix Spoke Gateway
Example Usage :
provider "aviatrix" { controller_ip = "1.2.3.4" username = "username" password = "password" version = "2.2" } # Launch a spoke gateway, and join with transit gateway. # Omit ha_subnet to launch spoke gateway without HA. # ha_subnet can be later added or deleted to enable/disable HA in spoke gateway # Omit transit_gw to launch spoke gateway without attaching with transit GW. # transit_gw can be later added or deleted to attach/detach from spoke gateway resource "aviatrix_spoke_gateway" "test_spoke" { cloud_type = 1 account_name = "devops" gw_name = "myspoke" vpc_id = "vpc-defg3456" vpc_reg = "us-east-1" gw_size = "t2.micro" subnet = "10.20.0.0/24" ha_subnet = "10.20.1.0/24" transit_gw = "transit" tag_list = ["key:value", "key:value1", "key:value2"] }
cloud_type | Enter 1 for AWS cloud type. |
---|---|
account_name |
Enter aviatrix cloud account name. |
gw_name |
Enter Gateway name for spoke gateway. |
vpc_id |
VPC ID for Spoke gateway. |
vpc_reg |
Gateway region. |
gw_size |
Gateway size. |
subnet |
VPC subnet where you want to deploy transit GW. |
enable_nat |
(Optional) Enter "yes" to enable NAT. |
ha_subnet |
(Optional) VPC subnet for HA. |
transit_gw |
(Optional) Transit Gateway name to join spoke Gateway with. |
tag_list |
(Optional) List of tags with key/value pairs in string format. |
Sample configuration to create complete transit VPC solution
Note
In this example, you must specify the username and password, controller_ip, account_email and other parameters. |
# Sample Aviatrix terraform configuration to create complete transit VPC solution # This configuration creates a cloud account on Aviatrix controller, launches transit gateway, creates VGW connection # with transit gateway # Launches a spoke GW, and attach with transit gateway. # Edit to enter your controller's IP, username and password to login with. provider "aviatrix" { controller_ip = "w.x.y.z" username = "username" password = "password" version = "2.2" } resource "aviatrix_account" "test_acc" { account_name = "devops" account_password = "account_password" account_email = "abc@xyz.com" cloud_type = 1 aws_account_number = "123456789012" aws_iam = "true" aws_role_app = "arn:aws:iam::123456789012:role/aviatrix-role-app" aws_role_ec2 = "arn:aws:iam::123456789012:role/aviatrix-role-ec2" } # Create transit gateway # Omit ha_subnet to launch transit gateway without HA. # ha_subnet can be later added or deleted to enable/disable HA in transit gateway resource "aviatrix_transit_gateway" "test_transit_gw" { cloud_type = 1 account_name = aviatrix_account.test_acc.account_name gw_name = "transit" vpc_id = "vpc-abcd1234" vpc_reg = "us-east-1" gw_size = "t2.micro" subnet = "10.20.0.0/24" ha_subnet = "10.20.1.0/24" } # Create VGW connection with transit gateway. # Once this resource is created, VGW can be disconnected # from transit GW by destroying this resource using command: # terraform destroy --target aviatrix_vgw_conn.test_vgw_conn. resource "aviatrix_vgw_conn" "test_vgw_conn" { conn_name = "my_conn" gw_name = aviatrix_transit_gateway.test_transit_gw.gw_name vpc_id = "vpc-abcd1234" bgp_vgw_id = "vgw-abcd1234" bgp_vgw_account = aviatrix_account.test_acc.account_name bgp_vgw_region = "us-east-1" bgp_local_as_num = "65001" depends_on = ["aviatrix_transit_gateway.test_transit_gw"] } # Launch a spoke gateway, and join with transit gateway. # Omit ha_subnet to launch spoke gateway without HA. # ha_subnet can be later added or deleted to enable/disable HA in spoke gateway # Omit transit_gw to launch spoke gateway without attaching with transit gateway. # transit_gw can be later added or deleted to attach/detach from spoke gateway resource "aviatrix_spoke_gateway" "test_spoke" { cloud_type = 1 account_name = aviatrix_account.test_acc.account_name gw_name = "myspoke" vpc_id = "vpc-defg1234" vpc_reg = "us-east-1" gw_size = "t2.micro" subnet = "10.21.0.0/24" ha_subnet = "10.21.1.0/24" transit_gw = aviatrix_transit_gateway.test_transit_gw.gw_name depends_on = ["aviatrix_vgw_conn.test_vgw_conn"] }