Commit Graph

117 Commits

Author SHA1 Message Date
Martin Atkins 48d940323e website: Beginnings of "Functions" configuration section
Previously we just listed out all of the functions in alphabetical order
inside the "Interpolation Syntax" page, but that format doesn't leave much
room for details and usage examples.

Now we give each function its own page, and categorize them for easier
navigation. While many functions are very simple and don't really warrant
a full page, certain functions do have additional details that are worth
mentioning and this structure scales better for those more complicated
functions.

So far this includes only the numeric and string functions. Other
categories will follow in subsequent commits.
2018-10-16 18:47:33 -07:00
Martin Atkins 39579e8d0f website: revisions to the "Configuration Syntax" page and expressions
This rewrite of the "Configuration Syntax" page now gives some more detail
on the top-level structural constructs and de-emphasizes the name "HCL"
as subordinate to "the Terraform language".

It also now includes some commentary on valid identifiers and comments,
and issues around character encodings and line endings.

In addition, we now have a new "Expressions" page that replaces the old
"Interpolation Syntax" page, covering the expression language features
we inherit from HCL and how they behave in the context of Terraform.

The "Expressions" page currently links to a page about the built-in
functions which does not yet exist. This will be created in a later
commit.
2018-10-16 18:47:33 -07:00
Martin Atkins e1754970a8 website: Revise the "Data Sources" configuration docs section
This adopts a more guide-like writing style, similar to what prior commits
have done to some other subsections of this section.

The data sources page has not got any real attention since the feature
was first added, and our vocabulary for describing them and their
lifecycle hadn't quite settled when the page was originally written. This
new version is consistent in how it uses "data source" to describe the
feature that providers offer and "data resource" to describe what is
created by a "data" block in configuration, which then allows us to
draw on the many shared features between both data and managed resources.

For the moment this waits until "data resource" is defined in order to
first introduce the qualifier "managed resource". We may wish to revise
this again to mention that more specific nomenclature in passing on the
"Resources" page, in case a user encounters it elsewhere and wants to
learn what it means without needing to be familiar with data resources
first.
2018-10-16 18:47:33 -07:00
Martin Atkins eeb96b1e12 website: Revise the "Modules" configuration docs section
This adopts a more guide-like writing style, similar to what prior commits
have done to some other subsections of this section.

Since we already have a whole top-level section devoted to modules, there
is no need for full coverage of all of their features here. Instead, this
section focuses on an an initial introduction to what modules are and
the basics of their usage within the Terraform language. We then link
to the main modules section for the full details.
2018-10-16 18:47:33 -07:00
Martin Atkins fdc8bb6c00 website: Revise the "Local Values" configuration docs section
This adopts a more guide-like writing style, similar to what prior commits
have done to some other subsections of this section.
2018-10-16 18:47:33 -07:00
Martin Atkins e41883d972 website: Revise the "Output Values" configuration docs section
This adopts a more guide-like writing style, similar to what prior commits
have done to some other subsections of this section.

In the process of writing this, I identified some unclear statements in
the "Resources" subsection, and so these are also revised here for
consistency with the output values documentation.
2018-10-16 18:47:33 -07:00
Martin Atkins f8f2ff2202 website: Revise the "Input Variables" configuration docs section
This adopts a more guide-like writing style, similar to what prior commits
have done to the Resources and Providers sections.
2018-10-16 18:47:33 -07:00
Martin Atkins a6cf796873 website: Revise the "Providers" configuration docs section
These revisions reflect this sub-section's new earlier placement in the
sub-section list, leading to a more guide-like style for the initial
sections.

Also includes some minor copy-editing to align terminology with that
introduced in the prior commit for the "Resources" docs page.
2018-10-16 18:47:33 -07:00
Martin Atkins 6fa6a0d110 website: revise the "Resources" configuration docs section
This is now the leading subsection of the Configuration section of the
docs, and so this rewrite intends to make it more "guide-like" and as
accessible as possible to those who are not yet familiar with other
Terraform concepts.

This rewrite also attempts to introduce some consistency into our
vocabulary, which should eventually be reflected throughout our
documentation. In particular:

- "Resource" refers to the block the user writes in configuration, while
  "Resource _Type_" refers to what the provider defines. We previously
  used "resource" for both of these interchangeably.

