Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
# file name: terraform/env-staging/peering.tf
# No peering / direct connectivity between staging and prod, for safety.
resource "terraform_remote_state" "dev_state" {
backend = "s3"
config {
bucket = "${var.tf_s3_bucket}"
region = "${var.region}"
key = "${var.dev_state_file}"
}
}
# lookup and reuse the same peering connection
# add a route to the public subnet
resource "aws_route" "staging_to_dev_route" {
route_table_id = "${module.staging_vpc.public_route_table_id}"
# depends_on = ["${module.dev_vpc.public_route_table_id}"]
destination_cidr_block = "${terraform_remote_state.dev_state.output.dev_cidr_block}"
vpc_peering_connection_id = "${terraform_remote_state.dev_state.output.aws_vpc_peering_dev_staging}"
}
# add the route to each of the private route tables. routing to the /16 is fineeeeee
resource "aws_route" "dev_to_staging_int_route" {
count = "${length(split(",", var.private_ranges))}"
route_table_id = "${element(split(",", module.staging_vpc.private_route_table_id), count.index)}"
destination_cidr_block = "${terraform_remote_state.dev_state.output.dev_cidr_block}"
vpc_peering_connection_id = "${terraform_remote_state.dev_state.output.aws_vpc_peering_dev_staging}"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment