Releases: skluck/terraform-plan-parser
Releases · skluck/terraform-plan-parser
1.3.5
Fixed
- Prevent parsing error when an empty plan is generated for Terraform 0.13+ where there is an output-only change.
Example output of a plan:
# aws_lambda_function.default has been changed ~ resource "aws_lambda_function" "default" { # (2 unchanged blocks hidden) } Unless you have made equivalent changes to your configuration, or ignored the relevant attributes using ignore_changes, the following plan may include actions to undo or respond to these changes. ───────────────────────────────────────────────────────────────────────────── Changes to Outputs: ~ lambda_source_code_size = 100 -> 101
1.3.4
1.3.3
Fixed
- Prevent error when no changes are necessary for Terraform to run (Terraform 0.13+).
- Prevent error from recording when erroneous comment block
left over from a partially-failed
exists.Example output of a plan:
Terraform will perform the following actions: # aws_acm_certificate.cert (deposed object 692a6dc7) will be destroyed # (left over from a partially-failed replacement of this instance) - resource "aws_acm_certificate" "cert" { - status = "ISSUED" -> null }
1.3.2
1.3.1
1.3.0
1.2.1
Fixed
-
Terraform 0.12 Attributes containing a suffix of
# whitespace changes
will no longer raise errors.Example output of a plan:
-/+ resource "aws_sns_topic" "sns_topic" { ~ arn = "arn:aws:sns:us-east-2:my-resource" -> (known after apply) ~ delivery_policy = jsonencode( # whitespace changes { http = { defaultHealthyRetryPolicy = { maxDelayTarget = 20 numRetries = 3 } } } ) }
-
Terraform 0.12 Resources containing
(deposed object XXXXXXXX)
will no longer raise errors.Example output of a plan:
# aws_alb_target_group.ecs[0] (deposed object 08221b78) will be destroyed - resource "aws_alb_target_group" "ecs" { - arn = "arn:aws:elasticloadbalancing:us-west-2:my-resource" -> null - name = "ecs-myapp" -> null }
1.2.0
Fixed
- Terraform 0.12 Attributes with empty blocks will no longer raise errors. They will be skipped and not reported since they do not represent a change.
Example output of a plan:
- resource "aws_lb_listener" "listener" { - arn = "example" - timeouts {} }
Changed
- The version of a submodule will now be removed from module sources (This includes everything after
?ref=
). - If a module subpath has been added after the
?ref=
version, it will now be removed from the version and appended to the source. This affects Terraform 0.11 only as this is invalid syntax in Terraform 0.12.
1.1.1
Fixed
- Terraform 0.12 resources that use
+/-
for replacement are now parsed correctly (In addition to-/+
). - Terraform 0.12 attribute blocks that use
# forces replacement
are now recognized properly. - Data resources are now processed correctly in Terraform 0.12, which may sometimes have extra spaces before the brace.
- Resources that are
updated in-place
are now supported in addition toupdated
.
1.1.0
Added
- This package is now capable of parsing plan output from Terraform 0.12.
- Parsing Terraform 0.12 has the following limitations:
- Multiline blocks, maps, lists, and strings will not populate values.
ResourceChange->isNew()
will always be false, but new resources can be simply detected with theaction
which will becreate
.
- Parsing Terraform 0.12 has the following limitations:
- Added
Terraform12OutputParser
.
Changed
- Renamed
TerraformOutputParser
toTerraform11OutputParser
. - Updated
TerraformOutputParser
to attempt auto-detection of Terraform 0.11 or 0.12.If you previously did not use the constructor arguments, there are no breaking changes for you.
The main parser will attempt to detect the correct version of Terraform by the presence of the "resource comment line" (that begins with#
). If no resources are changed, it will result in defaulting to Terraform 0.11 mode.