Commit Graph

20921 Commits

Author SHA1 Message Date
Martin Atkins
c990c40768
Update CHANGELOG.md 2017-11-28 12:24:07 -08:00
James Bardin
c21c8ddb08
Merge pull request #16782 from hashicorp/jbardin/output-warning
Add flag to opt out of module output errors
2017-11-28 14:56:43 -05:00
James Bardin
048af6e237 Add test fixture to check for warnings 2017-11-28 14:18:54 -05:00
James Bardin
5fa24a0128 output warning flag 2017-11-28 14:18:54 -05:00
Martin Atkins
cc5e480378 config: detect and warn about access to "counted" attributes
A common pattern is to conditionally assign to "count"
in a resource in order to decide dynamically whether it
should be created. In that situation it's necessary to
refer to attributes of the resource using the splat
syntax, but historically we didn't show errors in output
expressions and so people "got away with" incorrect usage
in that context.

The intent of this warning is to catch
potentially-problematic usage of attributes on such
resources even if the count happens to be currently
set dynamically to 1, which would not generate the
error. Then the user can quickly locate and fix the
incorrect usage regardless of the current value.
2017-11-28 11:15:29 -08:00
Martin Atkins
ba0514106a return tfdiags.Diagnostics from validation methods
Validation is the best time to return detailed diagnostics
to the user since we're much more likely to have source
location information, etc than we are in later operations.

This change doesn't actually add any detail to the messages
yet, but it changes the interface so that we can gradually
introduce more detailed diagnostics over time.

While here there are some minor adjustments to some of the
messages to improve their consistency with terminology we
use elsewhere.
2017-11-28 11:15:29 -08:00
Alexandru Ungur
9f1a773655 website: fix broken link from resources to multiple provider instances 2017-11-20 17:05:35 -08:00
James Bardin
882803b298
Merge pull request #16722 from hashicorp/jbardin/regsrc
Clean up regsrc module
2017-11-20 19:30:32 -05:00
James Bardin
9034fdb050 make sure invalid hosts aren't compared
Comparing 2 invalid hosts would erroneously return equal, because they
would compare the invalid host string.
2017-11-20 18:29:09 -05:00
James Bardin
8091bd627d move Svchost method to regsrc.Module
The level of abstraction that needs the "svchost" is the Module, not the
FriendlyHost. Us the new method in the module package for registry
interaction.
2017-11-20 18:29:09 -05:00
James Bardin
bd576d780a failing test for module not found error
The "not found" error should use the raw string directly from the config
source, but the existing method was adding the default registry if there
was no host indicated.
2017-11-20 17:42:35 -05:00
James Bardin
87f23d9719 add Module method for module name only 2017-11-20 16:48:11 -05:00
James Bardin
92db96f783 disallow github and bitbucket 2017-11-20 16:44:50 -05:00
James Bardin
98d0d15ddc Update the FriendlyHost tests for svchost.Hostname
This no longer allows normalization of punycode hostnames. This
shouldn't be a problem, as they were not valid in the first place.
2017-11-20 16:11:39 -05:00
James Bardin
1ac5871a09 use svchost.Hostname for FriendlyHost validation
Use the svchost.Hostname for FriendlyHost normalization and validation.
2017-11-20 16:09:27 -05:00
James Bardin
9162213b01 reimport the registry regsrc module 2017-11-20 15:12:10 -05:00
Martin Atkins
28632790b7 Issue template: comment out the instruction portions
By wrapping the instruction portions in comments we can get a cleaner rendering of the issue if a user posts it without removing the instructions first.

