This project is mirrored from https://:*****@github.com/hashicorp/terraform.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
- 01 Apr, 2021 4 commits
-
-
James Bardin authored
When refresh was skipped for a destroy plan, there was no state stored in the plan.
-
James Bardin authored
Don't force data reads from dependency changes in sibling modules
-
James Bardin authored
Dependencies are tracked via configuration addresses, but when dealing with depends_on references they can only apply to resources within the same module instance. When determining if a data source can be read during planning, verify that the dependency change is coming from the same module instance.
-
James Bardin authored
-
- 31 Mar, 2021 6 commits
-
-
Alisdair McDiarmid authored
command/jsonplan: Fix sensitive/unknown crash
-
James Bardin authored
don't error when given autocomplete commands
-
Alisdair McDiarmid authored
When rendering the JSON plan sensitivity output, if the plan contained unknown collection or structural types, Terraform would crash. We need to detect unknown values before attempting to iterate them. Unknown collection or structural values cannot have sensitive contents accidentally displayed, as those values are not known until after apply. As a result we return an empty value of the appropriate type for the sensitivity mapping.
-
James Bardin authored
The shell autocomplete command will use the binary name as the first argument which does not show up under the list of subcommands.
-
Alisdair McDiarmid authored
website: Dynamic blocks can for_each any collection type
-
Alisdair McDiarmid authored
core: Fix sensitive value/attribute conflict
-
- 30 Mar, 2021 8 commits
-
-
Alisdair McDiarmid authored
When applying sensitivity marks to resources, we previously would first mark any provider-denoted sensitive attributes, then apply the set of planned-change sensitive value marks. This would cause a panic if a provider marked an iterable value as sensitive, because it is invalid to call `MarkWithPaths` against a marked iterable value. Instead, we now merge the marks from the provider schema and the planned change into a single set, and apply them with one call. The included test panics without this change.
-
Martin Atkins authored
We previously added a hint to both resource for_each and dynamic blocks about using the "flatten" and "setproduct" situations to construct suitable collections to repeat over. However, we used the same text in both places which ended up stating that dynamic blocks can only accept map or set values, which is a constraint that applies to resource for_each (because we need to assign a unique identifier to each instance) and not to dynamic blocks (which don't have any uniqueness enforced by Terraform Core itself). To remove that contradiction with the text above which talks about what is valid here, I've just generalized this to say "collection", because the primary point of this paragraph is the "one element per desired nested block" part, not specifically what sort of collections are permitted in this location. (Text further up describes the supported types.)
-
James Bardin authored
remove unsupported platforms from CI test builds
-
James Bardin authored
Rather than increase resources for more cross-platform builds, opt to remove platforms that are not officially supported.
-
James Bardin authored
provide more memory for builds
-
James Bardin authored
Cross-platform builds are running out of resources. Try using a little more memory.
-
James Bardin authored
Stored dependency handling during plan
-
Alisdair McDiarmid authored
cli: Only rewrite provider locks file if changed
-
- 29 Mar, 2021 4 commits
-
-
Alisdair McDiarmid authored
If the provider locks have not changed, there is no need to rewrite the locks file. Preventing this needless rewrite should allow Terraform to operate in a read-only directory, so long as the provider requirements don't change.
-
Alisdair McDiarmid authored
Add sensitivity and required-replace fields to plan file, and expose sensitivity to JSON plan
-
James Bardin authored
The resource configuration was always being used to determine dependencies during refresh, because if there were no changes to a resource, there was no chance to replace any incorrect stored dependencies. Now that we are refreshing during plan, we can determine that a resource has no changes and opt to store the new dependencies immediately. Here we clean up the writeResourceInstanceState calls to no longer modify the resource instance state, removing the `dependencies` argument. Callers are now expected to set the Dependencies field as needed.
-
Robin Norwood authored
Add callout to resource targeting tutorial
-
- 26 Mar, 2021 6 commits
-
-
Alisdair McDiarmid authored
When an output value changes, we have a small amount of information we can convey about its sensitivity. If either the output was previously marked sensitive, or is currently marked sensitive in the config, this is tracked in the output change data. This commit encodes this boolean in the change struct's `before_sensitive` and `after_sensitive` fields, in the a way which matches resource value sensitivity. Since we have so little information to work with, these two values will always be booleans, and always equal each. This is logically consistent with how else we want to obscure sensitive data: a changing output which was or is marked sensitive should not have the value shown in human-readable output.
-
Alisdair McDiarmid authored
-
Alisdair McDiarmid authored
Similar to `after_unknown`, `before_sensitive` and `after_sensitive` are values with similar structure to `before` and `after` which encode the presence of sensitive values in a planned change. These should be used to obscure sensitive values from human-readable output. These values follow the same structure as the `before` and `after` values, replacing sensitive values with `true`, and non-sensitive values with `false`. Following the `after_unknown` precedent, we omit non-sensitive `false` values for object attributes/map values, to make serialization more compact. One difference from `after_unknown` is that a sensitive complex value (collection or structural type) is replaced with `true`. If the complex value itself is sensitive, all of its contents should be obscured.
-
Matthew Frahry authored
-
Judith Malnick authored
-
Alisdair McDiarmid authored
cli: Fix fmt output for multi-line value exprs
-
- 25 Mar, 2021 6 commits
-
-
James Bardin authored
A stored dependency is documented as being honored even after it is removed from the configuration, until the referenced resource is destroyed.
-
James Bardin authored
missing CreateBeforeDestroy
-
Martin Atkins authored
We have these funny extra options that date back to before Terraform even had remote state, which we've preserved along the way by most recently incorporating them as special-case overrides for the local backend. The documentation we had for these has grown less accurate over time as the details have shifted, and was in many cases missing the requisite caveats that they are only for the local backend and that backend configuration is the modern, preferred way to deal with the use-cases they were intended for. We always have a bit of a tension with this sort of legacy option because we want to keep them documented just enough to be useful to someone who finds an existing script/etc using them and wants to know what they do, but not to take up so much space that they might distract users from finding the modern alternative they should consider instead. As a compromise in that vein here I've created a new section about these options under the local backend documentation, which then gives us the space to go into some detail about the various behaviors and interactions and also to discuss their history and our recommended alternatives. I then simplified all of the other mentions of these in command documentation to just link to or refer to the local backend documentation. My hope then is that folks who need to know what these do can still find the docs, but that information can be kept out of the direct path of new users so they can focus on learning about remote backends instead. This is certainly not the most ideal thing ever, but it seemed like the best compromise between the competing priorities I described above.
-
Matthew Frahry authored
-
Alisdair McDiarmid authored
The formatter for value expressions which use legacy interpolation syntax was previously behaving incorrectly with some multi-line expressions. Any HCL expression which requires parenthesis to be allowed to span multiple lines could be skip those parens if already inside string interpolation (`"${}"`). When removing string interpolation, we now check for a resulting multi-line expression, and conservatively ensure that it starts and ends with parenthesis. These may be redundant, as not all expressions require parens to permit spanning multiple lines, but at least it will be valid output.
-
Alisdair McDiarmid authored
The stored planfile now serializes the required-replace path set and the collection of before/after sensitivity marks. This ensures that storing a plan and displaying it with `terraform show` renders the same output for plans with required-replace resources, and those with sensitive values in the diff.
-
- 24 Mar, 2021 2 commits
-
-
Dennis Gursky authored
* Set Intersection #performance Intersection is faster for sets of different sizes if one iterates over the shorter set and checks the presence of an element in a larger one. For an edge case consider `s` having 1M entries and `other` no entries at all. In this case original code will iterate over 1M entries in `s` not finding anything and then returning an empty result set. In the patched code the iteration won't happen at all and result is returned immediately. This change is inspired by profiling a relatively large terraform configuration, where the time to validate was sped up 4x with this change.
-
James Bardin authored
check for unknowns when marking resource values
-
- 23 Mar, 2021 4 commits
-
-
James Bardin authored
When we map schema sensitivity to resource values, there may be unknowns when dealing with planned objects. Check for unknowns before iterating over block values.
-
Alisdair McDiarmid authored
cli: Migrate validate command to views
-
James Bardin authored
update destroying doc to show show more CBD detail
-
James Bardin authored
Update the create-before-destroy cases in the destroying.md document.
-