- "Resource" is no longer used to refer to what gets created and managed
  in remote APIs as a result of a resource block in configuration. Lacking
  a good distinct name for these, this guide uses the word "object",
  qualifying it as "infrastructure object" or "remote object" where
  necessary to retain clarity. This distinction is important to enable
  a clear description of resource lifecycle.

- "Argument" refers to an element (attribute or block) within a resource
  block. This terminology was already being used in some places, so we
  embrace it here as a way to distinguish from "attribute", which is
  what a resource _exports_ for use in expressions.

- Since interpolation is no longer needed to use expressions in the
  language, the word "expression" is used to describe the definition of
  a value that might involve some computation. Where necessary, this is
  used with a modifier "arbitrary expression" to contrast with situations
  where the set of allowed expression constructs is constrained.
2018-10-16 18:46:46 -07:00
Martin Atkins 27429b61a9 website: Flesh out the intro to the "Configuration" section.
The prior content on this page was little more than an instruction to
begin navigating the sub-sections of this section.

The new content aims to give a broad overview of some of the language
concepts and a syntax example, in order to create some context to help
the user navigate the subsections more easily.

This also introduces for the first time usage of the term "the Terraform
language". This was previously left un-named, leading to some awkward
sentence constructions elsewhere in the docs. This new name gives us
some specific terminology to use in order to contrast the language that
exists at Terraform's level of abstraction, defining the semantics, from
the underlying grammar provided by HCL.
2018-10-16 18:46:46 -07:00
Martin Atkins e5e3452ffa website: Reorganize the "Configuration" docs section
With the additional configuration language features coming in Terraform
v0.12, our existing documentation structure is beginning to strain.

Here we reorganize the navigation slightly in order to introduce the
concepts in a more appropriate order so that we can reveal complexity
more gradually. Subsequent commits will revise the content of these
pages to better reflect the new sequencing.

