Commit Graph

30045 Commits

Author SHA1 Message Date
James Bardin
93ff27227a
Merge pull request #31163 from hashicorp/jbardin/plan-destroy
Use plan graph builder for destroy
2022-06-01 15:37:13 -04:00
James Bardin
e36ee757a5 minor cleanup from review 2022-06-01 15:29:59 -04:00
James Bardin
4fb8a5a3ec
Merge pull request #31164 from hashicorp/jbardin/go-getter-security-options
add XTerraformGetLimit to prevent redirect loops
2022-06-01 13:04:20 -04:00
James Bardin
47f9850f02 add XTerraformGetLimit to prevent redirect loops 2022-06-01 12:46:22 -04:00
kmoe
229789f60f
Update CHANGELOG.md 2022-06-01 17:08:02 +01:00
kmoe
f341c35819
Update CHANGELOG.md 2022-06-01 16:00:08 +01:00
Adam Christie
50919044d5
Fix custom conditions example
Original code block erroneously references `aws_vpc.example` but appears to actually mean `data.aws_vpc.example`.
2022-06-01 12:41:15 +01:00
Alisdair McDiarmid
e2a3042025 website: Update documentation for optional attrs
Extend the documentation on type constraints to include the new default
functionality, including a detailed example of a nested structure with
multiple levels of defaults.
2022-06-01 06:40:37 -04:00
Alisdair McDiarmid
718b0875ef lang: Remove defaults function
Now that we are able to specify optional object attribute defaults
inline in a type constraint, the separate `defaults` function is no
longer needed.
2022-06-01 06:40:37 -04:00
Luces Huayhuaca
70ddcc7d0d
add url to summary and check for optional values (#30993) 2022-05-31 13:48:07 -07:00
Alisdair McDiarmid
5b0052cc36 core: Apply type defaults to module variables
Now that variables parse and retain a set of default values for
object attributes, we must apply the defaults during variable
evaluation. We do so immediately before type conversion, preprocessing
the given value so that conversion will receive the intended defaults as
appropriate.
2022-05-31 12:11:15 -04:00
Alisdair McDiarmid
650380f3ae configs: Add default argument to optional()
The optional modifier previously accepted a single argument: the
attribute type. This commit adds an optional second argument, which
specifies a default value for the attribute.

To record the default values for a variable's type, we use a separate
parallel structure of `typeexpr.Defaults`, rather than extending
`cty.Type` to include a `cty.Value` of defaults (which may in turn
include a `cty.Type` with defaults, and so on, and so forth).

The new `typeexpr.TypeConstraintWithDefaults` returns a type constraint
and defaults value. Defaults will be `nil` unless there are default
values specified somewhere in the variable's type.
2022-05-31 12:11:15 -04:00
Alisdair McDiarmid
8f69e36e1b typeexpr: Add support for nested type defaults
In type constraints, object attributes may be marked as optional in
order to allow them to be omitted from input values. Doing so results in
filling the attribute value with a typed `null`.

This commit adds a new type `typeexpr.Defaults` which mirrors the
structure of a type constraint, storing default values for optional
attributes. This will allow specification of non-`null` default values
for attributes.

The `Defaults` type is a tree structure, each node containing a sub-tree
type, a map of children, and for object nodes, a map of defaults. The
keys in the children map depend on the type of the node:

- Object nodes have children for each attribute;
- Tuple nodes have children for each index, with indices converted to
  string values;
- Collection nodes have a single child at the empty string key.

When traversing this tree we must take this structure into account, with
special cases for map input values which may later be converted to
objects.

The traversal defined in this commit uses a pre-order transformer in
order to pre-populate descendent nodes before their defaults are
applied. This allows type nested type default values to be specified
more compactly.
2022-05-31 12:11:15 -04:00
Piggy
367a850989
Bump github.com/Netflix/go-expect (#31103) 2022-05-31 16:24:01 +01:00
kmoe
8f7e03b95b
deps: upgrade mitchellh/cli (#31160) 2022-05-31 16:12:56 +01:00
kmoe
54b837416c
command: mention plan options in refresh help text (#30892)
* command: add parallelism option to refresh help text
2022-05-31 14:27:21 +01:00
Alisdair McDiarmid
a6587970d0
Merge pull request #30552 from gbataille/29156_do_not_log_sensitive_values
Fixes #29156: Failing sensitive variables values are not logged
2022-05-30 10:40:51 -04:00
Alisdair McDiarmid
06f6a901ea
Merge pull request #30985 from hashicorp/alisdair/var-flag-spaces-error
cli: Improved error for invalid -var "foo = bar"
2022-05-30 10:40:00 -04:00
James Bardin
ec476af655 test for configured destroy plan provider 2022-05-27 11:58:25 -04:00
James Bardin
8fed14fc59 use the PlanGraphBuilder for destroy
Rather than maintain a separate graph builder for destroy, use the
normal plan graph with some extra options. Utilize the same pattern as
the validate graph for now, where we take the normal plan graph builder
and inject a new concrete function for the destroy nodes.
2022-05-27 10:59:11 -04:00
James Bardin
77d13808d5 rename field to destroyPlan for consistency 2022-05-27 10:58:28 -04:00
James Bardin
6860596b68 don't add orphan nodes during destroy
All instances in state are being removed for destroy, so we can skip
checking for orphans. Because we want to use the normal plan graph, we
need to be able to still call this during destroy, so flag it off.
2022-05-27 10:56:40 -04:00
James Bardin
d6f0d1ea57 don't add config nodes during destroy plan
We want to use the normal plan graph for destroy, so we need to flag off
configuration for that process.
2022-05-27 10:55:38 -04:00
James Bardin
e3a6e1f6e8 remove unused fields from DestroyEdgeTransformer 2022-05-27 10:54:58 -04:00
James Bardin
b8e362d24c do not connect references _to_ destroyers either
Destroy nodes should never participate in references. These edges didn't
come up before, because we weren't building a complete graph including
all temporary values.
2022-05-27 10:50:01 -04:00
Nick Fagerlund
5bf48952fe
Edit docs for replace_triggered_by lifecycle argument (#31129)
- Note that it was added in v1.2, so users know whether they can use it yet.
- Fix nested indentation formatting, so the parent list item stays together.
- Minor copy edits.
- List all of the available lifecycle block arguments before diving into the
  docs for each argument, for ease of reading/scanning.
2022-05-26 10:39:04 -07:00
James Bardin
903ba7e94e
Merge pull request #31124 from hashicorp/jbardin/go-getter-update
update go-getter
2022-05-25 10:37:57 -04:00
James Bardin
f24eb858c8 update go-getter 2022-05-25 09:19:46 -04:00
Craig Wright
f215e6fc3e
Merge pull request #31121 from cuotos/fix-intentional-typo
Revert "Docs: Change misspelling of variable in documentation"
2022-05-24 11:33:25 -07:00
Dan Potepa
2dd5e10469 Revert "Docs: Change misspelling of variable in documentation"
This reverts commit 7756023564.
2022-05-24 17:54:31 +01:00
James Bardin
2ad3ac7d01
Merge pull request #31111 from hashicorp/jbardin/unknown-error-paths
add unknown paths to diags for debugging
2022-05-24 10:37:50 -04:00
Gerard Nguyen
fd21e6e510
Update website/docs/language/modules/develop/providers.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-05-24 10:53:08 +10:00
Martin Atkins
284a38a04c build: Accept version numbers with prereleases containing dashes
Previously we'd discard everything after the second dash.
2022-05-23 16:48:34 -07:00
Martin Atkins
096f0dc0da build: Write the detected version number into the generated executable
This also sets an additional variable if it detects that this is an alpha
or development build, which currently does nothing but might eventually
turn on the ability to use experimental features, if we make that
something available only in prereleases.
2022-05-23 16:48:34 -07:00
Martin Atkins
7dd3cdfab4 build: Fetch all tags before deciding which version we're building
The actions/checkout workflow does some heroics to try to fetch exactly
the commit being built and nothing else, even if asked to fetch the
history leading up to that commit. That means we don't end up having
enough information to get an accurate answer from "git describe".

Since we're intentionally relying on the git history here, we'll fetch
all of the tags explicitly after initial checkout. Although that does add
some delay to this step, we're intentionally doing this version
calculation only once as a separate workflow job so that all of the other
jobs can still benefit from this action's quicker checkout behavior.
2022-05-23 16:48:34 -07:00
Laura Pacilio
5740659ad1
Merge pull request #31100 from hashicorp/add-version-notes-1.2
Add version notes 1.2
2022-05-23 15:00:39 -04:00
James Bardin
a6968b5b20
Merge pull request #31060 from hashicorp/alisdair/fix-configload-snapshot-panic
configs: Fix module loader nil pointer panic
2022-05-23 13:56:33 -04:00
James Bardin
48309835b7 add unknown paths to diags for debugging
When a user reports a "Configuration contains unknown value" error,
there is no information on what might have been unknown during apply.
Add unknown attribute paths to the diagnostic message to provide some
more information when a reproduction may not be possible. Sine this is
one of those "should never happen" types of errors which will be
reported to the developers directly, we can leave the format as the raw
internal representation for simplicity.
2022-05-23 13:28:30 -04:00
Gerard Nguyen
d521d379f8 Add link to default provider configuration definition 2022-05-23 13:06:04 +10:00
Craig Wright
8e84674fa6
Update CHANGELOG.md
Changelog for #29354
2022-05-20 15:02:15 -07:00
Laura Pacilio
83a700b313 Update version notes for custom conditions 2022-05-20 16:10:26 -04:00
Laura Pacilio
b2d3e594ca Remove duplicate versioning note for custom condition checks. 2022-05-20 16:07:27 -04:00
Laura Pacilio
f7c5d1b054 Add version note for env var credentials 1.2 work. 2022-05-20 16:04:37 -04:00
Laura Pacilio
54d084159f Add version note, fix typos, add link to environment variables 2022-05-20 16:00:53 -04:00
Martin Atkins
ec421fe02d configs: A test for the regression reported in #31081
5417975946 addressed a regression in the
logic for catching when the newer module meta-arguments are used in
conjunction with the legacy practice of including provider configurations
inside modules, where the check started incorrectly catching situations
where the legacy nested provider configuration was in the same module
as the child call using one of those meta-arguments.

This is a regression test to catch if a similar bug arises in the future.

Since it's testing validation rules that apply to an entire configuration
tree, it ended up in a rather idiosyncratic location under the "configload"
package, rather than directly in "configs". The "configs" package only
knows how to load one module at a time, so it's harder to write a test
like this in that context. Due to it being further removed from the code
it is testing, I included a test for the correct error too in order to
increase the chance that we'll learn if future changes in the "configs"
package invalidate this regression test.

I've verified that this new test fails without the change made in the
earlier commit.
2022-05-20 11:24:31 -07:00
Craig Wright
be7f46a1ad
Merge pull request #29354 from srdecny/main
Fix CLI help text for output. Reviewed with @apparentlymart and @kmoe.
2022-05-20 10:58:09 -07:00
James Bardin
94f68a2097
Merge pull request #31092 from nilsding/update-the-non-blockchain-kind-of-crypto
update golang.org/x/crypto again
2022-05-20 13:09:52 -04:00
kmoe
5417975946
configs: fix module for_each call bug (#31091)
This fixes a bug introduced in 1879a39 in which initialising a module will fail
if that module contains both a provider block and a module call using for_each.
2022-05-20 16:58:46 +01:00
Georg Gadinger
590a91a40f update golang.org/x/crypto again
The version that was in use previously broke my runs with a nice `ssh:
handshake failed: agent unsupported algorithm "ssh-ed25519"` error.  I
took a further look into this, and saw that the change that broke ssh
for me was fixed in https://github.com/golang/crypto/commit/46612604a.
Yay!
2022-05-20 15:25:42 +02:00
Laura Pacilio
55edc6a6af
Merge pull request #31049 from miyagawa-michiru/update-local-exec-arguments
`local-exec` documentation lacks on-destroy documentation
2022-05-19 11:02:38 -04:00