{"id":29943189,"url":"https://github.com/sourcefuse/terraform-aws-arc-transit-gateway","last_synced_at":"2026-02-27T11:04:01.517Z","repository":{"id":255337271,"uuid":"836713222","full_name":"sourcefuse/terraform-aws-arc-transit-gateway","owner":"sourcefuse","description":"Terraform Module for Transit Gateway","archived":false,"fork":false,"pushed_at":"2024-08-30T05:21:52.000Z","size":4364,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-01T05:55:59.154Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcefuse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-01T12:03:31.000Z","updated_at":"2024-08-30T05:21:38.000Z","dependencies_parsed_at":"2024-08-29T11:28:08.006Z","dependency_job_id":"3f4771a4-2afb-4954-9707-11017ba8dd62","html_url":"https://github.com/sourcefuse/terraform-aws-arc-transit-gateway","commit_stats":null,"previous_names":["sourcefuse/terraform-aws-arc-transit-gateway"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sourcefuse/terraform-aws-arc-transit-gateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-transit-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-transit-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-transit-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-transit-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcefuse","download_url":"https://codeload.github.com/sourcefuse/terraform-aws-arc-transit-gateway/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-transit-gateway/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29892063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-03T02:14:33.480Z","updated_at":"2026-02-27T11:04:01.469Z","avatar_url":"https://github.com/sourcefuse.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Module Structure](./static/banner.png)\n# [terraform-aws-arc-transit-gateway](https://github.com/sourcefuse/terraform-aws-arc-transit-gateway)\n\n\u003ca href=\"https://github.com/sourcefuse/terraform-aws-arc-transit-gateway/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/release/sourcefuse/terraform-aws-arc-transit-gateway.svg?style=for-the-badge\" alt=\"Latest Release\"/\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sourcefuse/terraform-aws-arc-transit-gateway/commits\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/sourcefuse/terraform-aws-arc-transit-gateway.svg?style=for-the-badge\" alt=\"Last Updated\"/\u003e\u003c/a\u003e ![Terraform](https://img.shields.io/badge/terraform-%235835CC.svg?style=for-the-badge\u0026logo=terraform\u0026logoColor=white) ![GitHub Actions](https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white)\n\n[![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=sourcefuse_terraform-aws-arc-transit-gateway\u0026token=c95b7f9cb578b46e7138ef493c1b6a8df8fe4442)](https://sonarcloud.io/summary/new_code?id=sourcefuse_terraform-aws-arc-transit-gateway)\n\n[![Known Vulnerabilities](https://github.com/sourcefuse/terraform-aws-arc-transit-gateway/actions/workflows/snyk.yaml/badge.svg)](https://github.com/sourcefuse/terraform-aws-arc-transit-gateway/actions/workflows/snyk.yaml)\n\n\n\n## Overview\n\nSourceFuse AWS Reference Architecture (ARC) Terraform module for managing Transit Gateway Terraform module provides a robust solution for managing complex network architectures within AWS. This module simplifies the creation, configuration, and management of AWS Transit Gateway, VPC attachments, and routing between VPCs. It ensures efficient network integration and connectivity across multiple AWS accounts by leveraging AWS best practices and conditional resource creation, making it ideal for scalable and flexible network solutions.\n\n## Usage\n\nTo see a full example, check out the [main.tf](./example/main.tf) file in the example folder.  \n\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | ~\u003e 1.3, \u003c 2.0.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 5.0 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | ~\u003e 3.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.64.0 |\n| \u003ca name=\"provider_aws.target\"\u003e\u003c/a\u003e [aws.target](#provider\\_aws.target) | 5.64.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_ec2_transit_gateway.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ec2_transit_gateway) | resource |\n| [aws_ec2_transit_gateway_vpc_attachment.source](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ec2_transit_gateway_vpc_attachment) | resource |\n| [aws_ec2_transit_gateway_vpc_attachment.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ec2_transit_gateway_vpc_attachment) | resource |\n| [aws_ec2_transit_gateway_vpc_attachment_accepter.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ec2_transit_gateway_vpc_attachment_accepter) | resource |\n| [aws_ram_principal_association.target_account](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_principal_association) | resource |\n| [aws_ram_resource_association.transit_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_association) | resource |\n| [aws_ram_resource_share.transit_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_share) | resource |\n| [aws_ram_resource_share_accepter.transit_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_share_accepter) | resource |\n| [aws_route.source](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_ec2_transit_gateway.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ec2_transit_gateway) | data source |\n| [aws_vpc.source_vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc) | data source |\n| [aws_vpc.target_vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_allow_external_principals\"\u003e\u003c/a\u003e [allow\\_external\\_principals](#input\\_allow\\_external\\_principals) | Indicates whether external principals (accounts outside the organization) are allowed. | `bool` | `true` | no |\n| \u003ca name=\"input_auto_accept_shared_attachments\"\u003e\u003c/a\u003e [auto\\_accept\\_shared\\_attachments](#input\\_auto\\_accept\\_shared\\_attachments) | Whether resource attachment requests are automatically accepted | `string` | `\"disable\"` | no |\n| \u003ca name=\"input_create_transit_gateway\"\u003e\u003c/a\u003e [create\\_transit\\_gateway](#input\\_create\\_transit\\_gateway) | n/a | `bool` | `true` | no |\n| \u003ca name=\"input_create_transit_gateway_attacment_in_source_account\"\u003e\u003c/a\u003e [create\\_transit\\_gateway\\_attacment\\_in\\_source\\_account](#input\\_create\\_transit\\_gateway\\_attacment\\_in\\_source\\_account) | n/a | `bool` | `true` | no |\n| \u003ca name=\"input_default_route_table_association\"\u003e\u003c/a\u003e [default\\_route\\_table\\_association](#input\\_default\\_route\\_table\\_association) | Whether resource attachments are associated with the default route table | `string` | `\"enable\"` | no |\n| \u003ca name=\"input_default_route_table_propagation\"\u003e\u003c/a\u003e [default\\_route\\_table\\_propagation](#input\\_default\\_route\\_table\\_propagation) | Whether resource attachments automatically propagate routes to the default route table | `string` | `\"enable\"` | no |\n| \u003ca name=\"input_dns_support\"\u003e\u003c/a\u003e [dns\\_support](#input\\_dns\\_support) | Enable or disable DNS support | `string` | `\"enable\"` | no |\n| \u003ca name=\"input_existing_transit_gateway_id\"\u003e\u003c/a\u003e [existing\\_transit\\_gateway\\_id](#input\\_existing\\_transit\\_gateway\\_id) | n/a | `string` | `null` | no |\n| \u003ca name=\"input_source_attachment_dns_support\"\u003e\u003c/a\u003e [source\\_attachment\\_dns\\_support](#input\\_source\\_attachment\\_dns\\_support) | Enable or disable DNS support | `string` | `\"enable\"` | no |\n| \u003ca name=\"input_source_attachment_ipv6_support\"\u003e\u003c/a\u003e [source\\_attachment\\_ipv6\\_support](#input\\_source\\_attachment\\_ipv6\\_support) | Enable or disable IPv6 support | `string` | `\"disable\"` | no |\n| \u003ca name=\"input_source_attachment_name\"\u003e\u003c/a\u003e [source\\_attachment\\_name](#input\\_source\\_attachment\\_name) | The name tag for the source Transit Gateway VPC attachment. | `string` | `\"TransitGateway-VPC-Attachment-Source\"` | no |\n| \u003ca name=\"input_source_cidr_block\"\u003e\u003c/a\u003e [source\\_cidr\\_block](#input\\_source\\_cidr\\_block) | Destination CIDR block for the route | `string` | `null` | no |\n| \u003ca name=\"input_source_route_table_ids\"\u003e\u003c/a\u003e [source\\_route\\_table\\_ids](#input\\_source\\_route\\_table\\_ids) | Route table ID to add routes to | `list(any)` | `[]` | no |\n| \u003ca name=\"input_source_subnet_ids\"\u003e\u003c/a\u003e [source\\_subnet\\_ids](#input\\_source\\_subnet\\_ids) | List of subnet IDs for the Transit Gateway VPC attachment | `list(string)` | `[]` | no |\n| \u003ca name=\"input_source_vpc_id\"\u003e\u003c/a\u003e [source\\_vpc\\_id](#input\\_source\\_vpc\\_id) | The VPC ID for the Transit Gateway VPC attachment | `string` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to assign to the resource. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_target_account_id\"\u003e\u003c/a\u003e [target\\_account\\_id](#input\\_target\\_account\\_id) | The AWS Account ID where the Transit Gateway is shared | `list(any)` | n/a | yes |\n| \u003ca name=\"input_target_attachment_dns_support\"\u003e\u003c/a\u003e [target\\_attachment\\_dns\\_support](#input\\_target\\_attachment\\_dns\\_support) | Enable or disable DNS support | `string` | `\"enable\"` | no |\n| \u003ca name=\"input_target_attachment_ipv6_support\"\u003e\u003c/a\u003e [target\\_attachment\\_ipv6\\_support](#input\\_target\\_attachment\\_ipv6\\_support) | Enable or disable IPv6 support | `string` | `\"disable\"` | no |\n| \u003ca name=\"input_target_attachment_name\"\u003e\u003c/a\u003e [target\\_attachment\\_name](#input\\_target\\_attachment\\_name) | The name tag for the target Transit Gateway VPC attachment. | `string` | `\"TransitGateway-VPC-Attachment-Target\"` | no |\n| \u003ca name=\"input_target_cidr_block\"\u003e\u003c/a\u003e [target\\_cidr\\_block](#input\\_target\\_cidr\\_block) | Destination CIDR block for the route | `string` | `null` | no |\n| \u003ca name=\"input_target_route_table_ids\"\u003e\u003c/a\u003e [target\\_route\\_table\\_ids](#input\\_target\\_route\\_table\\_ids) | Route table ID to add routes to | `list(any)` | n/a | yes |\n| \u003ca name=\"input_target_subnet_ids\"\u003e\u003c/a\u003e [target\\_subnet\\_ids](#input\\_target\\_subnet\\_ids) | List of subnet IDs for the Transit Gateway VPC attachment | `list(string)` | n/a | yes |\n| \u003ca name=\"input_target_vpc_id\"\u003e\u003c/a\u003e [target\\_vpc\\_id](#input\\_target\\_vpc\\_id) | The VPC ID for the Transit Gateway VPC attachment | `string` | n/a | yes |\n| \u003ca name=\"input_transit_gateway_asn\"\u003e\u003c/a\u003e [transit\\_gateway\\_asn](#input\\_transit\\_gateway\\_asn) | Amazon side ASN for the Transit Gateway | `number` | `64512` | no |\n| \u003ca name=\"input_transit_gateway_name\"\u003e\u003c/a\u003e [transit\\_gateway\\_name](#input\\_transit\\_gateway\\_name) | Name of the Transit Gateway | `string` | `\"Transit-GW\"` | no |\n| \u003ca name=\"input_transit_gateway_share_name\"\u003e\u003c/a\u003e [transit\\_gateway\\_share\\_name](#input\\_transit\\_gateway\\_share\\_name) | The name of the Transit Gateway resource share. | `string` | `\"transit-gateway-share\"` | no |\n| \u003ca name=\"input_vpn_ecmp_support\"\u003e\u003c/a\u003e [vpn\\_ecmp\\_support](#input\\_vpn\\_ecmp\\_support) | Enable or disable Equal Cost Multipath support for VPN | `string` | `\"enable\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_transit_gateway_arn\"\u003e\u003c/a\u003e [transit\\_gateway\\_arn](#output\\_transit\\_gateway\\_arn) | The ARN of the Transit Gateway |\n| \u003ca name=\"output_transit_gateway_id\"\u003e\u003c/a\u003e [transit\\_gateway\\_id](#output\\_transit\\_gateway\\_id) | The ID of the Transit Gateway |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Versioning  \nThis project uses a `.version` file at the root of the repo which the pipeline reads from and does a git tag.  \n\nWhen you intend to commit to `main`, you will need to increment this version. Once the project is merged,\nthe pipeline will kick off and tag the latest git commit.  \n\n## Development\n\n### Prerequisites\n\n- [terraform](https://learn.hashicorp.com/terraform/getting-started/install#installing-terraform)\n- [terraform-docs](https://github.com/segmentio/terraform-docs)\n- [pre-commit](https://pre-commit.com/#install)\n- [golang](https://golang.org/doc/install#install)\n- [golint](https://github.com/golang/lint#installation)\n\n### Configurations\n\n- Configure pre-commit hooks\n  ```sh\n  pre-commit install\n  ```\n\n### Versioning\n\nwhile Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch\n\nFor Example\n\n```sh\ngit commit -m \"your commit message #major\"\n```\nBy specifying this , it will bump the version and if you don't specify this in your commit message then by default it will consider patch and will bump that accordingly\n\n### Tests\n- Tests are available in `test` directory\n- Configure the dependencies\n  ```sh\n  cd test/\n  go mod init github.com/sourcefuse/terraform-aws-refarch-\u003cmodule_name\u003e\n  go get github.com/gruntwork-io/terratest/modules/terraform\n  ```\n- Now execute the test  \n  ```sh\n  go test -timeout  30m\n  ```\n\n## Authors\n\nThis project is authored by:\n- SourceFuse ARC Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-transit-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-transit-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-transit-gateway/lists"}