The "Environment Variables" page is moved from the Configuration section
into the "Commands" section, since it is not considered a part of the
configuration language and thus more appropriate in the CLI documentation.
The old placement is reflective of the broader purpose that the
"Configuration" section had originally, but its new focus will be on
the Terraform language (.tf files) in particular, with other aspects of
customizing Terraforms behavior covered in other sections.
2018-10-16 18:46:46 -07:00
Nick Fagerlund b3935b29d7
website: Reconcile docs about plugin discovery and downloading (#18973)
website: Reconcile docs about plugin discovery and downloading

I'm attempting to keep things simple for normal users while making sure we've
got the full behavior written down somewhere for plugin developers.

This commit doesn't stand alone; it's paired with a commit in the
terraform-website repo, to deal with some related content in the "extend"
section.
2018-10-02 16:53:29 -07:00
saravanan palanisamy 517e28ee6e update uuid definition 2018-09-10 21:49:02 +04:00
Quinn Diggity c943caf1a5 website: fix for typo in resources.html.md (#18266)
should be provides, not provies
2018-06-18 08:37:57 -07:00
Paddy 931f8ecc41 Fix broken links to /docs/enterprise/run/api.html
We had a couple broken links pointing to the docs for the run API. This
updates them to the new location.
2018-06-13 12:19:07 -07:00
Jaye Doepke 596c7b2638 docs typo 2018-06-11 12:04:03 -07:00
SpencerBrown 3324de35b6 Fix typo in doc: "The support operators are" -> "The supported operators are" 2018-06-11 11:50:18 -07:00
Dominik-K 9da5f5a9f0 docs: no interpolations in `lifecycle` attribute (#3116) (#17695)
* docs: interpolations in `lifecycle` unsupported currently
2018-04-05 15:06:22 -04:00
James Bardin ff8d02cd25 remove old warning care create_before_destroy
Create-before-destroy dependencies are automatically ordered correctly
by terraform. Remove the old notice about requiring all dependencies to
have the same setting for create_before_destroy.
2018-04-03 17:37:36 -04:00
Andrei Ivanov 53110e5c1f - fixed a trivial typo 2018-03-07 17:57:25 +02:00
Nick Fagerlund 66ff8f8bed website: Deprecation notes about "terraform push"
Also:

- In the getting started guide, the TFE content was all tailored to the older
  run-locally workflow. I've replaced it with some brief explanation and a link
  to the dedicated TFE getting started guide.
- Fixed a sidebar link glitch in the configuration section. (Both "Terraform"
  and "Terraform Enterprise" were marked as active if you were on the TFE page.)
- Renamed the "Terraform Enterprise" page "Terraform Push." (Some people have
  gotten confused and landed on this page when trying to set up the `atlas`
  remote backend.)
2018-02-27 14:48:04 -08:00
Michael Mell 4b598860bb website: document the naming conventions for outputs 2018-02-12 19:33:57 -08:00
Blake Stoddard f918fb8583 website: fix ordering of interpolation functions 2018-01-31 11:50:00 -08:00
Brian Flad 1ff724f333
Merge pull request #17087 from hashicorp/f-versioning-docs-updates
Documentation: Add version specifier information to provider version docs and clarify pessimistic specifier
2018-01-25 14:56:08 -05:00
Rubén González 944a98f42d website: correct link from file interpolation function to path information variables 2018-01-22 11:35:33 -08:00
Brian Flad 939f20011e Documentation: Cleaner copy around pessimistic version specifiers for modules and providers 2018-01-11 12:46:00 -05:00
Brian Flad 4d4fe85227 Documentation: Add version specifier information to provider version docs and clarify pessimistic specifier 2018-01-11 12:38:43 -05:00
Clint a8f08faab5
copy doc note from terraform-providers/terraform-provider-aws/2162 (#16940) 2017-12-19 10:29:55 -06:00
Andrew 2b68f4393e website: explanation of TF_VAR_ precedence
Fixes #15595
2017-12-05 11:27:31 -08:00
David Meyer fe0cc3b0db config: new "rsadecrypt" interpolation function
The primary use-case is to decrypt windows passwords obtained from AWS, but this function is generic and may find other purposes too.
2017-12-05 11:06:32 -08:00
mizuno 01c1142589 config: new "timeadd" interpolation function 2017-12-05 10:46:12 -08:00
Cameron Childress ae33b68e68 website: An example of referencing resources with "count" 2017-12-04 09:43:40 -08:00
David Celis 714169502a website: note that plugin_cache_dir must already exist
This directory is not automatically created by Terraform
2017-11-29 15:04:08 -08:00
Alexandru Ungur 9f1a773655 website: fix broken link from resources to multiple provider instances 2017-11-20 17:05:35 -08: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
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
Martin Atkins 3da5fefdc1 command: Allow TF_DATA_DIR env var to override data directory
This allows the user to customize the location where Terraform stores
the files normally placed in the ".terraform" subdirectory, if e.g. the
current working directory is not writable.
2017-11-01 16:55:23 -07:00
Benjamin Farley d6abdd14e7 website: correction of chunklist interpolation function example 2017-11-01 10:48:34 -07:00
Martin Atkins 91a4af9c8a website: rewrite modules usage documentation for new features
The modules mechanism has changed quite a bit for version 0.11 and so
although simple usage remains broadly compatible there are some
significant changes in the behavior of more complex modules.

Since large parts of this were rewritten anyway, I also took the
opportunity to do some copy-editing to make the prose on this page more
consistent with our usual editorial voice and to wrap the long
lines.
2017-11-01 07:22:20 -07:00
Aleksejs Sinicins ece099f453 website: fix "contains" interpolation example 2017-10-17 07:25:09 -07:00
Gauthier Wallet ed9ba576e3 core: New interpolation function "chunklist"
This turns a list into a list of lists with each element (apart from possibly the last) being the given length.
2017-10-10 11:56:13 -07:00
Patrick Decat 00c3367dda website: Replace `~` by `$HOME` in documentation of TF_PLUGIN_CACHE_DIR 2017-10-03 18:34:22 -07:00
James Bardin da0e74276a fix provider with local value test and docs
Make sure this fails during destroy

Add a note in the documentation that local values may fail during
destroy.
2017-09-29 17:14:07 -04:00
Martin Atkins 34956cd124 website: Document the plugin cache
Since we don't currently auto-install provisioner plugins this is
currently placed on the providers documentation page and referred to as
the "Provider Plugin Cache". In future this mechanism may also apply to
provisioners, in which case we'll figure out at that point where better
to place this information so it can be referenced from both the provider
and provisioner documentation pages.
2017-09-29 14:03:09 -07:00
Martin Atkins f19bf25945 website: don't recommend "providers" block in CLI config
This mechanism for configuring plugins is now deprecated, since it's not
capable of declaring plugin versions. Instead, we recommend just placing
plugins into a particular directory, which is now documented on the
main providers documentation page and linked from the more detailed docs
on plugins in general.
2017-09-29 14:03:09 -07:00
Martin Atkins c5d8f2ffd2 website: clarify that provider version does not accept interpolations
This fixes #15896.
2017-09-28 12:41:39 -07:00
Ariel Alonso 550ae05819 config: new "transpose" interpolation function
This function takes a map of lists of strings and inverts it so that
the string values become keys and the keys become items within the
corresponding lists.
2017-09-28 10:29:25 -07:00
Krzysztof Wilczynski 6e7e03f4ea config: new "abs" interpolation function
This new function returns the absolute value for a given number.
2017-09-25 14:19:18 -07:00
James Bardin 50005ec817 Merge branch 'f-registry-docs' into v0.10.6-release 2017-09-18 15:30:31 -05:00
Paul Banks 197bbc6114 Add screenshots, make registry the default module source example, remove dead support link in registry submenu 2017-09-15 17:50:22 +01:00
Micah Hausler 7fa4b648bb config: multi-line "indent" function
This function prepends a number of spaces on to all but the first line
of a string containing multiple lines of text.
2017-09-14 09:47:48 -07:00
Shih Oon Liong bcfb63098a website: Example of using maps with local values 2017-09-08 10:33:56 -07:00
Justin Campbell fd4cc78839 docs: Add local values usage example 2017-09-07 13:49:33 -04:00
Chris Doherty 793b986860 Cosmetic doc changes:
- Having a map 'foo' with a key 'foo' is confusing.
  - it's -> its
2017-09-05 15:28:36 -07:00
Martin Atkins bb0e57fec1 website: explain how to upgrade providers
Previously the -upgrade option was covered only on the "terraform init" usage page. It seems also worth mentioning in the main docs on provider versioning, since we're already explaining here other mechanics of the versioning/constraints system.
2017-08-28 12:17:24 -07:00
Gabriel Francisco 7b3f32f3de Resource aws_instance does not have attr private_ip_address (#15890) 2017-08-23 11:41:16 -05:00
Sunny 06fd5d7a3e config: urlencode interpolation function
This escapes all characters that might have a special interpretation when embedded into a portion of a URL, including slashes, equals signs and ampersands.
2017-08-22 11:26:09 -07:00
Gorka Lerchundi Osa a303817e03 config: base64gzip interpolation function
Since Terraform's internals are not 8-bit clean (it assumes UTF-8
strings), we can't implement raw gzip directly. We're going to add
support where it makes sense for passing data to attributes as
base64 so that the result of this function can be used.
2017-08-22 10:44:55 -07:00
Martin Atkins fd88c98c20 website: documentation for local values 2017-08-21 15:15:25 -07:00
Sebastian Maj 28b5708fef config: jsonencode function to support nested lists and maps 2017-08-18 09:57:57 -07:00
JWal31 117f44bcda config: Add "flatten" interpolation function
This function turns a list of lists or any arbitrary number of nested
lists into a flat list of primitive values.
2017-08-16 13:46:19 -07:00
Robert Liebowitz 8d98fdecac Autoload only .auto.tfvars files 2017-07-05 17:24:17 -07:00
Robert Liebowitz 006744bfe0 Use all tfvars files in working directory
As a side effect, several commands that previously did not have a failure
state can now fail during meta-parameter processing.
2017-07-05 17:24:17 -07:00
trung 681661a539 #15291: config/interpolate_funcs: Added contains() function to test if a given element is present in the list 2017-06-16 15:05:19 -07:00
Martin Atkins 7ed70bb00e website: new filesystem layout for core/provider split
This repo now contains only the core docs, with other content moving elsewhere.
2017-06-13 11:25:32 -07:00