The content is otherwise the same as before.
2017-11-20 10:57:46 -08:00
James Bardin
1efdc40a8d
Merge pull request #16695 from hashicorp/jbardin/inherit
reword inheritance upgrade guide
2017-11-20 12:03:08 -05:00
James Bardin
1940e213a0 reword inheritance upgrade guide 2017-11-20 09:22:26 -05:00
Dmitry Grigorenko (gitHUB)
27aa4cb6bf website: fix documented naming scheme for provider plugins 2017-11-18 18:44:57 -08:00
Jordi Pàmies
6786c1361f website: fix incorrect examples for the chunklist function 2017-11-16 16:07:44 -08:00
Kevin Fishner
8c7ed01416 Update README.md (#16653) 2017-11-16 16:15:16 -06:00
Martin Atkins
116003f157 website: downloads nav link to 0.11 upgrade guide 2017-11-16 12:06:42 -08:00
Martin Atkins
c9c7b73f87 release: clean up after v0.11.0 2017-11-16 19:37:51 +00:00
Martin Atkins
ec9d4f1d0f
v0.11.0 2017-11-16 19:22:42 +00:00
Martin Atkins
0e43ede9b7
Update CHANGELOG.md 2017-11-16 10:39:41 -08:00
Martin Atkins
57db3cfe51 website: 0.11 upgrade guidance on resources with count = 0
This is a genre of invalid output expression that we've seen quite
commonly while testing with 0.11.0-rc1, so we'll call it out specifically
in the upgrade guide and suggest how to fix it.
2017-11-16 10:23:18 -08:00
Martin Atkins
f3f0b5356e website: specify HCL syntax highlighting in the 0.11 upgrade guide 2017-11-16 10:23:18 -08:00
Martin Atkins
31ee29050e
website: US English spelling of "honor" 2017-11-15 09:09:47 -08:00
Martin Atkins
1da2464e72 website: further copyediting for "Providers within Modules"
The differences between the implicit and explicit modes of passing
provider configurations between modules are significant enough to warrant
giving these approaches different names and describing them separately.

This also includes documentation of the current limitation discussed in
#16612, where explicit passing requires a proxy configuration block even
for a _default_ provider configuration, because that limitation is being
accepted for the 0.11.0 release to limit scope.
2017-11-15 08:50:49 -08:00
Paul Banks
2889eded3f
Tweaks to Registry Docs for 0.11 (#16663)
* Registry 0.11 doc tweaks

* Add changes for v0.11
2017-11-15 16:27:41 +00:00
Martin Atkins
275ab4a74e main: don't print the CLI config into the logs
Now that we're expecting "credentials" blocks in the config (with auth
tokens for private module registries, etc) we should not print out the
config contents into the log, or else people will probably end up
accidentally disclosing their credentials when sharing debug output with
us, or will be reluctant to share debug output.
2017-11-14 15:49:26 -08:00
James Bardin
aa44e9d56b
Merge pull request #16650 from hashicorp/jbardin/removed-implicit-provider
normalize missing provider names
2017-11-14 18:00:45 -05:00
James Bardin
29264df7c0 normalize missing provider names
The provider name coming from ProvidedBy may be resolved if it only
exists in the state. Make sure to strip the module and provider
prefixes for the provider name when adding missing providers.
2017-11-14 15:53:37 -05:00
James Bardin
aef082d1ec
Merge pull request #16621 from hashicorp/jbardin/provider-panic
Fix panic with invalid module providers
2017-11-13 19:27:19 -05:00
James Bardin
b357c02ad1 don't panic 2017-11-10 11:01:32 -05:00
James Bardin
8619f566bb validate providers passed to a module exist
This validation was lost in the migration of inheritance back to core.
Make sure a module configuraton doesn't specifiy a provider that doesn't
exist.
2017-11-10 11:01:32 -05:00
Clint
f15d95fc4d
Update CHANGELOG.md 2017-11-10 08:25:54 -06:00
James Bardin
95ad20e360 release: clean up after v0.11.0-rc1 2017-11-09 20:10:58 +00:00
James Bardin
9389013011
v0.11.0-rc1 2017-11-09 19:49:01 +00:00
Martin Atkins
071e746edf website: use correct style for providers map in upgrade guide
We don't generally use comma separators for map elements in HCL, because
the newline implies it.
2017-11-09 11:23:24 -08:00
Martin Atkins
1622a63da5 website: use correct syntax for providers map in upgrade guide
This was using JSON-style syntax rather than HCL-style.
2017-11-09 11:22:34 -08:00
Martin Atkins
11790442a1 website: Describe provider config hoisting in 0.11 upgrade guide
We are recommending that as of 0.11 all provider configurations be placed
in the root module and, where necessary, be explicitly passed down via
a providers map to customize which configurations are seen by each
child module.

This new section attempts to guide users through such refactoring in the
common case where a child module defines its own provider configuration
based on a value passed in an input variable, and then uses that as
some context to link to the more detailed docs to help those who have
more complex configurations.
2017-11-09 11:08:09 -08:00
Martin Atkins
40b7b4c133 website: Further clarification on how providers and modules interact
The initial pass of this section had some remaining ambiguities, so this
is a second revision that attempts to use terminology more consistently
and to not some additional behaviors that were not described in the
initial version.
2017-11-09 11:08:09 -08:00
Martin Atkins
f3a2165587 website: Use "Input Variable" as full term for var.foo
We've historically been somewhat inconsistent in how we refer to the
type of object defined by "variable" blocks in configuration. Parts of
our documentation refer to them as "input variables" or just "variables",
while our implementation refers to them as "user variables".

Since Terraform Registry is now also referring to these as "Inputs", here
we standardize on "Input Variable" as the fully-qualified name for this
concept, with "variable" being a shorthand for this where context is
obvious. Outside of this context, anything that can be referred to in
an interpolation expression is generically known as a "variable", with
Input Variables being just one kind, specified by the "var." prefix.

While this terminology shift is not critical yet, it will become more
important as we start to document the new version of the configuration
language so we can use the generic meaning of "variable" there.
2017-11-09 11:08:09 -08:00
Martin Atkins
3d33a36bf6 website: update terminology used in provider config docs
The bulk of the text on this page hasn't been revised for some time and
so parts of it were using non-idiomatic terminology or not defining terms
at all.

The main goal of this revision is to standardize on the following terms:

- "provider configuration" refers to a specific provider block in config,
  as a distinct idea from the provider _itself_, which is a singleton.

- "Default" vs. "additional" provider configurations, distinguishing
  those without and with "alias" arguments respectively. These are named
  here so that we can use this terminology to describe the different
  behaviors of each for the purposes of provider inheritance between
  modules.
2017-11-09 11:08:09 -08:00
James Bardin
ca191a3b2f
Merge pull request #16599 from hashicorp/jbardin/orphaned-module-outputs
Remove modules and module outputs from state
2017-11-09 12:33:35 -05:00
James Bardin
e3ea3150ae make NodeOutputOrphan referenceable
The removed output need to be referencable so if its parent module is
also being remove, the removal happens in the correct order.
2017-11-09 10:52:46 -05:00
James Bardin
e0ad3300c6 fix References used by the ReferenceTransformer
There was a bug where all references would be discarded in the case when
a self-reference was encountered. Since a module references all
descendants by it's own path, it returns a self-reference by definition.
2017-11-09 10:36:42 -05:00
James Bardin
7e4dcdb9f0 run RemovedModuleTransformer before References
Also add RemovedModuleTransformer to the plan graph for parity.
2017-11-09 10:34:56 -05:00