Cycle Error and now hanging on terraform plan not really sure what to do.

1,534 views
Skip to first unread message

SteveB

unread,
May 10, 2016, 5:05:10 AM5/10/16
to Terraform

Hi,

 
I've just started playing with terraform and and getting a bit lost as to what is causing this behaviour i have started to create a simple VPC with public and private subnets and want to add in a nat gateway. Initially I was getting a cycle error and the terraform graph can be seen below:


Error configuring: 1 error(s) occurred:

* Cycle: module.natgw.aws_route_table_association.private (destroy), module.natgw.aws_route_table.private (destroy), module.subnets.aws_subnet.priv (destroy), module.subnets.aws_subnet.priv, module.subnets.output.private_subnet_cidrs, module.natgw.var.private_subnet_cidrs, module.natgw.aws_route.nat_gateway (destroy)
I wasn't really sure what this actually means but the terraform graph point the cycle out clearly and i thought may a create before destroy was needed for the public subnets resource:




So i added in a create before destroy for the aws_subnet.priv resource which resulted in the following graph and got rid of the cycle error:




Now however when I run terraform plan it hangs and never proceeds when it gets to the following point debuging output isn't really much help so I am a bit stuck and would appreciate any help:

016/05/10 10:02:55 [DEBUG] vertex provider.module.natgw.aws (close), got dep: module.natgw.aws_route.nat_gateway
2016/05/10 10:02:55 [DEBUG] vertex provider.module.natgw.aws (close), got dep: module.natgw.aws_route_table_association.private
2016/05/10 10:02:55 [DEBUG] vertex provider.module.natgw.aws (close), got dep: module.natgw.aws_nat_gateway.nat
2016/05/10 10:02:55 [DEBUG] vertex provider.module.natgw.aws (close), got dep: module.natgw.aws_route_table_association.private (destroy)
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.var.public_subnet_cidrs, got dep: module.subnets.output.public_subnet_cidrs
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.var.public_subnet_cidrs, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex module.subnets.var.public_subnet_cidrs, got dep: module.subnets.output.public_subnet_cidrs
2016/05/10 10:02:55 [DEBUG] vertex module.subnets.var.public_subnet_cidrs, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex provider.module.subnets.aws (close), got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex output.public_subnet_cidrs, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex output.public_subnet_cidrs, got dep: module.subnets.output.public_subnet_cidrs
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: output.public_subnet_cidrs
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: module.vpc.output.vpc_cidr
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: module.natgw.var.private_subnet_cidrs
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: module.vpc.aws_vpc.vpc
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: provider.module.vpc.aws (close)
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: output.private_route_table_ids
2016/05/10 10:02:55 [DEBUG] vertex root, got dep: module.subnets.var.aws_access_key
2016/05/10 10:02:55 [DEBUG] vertex output.public_subnet_ids, got dep: module.subnets.output.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex output.public_subnet_ids, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.var.public_subnet_ids, got dep: module.subnets.output.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.var.public_subnet_ids, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex module.natgw.var.public_subnet_ids, got dep: module.subnets.output.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex module.natgw.var.public_subnet_ids, got dep: module.subnets.aws_subnet.public
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.aws_route_table_association.public-rtb, got dep: module.subnets.output.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.aws_route_table_association.public-rtb, got dep: module.route_tables.var.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex provider.module.route_tables.aws (close), got dep: module.route_tables.aws_route_table_association.public-rtb
2016/05/10 10:02:55 [DEBUG] vertex provider.module.route_tables.aws (close), got dep: module.route_tables.aws_route_table_association.public-rtb (destroy)
2016/05/10 10:02:55 [DEBUG] vertex module.subnets.var.public_subnet_ids, got dep: module.subnets.output.public_subnet_ids
2016/05/10 10:02:55 [DEBUG] vertex module.natgw.output.nat_eips, got dep: module.natgw.aws_eip.nat
2016/05/10 10:02:55 [DEBUG] vertex output.nat_eips, got dep: module.natgw.output.nat_eips
2016/05/10 10:02:55 [DEBUG] vertex output.nat_eips, got dep: module.natgw.aws_eip.nat
2016/05/10 10:02:55 [DEBUG] vertex module.route_tables.output.pub_rtbl_assoc_ids, got dep: module.route_tables.aws_route_table_association.public-rtb
2016/05/10 10:03:00 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:00 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:00 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:05 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:05 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:05 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:10 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:10 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:10 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:15 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:15 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:15 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:20 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:20 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:20 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:25 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:25 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:25 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:30 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:30 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:30 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:35 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:35 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:35 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:40 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:40 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:40 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:45 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:45 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:45 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:50 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:50 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)
2016/05/10 10:03:50 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:55 [DEBUG] vertex module.subnets.aws_subnet.priv (destroy), waiting for: module.subnets (expanded)
2016/05/10 10:03:55 [DEBUG] vertex provider.module.subnets.aws (close), waiting for: module.subnets.aws_subnet.priv (destroy)
2016/05/10 10:03:55 [DEBUG] vertex root, waiting for: provider.module.subnets.aws (close)


Regards,


Steve 

SteveB

unread,
May 10, 2016, 7:12:14 AM5/10/16
to Terraform
So I've changed my approach slightly and instead of splitting things in to separate modules I have one large VPC module the problem seems to be when I add in the NAT gateways  which results in the following cycle error:


Get: file:///home/steven/terraform-vpc/modules/aws_vpc
There are warnings and/or errors related to your configuration. Please
fix these before continuing.

Errors:

  * 1 error(s) occurred:

* Cycle: module.vpc.aws_route_table_association.private (destroy), module.vpc.aws_route_table.private (destroy), module.vpc.output.private_subnet_cidrs, module.vpc.var.private_subnet_cidrs, module.vpc.aws_route.nat_gateway (destroy), module.vpc.aws_subnet.priv (destroy), module.vpc.aws_subnet.priv


The terraform graph now looks like so and if I add in a create before destroy for the aws_subnet.priv resource it results in the same hanging and looping as before. :

SteveB

unread,
May 10, 2016, 10:49:55 AM5/10/16
to Terraform
Ok I fixed it I had a issue with the count variables which caused a weird dependency problem but that was due to me trying to be a bit too clever all seems well as the plan is being created and the graph without problems.
Reply all
Reply to author
Forward
0 new messages