Commit Graph

29857 Commits

Author SHA1 Message Date
Martin Atkins
d4776e8ef1 lang/funcs: type conversion functions can convert null values
We had intended these functions to attempt to convert any given value, but
there is a special behavior in the function system where functions must
opt in to being able to handle dynamically-typed arguments so that we
don't need to repeat the special case for that inside every function
implementation.

In this case we _do_ want to specially handle dynamically-typed values,
because the keyword "null" in HCL produces
cty.NullVal(cty.DynamicPseudoType) and we want the conversion function
to convert it to a null of a more specific type.

These conversion functions are already just a thin wrapper around the
underlying type conversion functionality anyway, and that already supports
converting dynamic-typed values in the expected way, so we can just opt
in to allowing dynamically-typed values and let the conversion
functionality do the expected work.

Fixing this allows module authors to use type conversion functions to
give additional type information to Terraform in situations that are too
ambiguous to be handled automatically by the type inference/unification
process. Previously tostring(null) was effectively a no-op, totally
ignoring the author's request to treat the null as a string.
2022-04-20 09:09:12 -07:00
Laura Pacilio
3c7c5bbd21 add links to function and expressions; move result types back to conditionals page (oops) 2022-04-20 12:06:50 -04:00
Laura Pacilio
2a206c7984 fix incorrect HCL syntax for example 2022-04-20 11:49:33 -04:00
Laura Pacilio
7a43db405c Add link to operators page and all out other types 2022-04-20 11:46:37 -04:00
Tom Harvey
0028a26cf8
updating to include #30891 2022-04-20 17:37:08 +02:00
Tom Harvey
2eb9118cd1
backend/remote-state/azure: defaulting the Azure Backend to use MSAL (#30891)
* backend/remote-state/azure: defaulting the Azure Backend to use MSAL

Fixes #30881

* backend/remote-state/azurerm: deprecating `use_microsoft_graph`
2022-04-20 17:31:44 +02:00
Laura Pacilio
ba3bb5ad5d Apply suggestions from PR review 2022-04-20 11:30:20 -04:00
Laura Pacilio
686dbcdb8d fix confusing sentence on lifecycle page 2022-04-20 11:24:23 -04:00
Laura Pacilio
4d4d774aef fix confusing sentence on resources page 2022-04-20 11:23:15 -04:00
Laura Pacilio
ce757244f2 fix confusing sentence in outputs 2022-04-20 11:22:11 -04:00
Laura Pacilio
f660f54b87 Final nits from review 2022-04-20 11:21:11 -04:00
Laura Pacilio
e8743143e3
Update website/docs/language/data-sources/index.mdx
Co-authored-by: Alisdair McDiarmid <alisdair@users.noreply.github.com>
2022-04-20 11:17:45 -04:00
Laura Pacilio
87b09b1ee1 Fix broken HCL in example 2022-04-20 11:17:16 -04:00
James Bardin
3a0a019521 round-trip replace triggers 2022-04-20 09:17:10 -04:00
James Bardin
54c1791a1b add triggers reason to plan proto 2022-04-20 09:17:10 -04:00
James Bardin
868052c9e3 set replace_trigered_by reason in diff output 2022-04-20 09:17:10 -04:00
James Bardin
e2fc9a19f5 use ResourceInstanceReplaceByTriggers
Set ResourceInstanceReplaceByTriggers in the change.
2022-04-20 09:17:10 -04:00
James Bardin
e4c4dcbd14 add ResourceInstanceReplaceByTriggers 2022-04-20 09:17:10 -04:00
James Bardin
91121aa856 limit replace_triggered_by to same module instance
replace_triggered_by references are scoped to the current module, so we
need to filter changes for the current module instance. Rather than
creating a ConfigResource and filtering the result, make a
Changes.InstancesForAbsResource method to get only the AbsResource
changes.
2022-04-20 09:17:10 -04:00
James Bardin
fb6fcf783b Fix replace_triggered_by criteria
Only immediate changes to the resource are considered.
2022-04-20 09:17:10 -04:00
James Bardin
6670b71a2e context test demonstrating replace_triggered_by 2022-04-20 09:17:10 -04:00
James Bardin
7598665c90 check for replacement via replace_triggered_by
Check for triggered resource replacement in the plan. While the
functionality of the feature works here, we ill want to follow up with a
way to indicate in the plan _why_ the resource was replaced.
2022-04-20 09:17:10 -04:00
James Bardin
4f2195af2b collect references from replace_triggered_by
The replace_triggered_by expressions create edges in the graph, so must
be returned in the References method.
2022-04-20 09:17:10 -04:00
James Bardin
4d43d6f699 Use the EvalContext to lookup trigger changes
The EvalContext is the only place with all the information to be able to
complete the evaluation of the replace_triggered_by expressions. These
need to be evaluated into a reference, which is then looked up in the
pending changes which the context has access too. On top of needing the
plan changes, we also need access to all providers and schemas to decode
the changes if we need to traverse the resource values for individual
attributes.
2022-04-20 09:17:10 -04:00
James Bardin
8b4c89bdaf evaluate replace_triggered_by expressions
Evaluate the expressions stored in replace_triggered_by into the
*addrs.Reference needed to lookup changes in the plan.
2022-04-20 09:17:10 -04:00
James Bardin
6eb3264d1a parse replace_triggered_by in resource configs 2022-04-20 09:17:10 -04:00
James Bardin
197359cc8f update hcl for IsJSONExpression 2022-04-20 09:17:10 -04:00
Sebastian Rivera
b724dc19d2
Merge pull request #30873 from hashicorp/rt-backport-changelog
Minor changelog modifications
2022-04-19 13:31:20 -04:00
Sebastian Rivera
cd4b89add7
Merge branch 'main' into rt-backport-changelog 2022-04-19 13:30:57 -04:00
Brandon Croft
173e21a0e2
Merge pull request #30878 from hashicorp/brandonc/periods_env_creds
fix(creds): allow periods in TF_TOKEN_... credentials vars
2022-04-15 14:40:01 -06:00
Brandon Croft
1943af51a2
fix(creds): allow periods in TF_TOKEN_... credentials vars 2022-04-15 12:38:14 -06:00
Martin Atkins
3a7263990d
Update CHANGELOG.md 2022-04-15 08:41:49 -07:00
Brandon Croft
dc99403325 Update CHANGELOG.md 2022-04-15 08:40:41 -07:00
Sebastian Rivera
ad15263cf7 Minor changelog modifications
Removed the run task entry since the feature will be backported to v1.1. I've also added the missing
enhancement entry for using `TF_WORKSPACE` to configure your cloud block.
2022-04-14 13:36:36 -04:00
Kevin Wang
545346b331
chore: move content into docs (#30837) 2022-04-14 12:04:35 -04:00
Radek Simko
ad86e5a06f
Update CHANGELOG.md 2022-04-14 16:39:36 +01:00
Brandon Croft
42da030090
Merge pull request #30850 from hashicorp/brandonc/cloud_test_revisions
test(cloud): ensure mocks are used for backend configure tests
2022-04-14 09:31:49 -06:00
Radek Simko
746af015ea
internal/getproviders: Add URL to error message for clarity (#30810)
* internal/getproviders: Add URL to error message for clarity

Occasionally `terraform init` on some providers may return the following error message:

Error while installing citrix/citrixadc v1.13.0: could not query provider
registry for registry.terraform.io/citrix/citrixadc: failed to retrieve
authentication checksums for provider: 403 Forbidden

The 403 is most often returned from GitHub (rather than Registry API)
and this change makes it more obvious.

* Use Host instead of full URL
2022-04-14 16:14:50 +01:00
Laura Pacilio
696bd4c794
Merge pull request #30865 from sdinay/patch-1
docs: Fix typo in v1.0 upgrade guide
2022-04-14 10:39:56 -04:00
James Bardin
d360a78771
Merge pull request #30832 from hashicorp/jbardin/data-readResourceInstanceState
remove the use of data source prior state from planning
2022-04-14 09:47:25 -04:00
James Bardin
f31dab4838
Merge pull request #30830 from hashicorp/jbardin/data-schema-change
data schema changes may prevent state decoding
2022-04-14 09:46:59 -04:00
Shanee D
ed59bd7299
fix: Fix typo in v1.0 upgrade guide 2022-04-13 16:13:20 -07:00
Sebastian Rivera
3ebd8c9483
Merge pull request #30836 from hashicorp/sebasslash/env-cloud-e2e-tests
Cloud e2e tests for configuring `cloud` with env vars
2022-04-13 17:07:20 -04:00
Laura Pacilio
201c9168fa Clarify that users can set TF_WORKSPACE and use tags 2022-04-13 16:39:28 -04:00
Brandon Croft
bb7f4f8b8f
Merge pull request #30797 from hashicorp/brandonc/env_credentials
Allow remote service creds to be configured using env
2022-04-13 14:35:12 -06:00
Brandon Croft
f04202d222
Update credentials_test.go 2022-04-13 14:06:25 -06:00
Brandon Croft
8138fb7b29
Apply suggestions from documentation review
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-04-13 13:50:11 -06:00
Brandon Croft
fda05f3d44
feat(credentials): allow hyphens to be encoded as __ in variables
Hyphen characters are allowed in environment variable names, but are not valid POSIX variable names. Usually, it's still possible to set variable names with hyphens using utilities like env or docker. But, as a fallback, host names may encode their hyphens as double underscores in the variable name. For the example "café.fr", the variable name "TF_TOKEN_xn____caf__dma_fr" or "TF_TOKEN_xn--caf-dma_fr"
may be used.
2022-04-13 13:49:59 -06:00
Brandon Croft
dff6a8431c
Apply doc suggestions from code review
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-04-13 13:49:58 -06:00
Brandon Croft
307326fa3a
allow remote service creds to be configured using env
Introduces a new method of configuring token service credentials using a host-specific environment variable. This configuration was previously possible using the [terraform-credentials-env](https://github.com/apparentlymart/terraform-credentials-env) credentials helper.

This new method is now consulted first, as it is seen to be the most proximate source of credentials before CLI configuration while still falling back to the credentials helper.
2022-04-13 13:49:57 -06:00