Skip to content

Commit

Permalink
add tgw_environment, generate vpc config for use in routing setup
Browse files Browse the repository at this point in the history
  • Loading branch information
badra001 committed Oct 18, 2022
1 parent 82f9d90 commit e280d22
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 2 deletions.
12 changes: 10 additions & 2 deletions vpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ module "vpc" {
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13 |
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 3.66.0 |
| <a name="requirement_ldap"></a> [ldap](#requirement\_ldap) | >= 0.5.4 |
| <a name="requirement_local"></a> [local](#requirement\_local) | >= 1.0.0 |
| <a name="requirement_null"></a> [null](#requirement\_null) | >= 3.0 |
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0 |
| <a name="requirement_template"></a> [template](#requirement\_template) | >= 2.0 |
Expand All @@ -43,6 +44,8 @@ module "vpc" {
| Name | Version |
|------|---------|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 3.66.0 |
| <a name="provider_local"></a> [local](#provider\_local) | >= 1.0.0 |
| <a name="provider_null"></a> [null](#provider\_null) | >= 3.0 |

## Modules

Expand All @@ -56,22 +59,27 @@ No modules.
| [aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |
| [aws_vpc_dhcp_options.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_dhcp_options) | resource |
| [aws_vpc_dhcp_options_association.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_dhcp_options_association) | resource |
| [local_sensitive_file.vpc_details_json](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/sensitive_file) | resource |
| [local_sensitive_file.vpc_details_yaml](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/sensitive_file) | resource |
| [null_resource.directory_setup](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |
| [aws_arn.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/arn) | data source |
| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
| [aws_iam_account_alias.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_account_alias) | data source |
| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_account_alias"></a> [account\_alias](#input\_account\_alias) | AWS Account Alias | `string` | `""` | no |
| <a name="input_account_id"></a> [account\_id](#input\_account\_id) | AWS Account ID (default will pull from current user) | `string` | `""` | no |
| <a name="input_account_alias"></a> [account\_alias](#input\_account\_alias) | AWS Account Alias (default: will pull from current account\_alias) | `string` | `""` | no |
| <a name="input_account_id"></a> [account\_id](#input\_account\_id) | AWS Account ID (default: will pull from current user) | `string` | `""` | no |
| <a name="input_enable_aws_dns"></a> [enable\_aws\_dns](#input\_enable\_aws\_dns) | Enable use of AWS DNS server. This overrides the settings of vpc\_dns\_servers and enables dns\_support and dns\_hostnames | `bool` | `false` | no |
| <a name="input_enable_dns_hostnames"></a> [enable\_dns\_hostnames](#input\_enable\_dns\_hostnames) | Enable DNS hostnames within the VPC | `bool` | `true` | no |
| <a name="input_enable_dns_support"></a> [enable\_dns\_support](#input\_enable\_dns\_support) | Enable DNS support within the VPC | `bool` | `true` | no |
| <a name="input_network_census"></a> [network\_census](#input\_network\_census) | Census Subnets | `list` | <pre>[<br> "148.129.0.0/16",<br> "172.16.0.0/12",<br> "192.168.0.0/16"<br>]</pre> | no |
| <a name="input_override_prefixes"></a> [override\_prefixes](#input\_override\_prefixes) | Override built-in prefixes by component. This should be used primarily for common infrastructure things | `map(string)` | `{}` | no |
| <a name="input_tags"></a> [tags](#input\_tags) | AWS Tags to apply to appropriate resources (S3, KMS). Do not include safeguard tags here, use the data\_safeguard field for such things. | `map(string)` | `{}` | no |
| <a name="input_tgw_environment"></a> [tgw\_environment](#input\_tgw\_environment) | Transit Gatewway environment purpose (services, dev, test, stage, prod, cre) | `string` | `null` | no |
| <a name="input_vpc_cidr_block"></a> [vpc\_cidr\_block](#input\_vpc\_cidr\_block) | VPC CIDR Block | `string` | n/a | yes |
| <a name="input_vpc_dns_servers"></a> [vpc\_dns\_servers](#input\_vpc\_dns\_servers) | VPC DNS Servers (default: Enterprise primary DNS at BCC and HQ) | `list(string)` | <pre>[<br> "148.129.127.22",<br> "148.129.191.22"<br>]</pre> | no |
| <a name="input_vpc_domain_name"></a> [vpc\_domain\_name](#input\_vpc\_domain\_name) | VPC Domain Name for DHCP settings | `string` | `"unknown.census.gov"` | no |
Expand Down
15 changes: 15 additions & 0 deletions vpc/variables.tgw_environment.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
variable "tgw_environment" {
description = "Transit Gatewway environment purpose (services, dev, test, stage, prod, cre)"
type = string
default = null
}

# variable "transit_gateway_environment" {
# description = "Transit Gateway Environment (aka, VRF) to which to connnect this VPC"
# type = string
#
# validation {
# condition = contains(["services", "dev", "test", "stage", "prod", "cre"], var.transit_gateway_environment)
# error_message = "transit_gateway_environment value must be one of the valid VRF selections"
# }
# }
40 changes: 40 additions & 0 deletions vpc/vpc-config.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
locals {
vpc_config_output = {
vpc_id = aws_vpc.vpc.id
vpc_arn = aws_vpc.vpc.arn
vpc_cidr_block = aws_vpc.vpc.cidr_block
vpc_name = var.vpc_name
vpc_short_name = var.vpc_short_name
region = local.region
region_short = local.region_short
account_id = local.account_id
account_alias = data.aws_iam_account_alias.current.account_alias
tgw_environment = var.tgw_environment != null ? var.tgw_environment : "unknown"
version = local._module_version
}
}

resource "null_resource" "directory_setup" {
triggers = {
name = "setus"
}
provisioner "local-exec" {
working_dir = path.root
command = "test -d ${self.triggers.name} || mkdir ${self.triggers.name}; echo ${self.triggers.name}"
}
}

resource "local_sensitive_file" "vpc_details_json" {
content = jsonencode(local.vpc_config_output)
filename = format("%v/%v/vpc.%v.%v.%v.json", path.root, null_resource.directory_setup.triggers.name, local.account_id, local.region, local.vpc_id)
file_permission = "0644"
directory_permission = "0755"
}

resource "local_sensitive_file" "vpc_details_yaml" {
content = yamlencode(local.vpc_config_output)
filename = format("%v/%v/vpc.%v.%v.%v.yml", path.root, null_resource.directory_setup.triggers.name, local.account_id, local.region, local.vpc_id)
file_permission = "0644"
directory_permission = "0755"
}

0 comments on commit e280d22

Please sign in to comment.