.
+Copyright (c) 2023 3ware
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
index 2d6f9c0..bd6eb68 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Repository to store terraform code used while studying for the ANS-C01 exam. I am using Adrian Cantrill's [AWS Certified Advanced Networking - Specialty](https://learn.cantrill.io/p/aws-certified-advanced-networking-specialty) course to study for the exam. The course does provide CloudFormation stacks for a number of the demos, but I thought it would be ~~fun~~ challenging to recreate ~~all~~ some of the CloudFormation stacks with terraform code.
-[![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-blue?logo=semantic-release)](https://github.com/semantic-release/semantic-release) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-yellow?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
+[![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-blue?logo=semantic-release)](https://github.com/semantic-release/semantic-release) [![GitHub release](https://img.shields.io/github/release/3ware/aws-network-speciality?include_prereleases=&sort=semver&color=blue)](https://github.com/3ware/aws-network-speciality/releases/) [![issues - aws-network-speciality](https://img.shields.io/github/issues/3ware/aws-network-speciality)](https://github.com/3ware/aws-network-speciality/issues) [![lint](https://github.com/3ware/aws-network-speciality/workflows/lint/badge.svg)](https://github.com/3ware/aws-network-speciality/actions?query=workflow:"lint")
## Demos
@@ -13,4 +13,4 @@ Repository to store terraform code used while studying for the ANS-C01 exam. I a
## To do list
-- :x: To Do
+- :x: To Do
diff --git a/terraform/cdn/README.md b/terraform/cdn/README.md
index a1bfa46..4fc5897 100644
--- a/terraform/cdn/README.md
+++ b/terraform/cdn/README.md
@@ -12,58 +12,60 @@ Finally, setting `secure_s3_bucket` to `true` will create the origin access iden
There is an open [issue](https://github.com/3ware/aws-network-speciality/issues/8) to try and make the OAI to CloudFront association dynamic based on the value of `secure_s3_bucket`. To complete the demo, the `s3_origin_config` must be uncommented.
-
+
+
## Requirements
-| Name | Version |
-|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.2.0 |
-| [aws](#requirement\_aws) | >= 3.71.0 |
-| [random](#requirement\_random) | ~> 3.3.2 |
+| Name | Version |
+| ------------------------------------------------------------------------ | --------- |
+| [terraform](#requirement_terraform) | >= 1.2.0 |
+| [aws](#requirement_aws) | >= 3.71.0 |
+| [random](#requirement_random) | ~> 3.3.2 |
## Providers
-| Name | Version |
-|------|---------|
-| [aws](#provider\_aws) | 4.24.0 |
-| [random](#provider\_random) | 3.3.2 |
+| Name | Version |
+| --------------------------------------------------------- | ------- |
+| [aws](#provider_aws) | 4.24.0 |
+| [random](#provider_random) | 3.3.2 |
## Modules
-| Name | Source | Version |
-|------|--------|---------|
-| [acm](#module\_acm) | terraform-aws-modules/acm/aws | ~> 4.0.1 |
-| [cdn](#module\_cdn) | terraform-aws-modules/cloudfront/aws | ~> 2.9.3 |
-| [cname\_record](#module\_cname\_record) | terraform-aws-modules/route53/aws//modules/records | ~> 2.9.0 |
-| [s3\_bucket](#module\_s3\_bucket) | terraform-aws-modules/s3-bucket/aws | ~> v3.3.0 |
-| [s3\_bucket\_object](#module\_s3\_bucket\_object) | terraform-aws-modules/s3-bucket/aws//modules/object | ~> v3.3.0 |
-| [template\_files](#module\_template\_files) | hashicorp/dir/template | ~> v1.0.2 |
+| Name | Source | Version |
+| ----------------------------------------------------------------------------------- | --------------------------------------------------- | --------- |
+| [acm](#module_acm) | terraform-aws-modules/acm/aws | ~> 4.0.1 |
+| [cdn](#module_cdn) | terraform-aws-modules/cloudfront/aws | ~> 2.9.3 |
+| [cname_record](#module_cname_record) | terraform-aws-modules/route53/aws//modules/records | ~> 2.9.0 |
+| [s3_bucket](#module_s3_bucket) | terraform-aws-modules/s3-bucket/aws | ~> v3.3.0 |
+| [s3_bucket_object](#module_s3_bucket_object) | terraform-aws-modules/s3-bucket/aws//modules/object | ~> v3.3.0 |
+| [template_files](#module_template_files) | hashicorp/dir/template | ~> v1.0.2 |
## Resources
-| Name | Type |
-|------|------|
-| [random_string.random](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |
-| [aws_cloudfront_cache_policy.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/cloudfront_cache_policy) | data source |
-| [aws_iam_policy_document.bucket_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+| Name | Type |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
+| [random_string.random](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |
+| [aws_cloudfront_cache_policy.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/cloudfront_cache_policy) | data source |
+| [aws_iam_policy_document.bucket_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
| [aws_iam_policy_document.bucket_policy_combined](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
| [aws_iam_policy_document.bucket_policy_with_oai](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
-| [aws_route53_zone.demo](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone) | data source |
+| [aws_route53_zone.demo](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone) | data source |
## Inputs
-| Name | Description | Type | Default | Required |
-|------|-------------|------|---------|:--------:|
-| [demo\_domain\_name](#input\_demo\_domain\_name) | Route53 domain name registered for the demo | `string` | `null` | no |
-| [enable\_cloudfront](#input\_enable\_cloudfront) | Feature toggle for the cloudfront distribution | `bool` | `false` | no |
-| [secure\_s3\_bucket](#input\_secure\_s3\_bucket) | Set to true to restrict access to the S3 bucket to the CloudFront OAI | `bool` | `false` | no |
+| Name | Description | Type | Default | Required |
+| ------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | -------- | ------- | :------: |
+| [demo_domain_name](#input_demo_domain_name) | Route53 domain name registered for the demo | `string` | `null` | no |
+| [enable_cloudfront](#input_enable_cloudfront) | Feature toggle for the cloudfront distribution | `bool` | `false` | no |
+| [secure_s3_bucket](#input_secure_s3_bucket) | Set to true to restrict access to the S3 bucket to the CloudFront OAI | `bool` | `false` | no |
## Outputs
-| Name | Description |
-|------|-------------|
-| [alternate\_cname](#output\_alternate\_cname) | The CNAME records associated with CloudFront |
-| [certificat\_arn](#output\_certificat\_arn) | The arn of the ACM certificate |
-| [cloudfront\_url](#output\_cloudfront\_url) | The CloudFront distribution domain name |
-| [s3\_website\_url](#output\_s3\_website\_url) | The S3 Bucket website endpoint |
-
+| Name | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------- |
+| [alternate_cname](#output_alternate_cname) | The CNAME records associated with CloudFront |
+| [certificat_arn](#output_certificat_arn) | The arn of the ACM certificate |
+| [cloudfront_url](#output_cloudfront_url) | The CloudFront distribution domain name |
+| [s3_website_url](#output_s3_website_url) | The S3 Bucket website endpoint |
+
+
diff --git a/terraform/cdn/cdn.auto.tfvars b/terraform/cdn/terraform.tfvars
similarity index 100%
rename from terraform/cdn/cdn.auto.tfvars
rename to terraform/cdn/terraform.tfvars
diff --git a/terraform/org/README.md b/terraform/org/README.md
index e3d7f34..12b5c3b 100644
--- a/terraform/org/README.md
+++ b/terraform/org/README.md
@@ -1,38 +1,39 @@
# AWS Advanced Network CloudTrail Demo
-
+
+
## Requirements
-| Name | Version |
-|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.2.0 |
-| [aws](#requirement\_aws) | >= 3.71.0 |
+| Name | Version |
+| ------------------------------------------------------------------------ | --------- |
+| [terraform](#requirement_terraform) | >= 1.2.0 |
+| [aws](#requirement_aws) | >= 3.71.0 |
## Providers
-| Name | Version |
-|------|---------|
-| [aws](#provider\_aws) | 4.24.0 |
+| Name | Version |
+| ------------------------------------------------ | ------- |
+| [aws](#provider_aws) | 4.24.0 |
## Modules
-| Name | Source | Version |
-|------|--------|---------|
-| [iam\_assumable\_role](#module\_iam\_assumable\_role) | terraform-aws-modules/iam/aws//modules/iam-assumable-role | ~> v5.2.0 |
-| [iam\_policy](#module\_iam\_policy) | terraform-aws-modules/iam/aws//modules/iam-policy | ~> v5.2.0 |
-| [log\_group](#module\_log\_group) | terraform-aws-modules/cloudwatch/aws//modules/log-group | ~> 3.3.0 |
-| [s3\_bucket](#module\_s3\_bucket) | terraform-aws-modules/s3-bucket/aws | ~> 3.3.0 |
+| Name | Source | Version |
+| ----------------------------------------------------------------------------------------- | --------------------------------------------------------- | --------- |
+| [iam_assumable_role](#module_iam_assumable_role) | terraform-aws-modules/iam/aws//modules/iam-assumable-role | ~> v5.2.0 |
+| [iam_policy](#module_iam_policy) | terraform-aws-modules/iam/aws//modules/iam-policy | ~> v5.2.0 |
+| [log_group](#module_log_group) | terraform-aws-modules/cloudwatch/aws//modules/log-group | ~> 3.3.0 |
+| [s3_bucket](#module_s3_bucket) | terraform-aws-modules/s3-bucket/aws | ~> 3.3.0 |
## Resources
-| Name | Type |
-|------|------|
-| [aws_cloudtrail.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudtrail) | resource |
-| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
-| [aws_iam_policy_document.bucket_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
-| [aws_iam_policy_document.cloudwatch](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+| Name | Type |
+| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
+| [aws_cloudtrail.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudtrail) | resource |
+| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
+| [aws_iam_policy_document.bucket_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+| [aws_iam_policy_document.cloudwatch](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
| [aws_organizations_organization.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/organizations_organization) | data source |
-| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |
+| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |
## Inputs
@@ -41,4 +42,5 @@ No inputs.
## Outputs
No outputs.
-
+
+
diff --git a/terraform/vpc-peer/README.md b/terraform/vpc-peer/README.md
index 51e224b..72dabd4 100644
--- a/terraform/vpc-peer/README.md
+++ b/terraform/vpc-peer/README.md
@@ -2,55 +2,57 @@
Use this terraform code to create all the resources for the vpc peering demo. Please note that the peering connections are not enabled by default. You can toggle these on and off by adjusting the relevant variables.
-
+
+
## Requirements
-| Name | Version |
-|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.2.0 |
-| [aws](#requirement\_aws) | ~> 4.0.0 |
-| [random](#requirement\_random) | ~> 3.3.2 |
+| Name | Version |
+| ------------------------------------------------------------------------ | -------- |
+| [terraform](#requirement_terraform) | >= 1.2.0 |
+| [aws](#requirement_aws) | ~> 4.0.0 |
+| [random](#requirement_random) | ~> 3.3.2 |
## Providers
-| Name | Version |
-|------|---------|
-| [aws](#provider\_aws) | 4.0.0 |
-| [random](#provider\_random) | 3.3.2 |
+| Name | Version |
+| --------------------------------------------------------- | ------- |
+| [aws](#provider_aws) | 4.0.0 |
+| [random](#provider_random) | 3.3.2 |
## Modules
-| Name | Source | Version |
-|------|--------|---------|
-| [endpoints](#module\_endpoints) | terraform-aws-modules/vpc/aws//modules/vpc-endpoints | ~> 3.14.0 |
-| [iam\_assumable\_role](#module\_iam\_assumable\_role) | terraform-aws-modules/iam/aws//modules/iam-assumable-role | ~>5.2.0 |
-| [vpc](#module\_vpc) | terraform-aws-modules/vpc/aws | ~> 3.14.0 |
-| [vpc\_peering](#module\_vpc\_peering) | grem11n/vpc-peering/aws | ~> 4.1.0 |
+| Name | Source | Version |
+| ----------------------------------------------------------------------------------------- | --------------------------------------------------------- | --------- |
+| [endpoints](#module_endpoints) | terraform-aws-modules/vpc/aws//modules/vpc-endpoints | ~> 3.14.0 |
+| [iam_assumable_role](#module_iam_assumable_role) | terraform-aws-modules/iam/aws//modules/iam-assumable-role | ~>5.2.0 |
+| [vpc](#module_vpc) | terraform-aws-modules/vpc/aws | ~> 3.14.0 |
+| [vpc_peering](#module_vpc_peering) | grem11n/vpc-peering/aws | ~> 4.1.0 |
## Resources
-| Name | Type |
-|------|------|
-| [aws_iam_role_policy.inline_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
-| [aws_instance.a4l_peering](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
-| [aws_security_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
-| [aws_security_group_rule.egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
-| [aws_security_group_rule.ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
-| [aws_security_group_rule.self](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
-| [random_string.random](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |
+| Name | Type |
+| -------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
+| [aws_iam_role_policy.inline_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
+| [aws_instance.a4l_peering](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
+| [aws_security_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
+| [aws_security_group_rule.egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| [aws_security_group_rule.ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| [aws_security_group_rule.self](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| [random_string.random](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) | resource |
| [aws_iam_policy_document.ec2_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
## Inputs
-| Name | Description | Type | Default | Required |
-|------|-------------|------|---------|:--------:|
-| [vpc](#input\_vpc) | A map of VPCs to create | map(object({
cidr = string
azs = list(string)
private_subnets = list(string)
}))
| n/a | yes |
-| [vpc\_peers](#input\_vpc\_peers) | A map of VPC peers to create | map(object({
this_vpc_id = string
that_vpc_id = string
enabled = bool
}))
| n/a | yes |
+| Name | Description | Type | Default | Required |
+| ------------------------------------------------------------ | ---------------------------- | ----------------------------------------------------------------------------------------------------------- | ------- | :------: |
+| [vpc](#input_vpc) | A map of VPCs to create | map(object({
cidr = string
azs = list(string)
private_subnets = list(string)
}))
| n/a | yes |
+| [vpc_peers](#input_vpc_peers) | A map of VPC peers to create | map(object({
this_vpc_id = string
that_vpc_id = string
enabled = bool
}))
| n/a | yes |
## Outputs
-| Name | Description |
-|------|-------------|
-| [rules\_per\_vpc](#output\_rules\_per\_vpc) | Print the output of complex rule definition expressions |
-| [vpc\_peers\_enabled](#output\_vpc\_peers\_enabled) | Print the VPC peers enabled |
-
+| Name | Description |
+| -------------------------------------------------------------------------------------- | ------------------------------------------------------- |
+| [rules_per_vpc](#output_rules_per_vpc) | Print the output of complex rule definition expressions |
+| [vpc_peers_enabled](#output_vpc_peers_enabled) | Print the VPC peers enabled |
+
+
diff --git a/terraform/vpc-peer/vpc-peers.auto.tfvars b/terraform/vpc-peer/terraform.tfvars
similarity index 52%
rename from terraform/vpc-peer/vpc-peers.auto.tfvars
rename to terraform/vpc-peer/terraform.tfvars
index 3805c80..1738a5a 100644
--- a/terraform/vpc-peer/vpc-peers.auto.tfvars
+++ b/terraform/vpc-peer/terraform.tfvars
@@ -1,3 +1,21 @@
+vpc = {
+ a4l-vpca = {
+ cidr = "10.16.0.0/16"
+ azs = ["us-east-1a"]
+ private_subnets = ["10.16.0.0/20"]
+ }
+ a4l-vpcb = {
+ cidr = "10.17.0.0/16"
+ azs = ["us-east-1a"]
+ private_subnets = ["10.17.0.0/20"]
+ }
+ a4l-vpcc = {
+ cidr = "10.18.0.0/16"
+ azs = ["us-east-1a"]
+ private_subnets = ["10.18.0.0/20"]
+ }
+}
+
#* terraform apply should be run with all entries set to false initially
#* To enable each vpc peer set enabled to true
diff --git a/terraform/vpc-peer/vpcs.auto.tfvars b/terraform/vpc-peer/vpcs.auto.tfvars
deleted file mode 100644
index 8929b1c..0000000
--- a/terraform/vpc-peer/vpcs.auto.tfvars
+++ /dev/null
@@ -1,17 +0,0 @@
-vpc = {
- a4l-vpca = {
- cidr = "10.16.0.0/16"
- azs = ["us-east-1a"]
- private_subnets = ["10.16.0.0/20"]
- }
- a4l-vpcb = {
- cidr = "10.17.0.0/16"
- azs = ["us-east-1a"]
- private_subnets = ["10.17.0.0/20"]
- }
- a4l-vpcc = {
- cidr = "10.18.0.0/16"
- azs = ["us-east-1a"]
- private_subnets = ["10.18.0.0/20"]
- }
-}
diff --git a/terraform/vpc/README.md b/terraform/vpc/README.md
index 95ed3e9..9a19ffc 100644
--- a/terraform/vpc/README.md
+++ b/terraform/vpc/README.md
@@ -1,50 +1,52 @@
# AWS Advanced Network Terraform Module
-
+
+
## Requirements
-| Name | Version |
-|------|---------|
-| [terraform](#requirement\_terraform) | >= 1.2.0 |
-| [aws](#requirement\_aws) | >= 3.71.0 |
+| Name | Version |
+| ------------------------------------------------------------------------ | --------- |
+| [terraform](#requirement_terraform) | >= 1.2.0 |
+| [aws](#requirement_aws) | >= 3.71.0 |
## Providers
-| Name | Version |
-|------|---------|
-| [aws](#provider\_aws) | 4.23.0 |
+| Name | Version |
+| ------------------------------------------------ | ------- |
+| [aws](#provider_aws) | 4.23.0 |
## Modules
-| Name | Source | Version |
-|------|--------|---------|
-| [vpc](#module\_vpc) | terraform-aws-modules/vpc/aws | ~> 3.12.0 |
+| Name | Source | Version |
+| -------------------------------------------- | ----------------------------- | --------- |
+| [vpc](#module_vpc) | terraform-aws-modules/vpc/aws | ~> 3.12.0 |
## Resources
-| Name | Type |
-|------|------|
-| [aws_instance.a4l_bastion](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
-| [aws_instance.a4l_internal](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
-| [aws_key_pair.a4l](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource |
-| [aws_security_group.bastion](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
-| [aws_security_group.internal](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
-| [aws_security_group_rule.bastion_egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
-| [aws_security_group_rule.bastion_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
-| [aws_security_group_rule.internal_egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| Name | Type |
+| ------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| [aws_instance.a4l_bastion](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
+| [aws_instance.a4l_internal](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |
+| [aws_key_pair.a4l](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource |
+| [aws_security_group.bastion](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
+| [aws_security_group.internal](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
+| [aws_security_group_rule.bastion_egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| [aws_security_group_rule.bastion_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
+| [aws_security_group_rule.internal_egress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
| [aws_security_group_rule.internal_ingress](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |
## Inputs
-| Name | Description | Type | Default | Required |
-|------|-------------|------|---------|:--------:|
-| [ssh\_key](#input\_ssh\_key) | Trusted keys for bastion host access | `string` | n/a | yes |
-| [trusted\_ips](#input\_trusted\_ips) | Trusted IP addresses for bastion host access | `list(string)` | n/a | yes |
+| Name | Description | Type | Default | Required |
+| ------------------------------------------------------------------ | -------------------------------------------- | -------------- | ------- | :------: |
+| [ssh_key](#input_ssh_key) | Trusted keys for bastion host access | `string` | n/a | yes |
+| [trusted_ips](#input_trusted_ips) | Trusted IP addresses for bastion host access | `list(string)` | n/a | yes |
## Outputs
-| Name | Description |
-|------|-------------|
-| [bastion\_hostname](#output\_bastion\_hostname) | DNS name of the bastion host |
-| [internal\_host\_ip](#output\_internal\_host\_ip) | IP of the host deployed to private subnet |
-
+| Name | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------- |
+| [bastion_hostname](#output_bastion_hostname) | DNS name of the bastion host |
+| [internal_host_ip](#output_internal_host_ip) | IP of the host deployed to private subnet |
+
+
diff --git a/terraform/vpc/terraform.tfvars.example b/terraform/vpc/terraform.tfvars.example
new file mode 100644
index 0000000..591b3b6
--- /dev/null
+++ b/terraform/vpc/terraform.tfvars.example
@@ -0,0 +1,8 @@
+# Add trusted IP addresses with mask. e.g. "192.0.2.1/32"
+trusted_ips = [
+ ""
+]
+
+# Add public SSH key
+ssh_key = ""
+