Commit Graph

29765 Commits

Author SHA1 Message Date
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
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
Alisdair McDiarmid
714740454e
Merge pull request #30855 from hashicorp/alisdair/fix-diff-map-key-quoting
cli: Fix double-quoted map keys in diff UI
2022-04-13 15:40:49 -04:00
hc-github-team-tf-core
8546543509 Cleanup after v1.2.0-alpha20220413 release 2022-04-13 18:30:46 +00:00
hc-github-team-tf-core
7f84fd7308
Release v1.2.0-alpha20220413 2022-04-13 18:14:12 +00:00
Brandon Croft
0dc26a9585
test(cloud): nonexisting org not a valid test when using mocks 2022-04-13 09:27:13 -06:00
Brandon Croft
a38a0ee8a8
test(cloud): ensure mocks are used for backend configure tests
Also adds a few new tests for cloud configuration using environment variables
2022-04-13 08:56:27 -06:00
Alisdair McDiarmid
fadcaaaad2 cli: Fix double-quoted map keys in diff UI
A previous change added missing quoting around object keys which do not
parse as barewords. At the same time we introduced a bug where map keys
could be double-quoted, due to calling the `displayAttributeName` helper
function (to quote non-bareword keys) then using the `writeValue` method
(which quotes all strings).

This commit fixes this and adds test coverage for map keys which require
quoting.
2022-04-13 09:10:00 -04:00
Sebastian Rivera
b191faf8a4 Add skip test if missing vars helper 2022-04-12 17:32:39 -04:00
Kevin Wang
8eaf7fe85e
chore: vercel config (#30831)
- follows: https://github.com/hashicorp/terraform-cdk/pull/1611
2022-04-12 12:19:28 -04:00
Sebastian Rivera
34114286ff Cloud e2e tests for configuring with env vars 2022-04-11 15:19:17 -04:00
Sebastian Rivera
8040dfec34
Merge pull request #30787 from hashicorp/sebasslash/tf-workspace-cloud-config
Add cloud config support for TF_WORKSPACE
2022-04-11 14:38:23 -04:00
Sebastian Rivera
f95c7935c9
Update website/docs/cli/cloud/settings.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-04-11 14:33:13 -04:00
Sebastian Rivera
4c3429f1a0 Update docs to explain new TF_WORKSPACE behavior for cloud config 2022-04-11 14:09:24 -04:00
Sebastian Rivera
dd864b1bac Add TF_WORKSPACE validation method 2022-04-11 13:59:02 -04:00
James Bardin
74885b1108 remove data sources from state read and upgrade
Data sources should not require reading the previous versions. While we
previously skipped the decoding if it were to fail, this removes the
need for any prior state at all.

The only place where the prior state was functionally used was in the
destroy path. Because a data source destroy is only for cleanup purposes
to clean out the state using the same code paths as a managed resource,
we can substitute the prior state in the change change with a null value
to maintain the same behavior.
2022-04-11 11:55:53 -04:00
James Bardin
29ecac0808 remove the use of data source prior state entirely
After data source handling was moved from a separate refresh phase into
the planning phase, reading the existing state was only used for
informational purposes. This had been reduced to reporting warnings when
the provider returned an unexpected value to try and help locate legacy
provider bugs, but any actual issues located from those warnings were
very few and far between.

Because the prior state cannot be reliably decoded when faced with
incompatible provider schema upgrades, and there is no longer any
significant reason to try and get the prior state at all, we can skip
the process entirely.
2022-04-11 10:19:45 -04:00
James Bardin
a7987dec9f remove redundant readResourceInstanceState 2022-04-11 10:12:44 -04:00
James Bardin
01628f0d50 data schema changes may prevent state decoding
Data sources do not have state migrations, so there may be no way to
decode the prior state when faced with incompatible type changes.

Because prior state is only informational to the plan, and its existence
should not effect the planning process, we can skip decoding when faced
with errors.
2022-04-11 09:45:10 -04:00
Alisdair McDiarmid
51178958f3
Merge pull request #30825 from hashicorp/alisdair/fix-nested-attr-sensitive-collections
cli: Fix plan diff for sensitive nested attributes
2022-04-11 08:05:19 -04:00
Alisdair McDiarmid
d23f0998fb cli: Fix plan diff for sensitive nested attributes
When rendering diffs for resources which use nested attribute types, we
must cope with collections backing those attributes which are entirely
sensitive. The most common way this will be seen is through sensitive
values being present in sets, which will result in the entire set being
marked sensitive.
2022-04-08 16:16:52 -04:00
Eng Zer Jun
fedd315275
test: use T.TempDir to create temporary test directory (#30803)
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-04-08 17:34:16 +01:00