Commit Graph

217 Commits

Author SHA1 Message Date
Peter McAtominey 431c2ee4c9 website/docs: correct outputs documentation 2017-05-30 00:12:24 +01:00
Ben Hartshorne 34b45c5ad8 [docs] update terraform configuration page to include reference to the backends section (#14894) 2017-05-29 06:58:08 +01:00
Martin Atkins 410b60cb7f Stop requiring multi-vars (splats) to be in array brackets
Prior to Terraform 0.7, lists in Terraform were just a shallow abstraction
on top of strings with a magic delimiter between items. Wrapping a single
string in brackets in the configuration was Terraform's prompt that it
needed to split the string on that delimiter during interpolation.

In 0.7, when first-class lists were added, this convention was preserved
by flattening lists-of-lists by one level when they were encountered in
configuration. However, there was an oversight in that change where it
did not correctly handle the case where the inner list was unknown.

In #14135 we removed some code that was flattening partially-unknown lists
into fully-unknown (untyped) values. This inadvertently exposed the missed
case from the previous paragraph, causing issues for list-wrapped splat
expressions with unknown members. While this worked fine for resources,
due to some fixup done inside helper/schema, this did not work for other
interpolation contexts such as module blocks.

Various attempts to fix this up and restore the flattening behavior
selectively were unsuccessful, due to a proliferation of assumptions all
over the core code that would be too risky to change just to fix this bug.

This change, then, takes the different approach of removing the
requirement that splats be presented inside list brackets. This
requirement didn't make much sense anymore anyway, since no other
list-returning expression had this constraint and so the rest of Terraform
was already successfully dealing with both cases.

This leaves us with two different scenarios:

- For resource arguments, existing normalization code in helper/schema
  does its own flattening that preserves compatibility with the common
  practice of using bracketed splats. This change proves this with a test
  within the "test" provider that exercises the whole Terraform core and
  helper/schema stack that assigns bracketed splats to list and set
  attributes.

- For arguments in other blocks, such as in module callsites, the
  interpolator's own flattening behavior applies to known lists,
  preserving compatibility with configurations from before
  partially-computed splats were possible, but those wishing to use
  partially-computed splats are required to drop the surrounding brackets.
  This is less concerning because this scenario was introduced only in
  0.9.5, so the scope for breakage is limited to those who adopted this
  new feature quickly after upgrading.

As of this commit, the recommendation is to stop using brackets around
splats but the old form continues to be supported for backward
compatibility. In a future _major_ version of Terraform we will probably
phase out this legacy form to improve consistency, but for now both
forms are acceptable at the expense of some (pre-existing) weird behavior
when _actual_ lists-of-lists are used.

This addresses #14521 by officially adopting the suggested workaround of
dropping the brackets around the splat. However, it doesn't yet allow
passing of a partially-unknown list between modules: that still violates
assumptions in Terraform's core, so for the moment partially-unknown lists
work only within a _single_ interpolation expression, and cannot be
passed around between expressions. Until more holistic work is done to
improve Terraform's type handling, passing a partially-unknown splat
through to a module will result in a fully-unknown list emerging on
the other side, just as was the case before #14135; this change just
addresses the fact that this was failing with an error in 0.9.5.
2017-05-23 11:22:37 -07:00
Pradeep Bhadani 9b3e43016e Remove extra space 2017-05-19 14:01:54 +01:00
Pradeep Bhadani d316205cf5 Remove extra line 2017-05-19 08:05:18 +00:00
Pradeep Bhadani c35d2325ef Update pow function description 2017-05-18 15:23:12 +00:00
Pradeep Bhadani faa480894f Add note in documentation for pow function 2017-05-18 15:03:13 +00:00
Pradeep Bhadani 47b1aaea3a Add pow function 2017-05-17 21:46:33 +00:00
Dennis Webb e27e0862f3 Fixes order of interpolation functions in docs (#14241) 2017-05-05 17:24:03 +03:00
Joshua Spence 38d4d2f9d4 Add a logarithm function
Fixes #9498. Adds a `log` function for calculating logarithms.
2017-05-05 17:06:53 +10:00
Martins Sipenko c7fb9808ef config: sha512 hash functions (#14100) 2017-05-02 16:35:23 -07:00
Tom Elliff 551eedcf26 Document the data source interpolation usage (#14144)
* Document the data source interpolation usage

Also briefly mentions how to use counts and splat syntax as with resources to further document the usage of counts for data sources (see https://github.com/hashicorp/terraform/pull/14143).

* Output -> Attribute

As per feedback.
2017-05-02 15:17:24 +01:00
Tom Elliff 64cd64d061 Document that data sources support meta parameters such as count (#14143)
Also fix the bad interpolation in the subnet_ids example.
2017-05-02 15:05:50 +01:00
Jake Champlin 70bc1e1dcc Merge pull request #12537 from Pryz/coalescelist
Add coalescelist interpolation function
2017-04-21 15:23:21 -04:00
Pavel Khusainov f9fb6010ee config: "matchkeys" interpolation function
This new function allows using a search within one list to filter another list. For example, it can be used to find the ids of EC2 instances in a particular AZ.

The interface is made slightly awkward by the constraints of HIL's featureset.

#13847
2017-04-21 10:04:49 -07:00
tmshn 86d7c47c0a Change cidrhost() to get IP from end of the range when negative number given
Ref: https://github.com/apparentlymart/go-cidr/pull/2
2017-04-19 09:41:41 -07:00
Phillip Shipley c87459a895 website: updated link to RE2 regex syntax page
Docs had old link to google code, which does not redirect to the new syntax page.
2017-04-15 17:15:14 -07:00
Gavin Williams 4021b0c898 Add documentation for `description` paramater on `output`. 2017-04-10 08:28:16 -07:00
Thomas Poindessous 89799a0938 Add a link to "Multiple Provider Instances"
Hi

I just added a link to "Multiple Provider Instances" on ressources's page.

Thanks.
2017-04-10 09:42:02 +02:00
Martin Atkins d1b35b412c Merge #13419: "chomp" function for stripping trailing newlines from strings 2017-04-07 11:12:49 -07:00
Seth Vargo b6b2d2d505
Remove more references to Atlas 2017-04-07 11:56:19 -04:00
Seth Vargo 426065a8f2
Fix broken links 2017-04-07 11:56:17 -04:00
Chris Riley dd76ccb579
removed Atlas from TF OSS Docs 2017-04-07 11:56:09 -04:00
Nic Jackson c0d6cedee6
Updated documentation with comments from @sethvargo and @radeksimko 2017-04-07 10:26:30 +01:00
Nic Jackson 45cacd4a9e
Merge branch 'master' of github.com:hashicorp/terraform into nic-provider-docs 2017-04-07 10:07:40 +01:00
Nic Jackson cde1df8af7
Updated copy 2017-04-07 10:07:23 +01:00
Seth Vargo 7110d15f19
Add HCL syntax highlighting for everything but providers 2017-04-06 14:08:39 -04:00
Joern Barthel 059a1b2c0f Added chomp interpolation function. 2017-04-06 13:17:25 +02:00
Nic Jackson b908fc54dc
Updated provider documentation to highlight limitations of interpolation syntax 2017-04-06 09:19:37 +01:00
Hernán Schmidt 2d8f3f257a Fix small typo 2017-04-03 10:38:35 +02:00
Joshua Spence af2c84de5a Add `basename` and `dirname` functions
Adds `basename` and `dirname` interpolation. I want to add a `stack` tag to our infrastructure, the value of which is set to `${basename(path.cwd)}`. We currently use `${replace(path.cwd, "/^.+\\//", "")}` instead, but this is extremeley unreadable. The existance of a `basename` function would be very useful for this use case.

I don't have an immediate use case for a `dirname` function, but it seemed reasonable to add it as well.
2017-03-28 09:29:26 -07:00
Joshua Spence e71d6d92ad Add a substring interpolation function (#12870)
Adds a new `substr` interpolation function which can be used to truncate a string.
2017-03-22 11:30:39 -04:00
Mitchell Hashimoto 173e8562d4
website: document terraform.env 2017-03-13 16:39:05 -07:00
Shailesh Yadav 9aa9c15786 English sentence correction (#12612)
English sentence correction. Corrected following:
"map values are merged and all are values are overridden"
to
"map values are merged and all other values are overridden"
2017-03-12 16:11:19 +02:00
Clint 3fdeacdca7 helper/schema: Rename Timeout resource block to Timeouts (#12533)
helper/schema: Rename Timeout resource block to Timeouts

- Pluralize configuration argument name to better represent that there is
one block for many timeouts
- use a const for the configuration timeouts key
- update docs
2017-03-09 14:40:14 -06:00
Pryz 733f1ca1e7 Add coalescelist interpolation function 2017-03-08 12:38:08 -08:00
Clint 2fe5976aec helper/schema: Add configurable Timeouts (#12311)
* helper/schema: Add custom Timeout block for resources

* refactor DefaultTimeout to suuport multiple types. Load meta in Refresh from Instance State

* update vpc but it probably wont last anyway

* refactor test into table test for more cases

* rename constant keys

* refactor configdecode

* remove VPC demo

* remove comments

* remove more comments

* refactor some

* rename timeKeys to timeoutKeys

* remove note

* documentation/resources: Document the Timeout block

* document timeouts

* have a test case that covers 'hours'

* restore a System default timeout of 20 minutes, instead of 0

* restore system default timeout of 20 minutes, refactor tests, add test method to handle system default

* rename timeout key constants

* test applying timeout to state

* refactor test

* Add resource Diff test

* clarify docs

* update to use constants
2017-03-02 11:07:49 -06:00
Mitchell Hashimoto d2f9df37f5 Merge pull request #11922 from hashicorp/f-tf-cli
command: add TF_CLI_ARGS to specify additional CLI args
2017-02-13 15:26:25 -08:00
Mitchell Hashimoto f7e535ed6e
website: update website for TF_CLI_ARGS 2017-02-13 14:51:37 -08:00
Kit Ewbank 549cff56d0 Add 'slice' interpolation function. (#9729) 2017-02-13 21:20:02 +00:00
Mitchell Hashimoto b35b263015 Merge pull request #11329 from hashicorp/f-destroy-prov
Destroy Provisioners
2017-01-26 14:32:21 -08:00
Mitchell Hashimoto 3a1140951b
website: document destroy provisioners 2017-01-20 23:21:29 -08:00
Jake Champlin 0a1991c82e
match paragraph indentation 2017-01-20 12:01:07 -05:00
Jake Champlin be45816c80
documentation: Add warning for pathexpand interpolation function
Note that the `pathexpand` interpolation function could cause an unwanted diff on two different hosts
2017-01-20 09:51:25 -05:00
Jake Champlin 5749217869 Merge pull request #11277 from hashicorp/f-add-tilde-expansion
core: Add pathexpand interpolation function
2017-01-19 09:35:33 -05:00
Jake Champlin 0b73b92830
core: Add pathexpand interpolation function
Adds the `pathexpand` interpolation function to allow users to expand `~` to the home directory in filepath strings.
2017-01-18 16:11:19 -05:00
Benjamin Richter a54d8a2d73 Remove obsolete reference from interpolation.html.md
The reference to the resources page is obsolete, the splat syntax is not described there (nor anywhere else, as far as I can see).
2017-01-18 11:36:20 +01:00
Benjamin Richter a53c827bdd Update interpolation.html.md (#11223)
correct typo
2017-01-17 15:40:56 +00:00
Matt Clegg a297d81dcd Fix bullet points (Whitespace formatting) 2016-12-21 15:51:54 +01:00
Michael H. Oshita a48de8cb9a syntax typo in doc for lookup() (#10783) 2016-12-16 11:29:01 +00:00