Commit Graph

30254 Commits

Author SHA1 Message Date
kmoe
8154a777de
Update CHANGELOG.md 2022-08-03 18:05:48 +01:00
kmoe
c4a00664d7
do not create delete change for nonexistent output (#31471)
If there are outputs in configuration, a destroy plan will always contain a "delete" change for each of these outputs.

This leads to meaningless delete changes being present for outputs which were not present in state and therefore cannot be deleted. Since there is a change in the plan, this plan will then be considered applyable, and the user will be presented with text instructing them to apply a plan in which there are no actual changes.

This commit stops the above from happening in the case of root module outputs.
2022-08-03 17:45:13 +01:00
James Bardin
a857084dfe
Merge pull request #31562 from hashicorp/jbardin/jsonplan-docs
update json plan docs with drift output
2022-08-02 17:35:46 -04:00
James Bardin
a0b66c87cc
Update website/docs/internals/json-format.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-08-02 17:35:30 -04:00
James Bardin
08fed6e296
Update website/docs/internals/json-format.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-08-02 17:35:19 -04:00
James Bardin
1e79f17ed2
Update website/docs/internals/json-format.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-08-02 17:35:09 -04:00
James Bardin
e58d74c0ca update json plan docs with drift output
Add "resource_drift" and "relevant_attributes" to the json plan
documentation.
2022-08-02 16:35:30 -04:00
Laura Pacilio
660ef01afc
Merge pull request #31561 from hashicorp/tiny-fix-readme
Tiny README heading fix
2022-08-02 14:23:29 -04:00
Laura Pacilio
467b592b60
Update README.md 2022-08-02 14:09:08 -04:00
Laura Pacilio
38fe6f761d
Merge pull request #31550 from hashicorp/docs-readme-updates-versioned-docs
Update Docs README to support versioned documentation
2022-08-02 14:08:02 -04:00
Liam Cervante
985325a0fc
Remove -local flag from goimports check (#31555) 2022-08-02 15:08:38 +01:00
Alisdair McDiarmid
d8c14c4295
Merge pull request #31506 from sebhcp/dir-allcaps
replace [dir] with [DIR] for consistency
2022-08-02 07:13:59 -04:00
sebhcp
1ad649c446 goimports on providers.go only 2022-08-01 16:38:03 -05:00
sebhcp
e029e7b699 revert "run goimports"
This reverts commit 301174a3df.
2022-08-01 16:26:26 -05:00
sebhcp
301174a3df run goimports 2022-08-01 16:26:07 -05:00
sebhcp
31d6a1c186 revert changes for upgrade.mdx 2022-08-01 16:26:07 -05:00
sebhcp
4d799ab30f normalize [dir] to [DIR] 2022-08-01 16:26:07 -05:00
Laura Pacilio
aecbaecff5
Merge pull request #31545 from hashicorp/module-invocation-warning
Add note about module.path and local module sources
2022-08-01 17:19:07 -04:00
Laura Pacilio
7c7433b79f
Update README.md 2022-08-01 17:05:11 -04:00
Laura Pacilio
2b0e14db52
Merge pull request #31460 from fnickels/4th-alternate-mirror-directory-fix
Detailing `-chdir` behavior with `terraform.d/plugin` folders
2022-07-29 17:53:15 -04:00
Laura Pacilio
f6aeecb592
Update website/docs/language/expressions/references.mdx 2022-07-29 16:52:58 -04:00
Laura Pacilio
e574234efc Add note about module.path and local module sources 2022-07-29 15:24:04 -04:00
Laura Pacilio
f42d6175e0
Merge pull request #31498 from sebhcp/fix-grammar
fix grammar: subject-verb agreement
2022-07-29 14:49:52 -04:00
Radek Simko
ed1d856bdb
Update CHANGELOG.md 2022-07-29 10:50:44 +01:00
Radek Simko
c1fc7fd744
providercache: include host in provider installation error (#31524) 2022-07-29 10:50:05 +01:00
Radek Simko
038f3c762f
Update CHANGELOG.md 2022-07-29 10:25:04 +01:00
Radek Simko
b82eee6c9f
getproviders: account for occasionally missing Host header in errors (#31542) 2022-07-29 10:23:50 +01:00
Brandon Croft
c62e20c78f
Merge pull request #31507 from hashicorp/brandonc/output_cloud_reads
`terraform output` should adhere to Terraform Cloud authorization
2022-07-28 11:53:55 -06:00
Brandon Croft
50d48c635e
remove unused error and fix output authorization detection 2022-07-28 11:44:16 -06:00
sebhcp
c625fe749b reword sentence 2022-07-27 14:03:51 -05:00
James Bardin
93c525bf81
Merge pull request #31509 from hashicorp/jbardin/valid-computed-plan
always allow computed-only changes in the plan
2022-07-27 10:09:15 -04:00
Francis Nickels III
194afe0872
Update website/docs/cli/config/config-file.mdx
lgtm

Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-26 17:02:44 -07:00
Brandon Croft
0139e75a1a
feature: fall back to reading entire state when detailed-type is not available 2022-07-25 17:17:24 -06:00
Brandon Croft
e1fa690879
style: goimports fixes 2022-07-25 14:51:34 -06:00
Brandon Croft
166d21b20b
refactor: extract cloud state ctyValue conversion function 2022-07-25 14:48:32 -06:00
James Bardin
a6a08fe84a AssertPlanValid for computed with config value
Return early from AssertPlanValid for any attribute which is only
computed. We currently fail if there's a config value, but that could
only happen because of core, not because of the provider.
2022-07-25 16:07:58 -04:00
Brandon Croft
15b938a0c8
Update to go-tfe v1.6.0 2022-07-25 13:50:57 -06:00
Brandon Croft
e794efc31e
better errors from terraform output when cloud is configured 2022-07-25 10:05:20 -06:00
Brandon Croft
c33c8b013f
fix: have terraform output adhere to authorization w/ cloud
Normally, `terraform output` refreshes and reads the entire state in the command package before pulling output values out of it. This doesn't give Terraform Cloud the opportunity to apply the read state outputs org permission and instead applies the read state versions permission.

I decided to expand the state manager interface to provide a separate GetRootOutputValues function in order to give the cloud backend a more nuanced opportunity to fetch just the outputs. This required moving state Refresh/Read code that was previously in the command into the shared backend state as well as the filesystem state packages.
2022-07-25 10:04:43 -06:00
Martin Atkins
5da30c2b65
Update CHANGELOG.md 2022-07-22 15:30:34 -07:00
Martin Atkins
72dd14ca5c core: Do everything except the actual action for plans.NoOp
Previously we tried to early-exit before doing anything at all for any
no-op changes, but that means we also skip some ancillary steps like
evaluating any preconditions/postconditions.

Now we'll skip only the main action itself for plans.NoOp, and still run
through all of the other side-steps.

Since one of those other steps is emitting events through the hooks
interface, this means that now no-op actions are visible to hooks, whereas
before we always filtered them out before calling. I therefore added some
additional logic to the hooks to filter them out at the UI layer instead;
the decision for whether or not to report that we visited a particular
object and found no action required seems defensible as a UI-level concern
anyway.
2022-07-22 15:27:15 -07:00
Martin Atkins
9e277033bc core: Create apply graph nodes even for no-op "changes"
We previously would optimize away the graph nodes for any resource
instance without a real change pending, but that means we don't get an
opportunity to re-check any invariants associated with the instance, such
as preconditions and postconditions.

Other upstream changes during apply can potentially decide the outcome of
a condition even if the instance itself isn't being changed, so we do
still need to revisit these during apply or else we might skip running
certain checks altogether, if they yielded unknown results during planning
and then don't get run during apply.
2022-07-22 15:27:15 -07:00
Martin Atkins
3cd069900b core: Use DynamicExpand even for root module outputs
We previously had a special case in the graph transformer for output
values where it would directly create an individual output value node
instead of an "expand" node as we would do for output values in nested
modules.

While it's true that we do always know that expanding a root module
output value will always produce exactly one instance, treating this case
as special creates the risk of those two codepaths diverging in other
ways.

Instead, we'll let the expand node also deal with root modules and
minimize the special case only to how we look up any changes for the
output values, since the design of plans.Changes is a bit awkward and
requires us to ask the question differently for root module output values.
Otherwise, the behavior will now be consistent across all output values
regardless of module.
2022-07-22 15:25:22 -07:00
Brandon Croft
74ee19b864
Merge pull request #31466 from hashicorp/aw/send-jsonstateoutputs
Include JSONStateOutputs
2022-07-22 14:49:09 -06:00
James Bardin
8b1b05f50f
Merge pull request #31499 from hashicorp/jbardin/dag-walks
topological sorting for refactoring
2022-07-22 15:41:37 -04:00
Brandon Croft
7892cb6b5a
reformat imports using goimports 2022-07-22 12:03:03 -06:00
James Bardin
e3ca4be4b9 goimports 2022-07-22 13:57:16 -04:00
James Bardin
dc9d7108dd use TopologicalOrder for evaluating moves
The dag package did not previously provide a topological walk of a given
graph. While the existing combination of a transitive reduction with a
depth-first walk appeared to accomplish this, depth-first is only
equivalent with a simple tree. If there are multiple paths to a node, a
depth-first approach will skip dependencies from alternate paths.
2022-07-22 13:57:16 -04:00
James Bardin
ca272b2107 Add methods for topological sorts
A topological walk was previously only done in Terraform via the
concurrent method used for walking the primary dependency graph in core.
Sometime however we want a dependency ordering without the overhead of
instantiating the concurrent walk with the channel-based edges.

Add TopologicalOrder and ReverseTopologicalOrder to obtain a list of
nodes which can be used to visit each while ensuring that all
dependencies are satisfied.
2022-07-22 13:57:16 -04:00
Brandon Croft
0b9bd2fc36
make cloud backend_state error messages more conventional 2022-07-22 11:31:48 -06:00