Commit Graph

5410 Commits

Author SHA1 Message Date
Nick Fagerlund ac45e43fda website: Finish moving "writing custom providers" to /docs/extend/
This document was previously copied to the "Extending Terraform" section (in the
terraform-website repo), and the old URL was redirected so that the copy in
/guides can no longer be reached on the website. But the old copy of the file
remained, and now it runs the risk of confusing contributors, since the copy in
terraform-website/.../docs/extend is the more up-to-date version.
2019-01-11 16:36:40 -08:00
Scott Stevenson cef46ef953
Add details about using lock=true when consul ACL is enabled
This PR addresses https://github.com/hashicorp/terraform/issues/19963.
2019-01-11 14:43:56 -05:00
Brian Flad 05691a978e
Merge pull request #19951 from hashicorp/s3-backend-nosuchbucket-enhanced-error
backend/s3: Configure AWS Client MaxRetries and provide enhanced S3 NoSuchBucket error message
2019-01-11 10:04:16 -05:00
Chris Griggs 0cc057b873
Merge branch 'master' into cgriggs01-comm-5 2019-01-09 14:31:47 -08:00
Tom Harvey 177ca3711d
Adding the AzureAD entry to the providers page (#19946)
Adding the AzureAD entry to the providers page
2019-01-09 22:28:25 +00:00
cgriggs01 a9069cab7b edit fmt 2019-01-09 11:40:34 -08:00
cgriggs01 885a366f2e add <tr> 2019-01-09 11:21:02 -08:00
cgriggs01 830e23b217 add new community providers 2019-01-09 10:39:32 -08:00
Brian Flad ed37d07632
backend/s3: Configure AWS Client MaxRetries and provide enhanced S3 NoSuchBucket error message
The AWS Go SDK automatically provides a default request retryer with exponential backoff that is invoked via setting `MaxRetries` or leaving it `nil` will default to 3. The terraform-aws-provider `config.Client()` sets `MaxRetries` to 0 unless explicitly configured above 0. Previously, we were not overriding this behavior by setting the configuration and therefore not invoking the default request retryer.

The default retryer already handles HTTP error codes above 500, including S3's InternalError response, so the extraneous handling can be removed. This will also start automatically retrying many additional cases, such as temporary networking issues or other retryable AWS service responses.

Changes:
* s3/backend: Add `max_retries` argument
* s3/backend: Enhance S3 NoSuchBucket error to include additional information
2019-01-09 13:01:37 -05:00
Kristin Laemmert cdf7cc2449
command/json*: updating documentation and adding tests (#19944)
A few minor fixes and cleanups as a result of said tests. Hooray for
eventual consistency!
2019-01-09 08:59:11 -08:00
Martin Atkins d0e6a4c69a lang: Add "formatdate" function
We missed this one on a previous pass of bringing in most of the cty
stdlib functions.

This will resolve #17625 by allowing conversion from Terraform's
conventional RFC 3339 timestamps into various other formats.
2019-01-07 09:10:14 -08:00
Martin Atkins c753df6a93 lang/funcs: templatefile function
This function is similar to the template_file data source offered by the
template provider, but having it built in to the language makes it more
convenient to use, allowing templates to be rendered from files anywhere
an inline template would normally be allowed:

    user_data = templatefile("${path.module}/userdata.tmpl", {
      hostname = format("petserver%02d", count.index)
    })

Unlike the template_file data source, this function allows values of any
type in its variables map, passing them through verbatim to the template.
Its tighter integration with Terraform also allows it to return better
error messages with source location information from the template itself.

The template_file data source was originally created to work around the
fact that HIL didn't have any support for map values at the time, and
even once map support was added it wasn't very usable. With HCL2
expressions, there's little reason left to use a data source to render
a template; the only remaining reason left to use template_file is to
render a template that is constructed dynamically during the Terraform
run, which is a very rare need.
2018-12-21 08:06:14 -08:00
Nick Fagerlund 17873ae61b website: Update functions section page titles 2018-12-20 14:20:42 -08:00
Nick Fagerlund 9f85e6d5cc website: Update configuration language section page titles 2018-12-20 14:20:42 -08:00
Nick Fagerlund d2abdc23ac website: Structural edit of configuration language docs
This commit is a wide-ranging set of edits to the pages under
/docs/configuration. Among other things, it

- Separates style conventions out into their own page.
- Separates type constraints and conversion info into their own page.
- Conflates similar complex types a little more freely, since the distinction is
  only relevant when restricting inputs for a reusable module or resource.
- Clarifies several concepts that confused me during edits.
2018-12-20 14:20:42 -08:00
cgriggs01 da370cd689 fix spacing in website docs 2018-12-20 13:27:15 -08:00
cgriggs01 9df6e2df42 add hedvig provider links 2018-12-20 10:54:20 -08:00
cgriggs01 79f93ed695 links for ucloud provider 2018-12-19 13:11:31 -08:00
Sander van Harmelen da8e02eb2e
Merge pull request #19647 from hashicorp/svh/f-versions
core:  add a method to the disco package retrieve version constraints
2018-12-14 12:38:52 +01:00
Sander van Harmelen 268c0f85ce Add a method to retrieve version contraints 2018-12-14 12:17:31 +01:00
Brian Flad 058434d28b
Merge pull request #19571 from hashicorp/f-backend-s3-other-endpoints
backend/s3: Support DynamoDB, IAM, and STS endpoint configurations
2018-12-10 19:28:01 -05:00
Chris Doherty b4c28a9789
Merge pull request #19561 from invertigo/patch-1
remove approximate release date
2018-12-10 13:29:17 -08:00
Tom Harvey 383bc98f5c
backend/azurerm: Support for authenticating using the Azure CLI (#19465)
* Upgrading to 2.0.0 of github.com/hashicorp/go-azure-helpers

* Support for authenticating using Azure CLI

* backend/azurerm: support for authenticating using the Azure CLI
2018-12-10 21:23:30 +00:00
cgriggs01 41897bb437 six new community providers 2018-12-10 11:13:45 -08:00
Brian Flad 9a3b02cd6c
backend/s3: Support DynamoDB, IAM, and STS endpoint configurations
This change enables a few related use cases:
* AWS has partitions outside Commercial, GovCloud (US), and China, which are the only endpoints automatically handled by the AWS Go SDK. DynamoDB locking and credential verification can not currently be enabled in those regions.
* Allows usage of any DynamoDB-compatible API for state locking
* Allows usage of any IAM/STS-compatible API for credential verification
2018-12-07 03:10:51 -05:00
cgriggs01 808c76fa9b Add skytap links 2018-12-05 15:38:47 -08:00
Alex Gottschalk 029f54792f
remove approximate release date
"Later this summer" is long-gone.
2018-12-05 12:19:08 -08:00
Chris Griggs 89347e9c81
Updates path name 2018-11-28 16:55:03 -08:00
cgriggs01 c943083a4b selvpc -> selectel 2018-11-28 13:30:48 -08:00
Daniel Schroeder 65080b9ce3 website: Fix redundant "be" in workspaces documentation 2018-11-28 07:59:37 -08:00
Chris Griggs e32c5de440
Merge pull request #19390 from cgriggs01/cgriggs01-selvpc
[Website] New certified and community provider
2018-11-26 13:03:50 -08:00
cgriggs01 f013942150 formatting edits 2018-11-26 13:01:55 -08:00
Tom Harvey 6d4f702467
backend/azurerm: support for custom resource manager endpoints (#19460)
* backend/azurerm: removing the `arm_` prefix from keys

* removing the deprecated fields test because the deprecation makes it fail

* authentication: support for custom resource manager endpoints

* Adding debug prefixes to the log statements
2018-11-26 14:42:16 +01:00
Tom Harvey d580f30e03
backend/azurerm: removing the `arm_` prefix from keys (#19448)
* backend/azurerm: removing the `arm_` prefix from keys

* removing the deprecated fields test because the deprecation makes it fail
2018-11-26 11:19:43 +01:00
Tom Harvey 96b1c951fa
backend/azurerm: support for authenticating via SAS Tokens (#19440)
* adding acceptance tests for msi auth

* including the resource group name in the tests

* backend/azurerm: support for authenticating using a SAS Token

* resolving merge conflicts

* moving the defer to prior to the error
2018-11-22 18:02:33 +01:00
Tom Harvey c928962f44
backend/azurerm: support for authenticating via msi (#19433)
* backend/azurerm: support for authenticating via msi

* adding acceptance tests for msi auth

* including the resource group name in the tests

* support for using the test client via msi
2018-11-22 16:52:27 +01:00
Tom Harvey 0ec109bdc0
backend/azurerm: upgrading the SDK / support for proxies (#19414)
* vendor updates

- updating to v21.3.0 of github.com/Azure/azure-sdk-for-go
- updating to v10.15.4 of github.com/Azure/go-autorest
- vendoring github.com/hashicorp/go-azure-helpers @ 0.1.1

* backend/azurerm: refactoring to use the new auth package

- refactoring the backend to use a shared client via the new auth package
- adding tests covering both Service Principal and Access Key auth
- support for authenticating using a proxy
- rewriting the backend documentation to include examples of both authentication types

* switching to use the build-in logging function

* documenting it's also possible to retrieve the access key from an env var
2018-11-21 22:06:03 +01:00
Nick Fagerlund 7d5db9522f
website: Fix plugin path on Windows (#19423)
...and one other reference to the application data directory.

Context:

https://docs.microsoft.com/en-us/windows/desktop/shell/knownfolderid#folderid_roamingappdata

In newer Windows versions, the folder accessible as `%APPDATA%` (and via various
APIs) is actually at something like "documents and settings\user\application
data\roaming", while earlier versions omit the "\roaming" part of the path. This
means you can confuse people by referring to the "application data" directory by
its human name, because "roaming" is the real application data directory, but it
looks like a subdirectory of "application data".

Thus, it's less confusing to just use the `%APPDATA%` variable, with the added
benefit that you can copy and paste the path and it'll just work in most places.
2018-11-20 16:54:18 -08:00
cgriggs01 28de3823ac new provider and community links 2018-11-16 11:35:33 -08:00
Nikolai Vavilov e10cf6dabd
website: add missing article 2018-11-11 23:15:11 +02:00
Kristin Laemmert 1be09745d7
Merge pull request #19007 from cardoe/fix-swift-backend-docs
Fix backend/swift docs
2018-11-08 06:34:09 -08:00
Nick Fagerlund 3b02214d8c
website: clarify behavior of terraform_remote_state data sources (#19227) 2018-11-07 14:01:58 -08:00
Tom Harvey 49c42b9830
docs: add warning to backend/swift about auto-expire
If the user uses the auto-expire value in the backend/swift settings
then swift will automatically delete their Statefile which is likely
something the user doesn't want given how Terraform works.
2018-11-06 18:18:46 -06:00
Doug Goldstein 817be7b23f
website: update backend/swift examples to use versioning
Since object versioning is a best practice the docs should have all the
examples containing it by default.
2018-11-06 18:18:46 -06:00
Doug Goldstein 58cb47d108
website: backend/swift fix bad link for object versioning
The displayed link said `expire_after` but really is a link to
`archive_container` so update the link to read the right data.
fixes #19005
2018-11-06 18:18:46 -06:00
Doug Goldstein ddc30b6546
website: backend/swift add docs link for expire_after
Provide a link to the OpenStack Swift docs for the object expiration
feature that is used by the `expire_after` field.
2018-11-06 18:18:45 -06:00
Doug Goldstein b31aab4469
website: fix backend/swift links to Swift docs
The links to the OpenStack Swift documentation were broken due to
changes on the OpenStack website.
2018-11-06 18:18:45 -06:00
Doug Goldstein 027b107268
website: update deprecated backend/swift docs
Update the examples and docs to not directly reference deprecated
fields.
2018-11-06 18:18:45 -06:00
Sander van Harmelen 52a1b22f7a Implement the remote enhanced backend
This is a refactored version of the `remote` backend that was initially added to Terraform v0.11.8 which should now be compatible with v0.12.0.
2018-11-06 16:29:46 +01:00
Sean Carolan b7cf7737f6 website: use a clearer header describing the CLI config file (#19263)
Using a / could be confusing to users who assume it is a directory.
2018-11-02 17:26:52 -07:00
Sander van Harmelen 178ec8f7b4 Remove support for the -module-depth flag
# Conflicts:
#	backend/backend.go
2018-11-02 18:44:04 +01:00
cgriggs01 06a74a2dac fixit 2018-10-31 14:33:22 -07:00
cgriggs01 56a16e57a9 another provider and edit 2018-10-31 14:25:30 -07:00
cgriggs01 46c36b5e72 adding two community 2018-10-31 13:53:22 -07:00
Nick Fagerlund ab88f8ca0f
website: Update and link the page about remote backend operations (#19203) 2018-10-29 11:00:24 -07:00
Kristin Laemmert 5fa624c55e website: update terraform_remote_state syntax in backend docs 2018-10-29 09:22:21 -07:00
Radek Simko b54cc1d95f
Merge pull request #19170 from mikesir87/patch-1
Small grammar fix for lifecycle docs
2018-10-25 08:51:57 +02:00
Radek Simko b1abb3de8e
Merge pull request #19169 from hgontijo/patch-1
Fix typo.
2018-10-25 08:49:27 +02:00
Alisdair McDiarmid 2e480bb17c Add links to new screenshots (#19135)
Screenshots for:

- GitHub Pull Request with resource changes in the TFE status update
- TFE plan-only run for a Pull Request
2018-10-24 15:20:43 -07:00
Michael Irwin 47047aa637
Small grammar fix for lifecycle docs 2018-10-22 22:34:11 -04:00
Henrique M. Gontijo 642cdd331f
Fix typo. 2018-10-22 14:26:33 -07:00
Chris Griggs c98f2087fb
Merge pull request #19105 from cgriggs01/cgriggs01-linode-2
[Website] Linode documentation links
2018-10-18 11:12:19 -07:00
cgriggs01 a48dda2acc add linode documentation links 2018-10-17 14:20:39 -07:00
Radek Simko edaa4bbc82
lang: Add fileexists function 2018-10-17 10:18:07 +01:00
Martin Atkins 0b710792a8 website: "functions" layout "Terraform Language" is back
In the heirarchy, both "Terraform Language" and "Functions" are "up" from
the individual function reference pages, so we'll class them as such to
use the back-facing arrow instead of the forward-facing arrow.
2018-10-16 18:49:20 -07:00
Martin Atkins 1360948a41 website: document the functions "keys", "lookup", and "values"
I missed these on the first pass because in the legacy function table they
are, for some reason, added in a different place than the others.
2018-10-16 18:49:20 -07:00
Kristin Laemmert b6d3d69d3a port cidr functions 2018-10-16 18:49:20 -07:00
Kristin Laemmert 602b59cdc4 porting functions 2018-10-16 18:49:20 -07:00
Kristin Laemmert 9aa9b18658 porting crypto functions 2018-10-16 18:49:20 -07:00
Kristin Laemmert 1a5299efcb porting encoding functions 2018-10-16 18:49:20 -07:00
Martin Atkins 60ad24229f website: Link from Configuration index to Resource page
Since the index page is long, by the time the reader reaches the end of
it the relevant portion if the navigation is unlikely to be visible. To
compensate for this, we'll link to the first sub-section and thus give
the user an opportunity to notice the navigation structure for the rest
of the pages.
2018-10-16 18:48:28 -07:00
Martin Atkins b2e8987f7e website: Fix references to the now-defunct "Interpolation" page
This has been replaced with an "Expressions" page.

Also includes a number of changes to Markdown style to conform to our
usual conventions, applied automatically by my editor while making these
changes.
2018-10-16 18:48:28 -07:00
Martin Atkins 6549f24d88 website: Remove the "interpolation" docs page
This has now been superseded by the expressions.html.md file in the same
directory. As part of deploying this, the former URL for this page must
be redirected to the expressions page to retain a target for any
existing links on third-party sites.
2018-10-16 18:48:28 -07:00
Martin Atkins c060ecd0a5 website: Document the JSON configuration syntax 2018-10-16 18:47:33 -07:00
Martin Atkins a6749f9efc website: Expand documentation of Override Files
This kinda-weird feature was previously quite severely under-documented in
terms of exactly what effect it has. This new documentation for it first
attempts to frame it as something that should be rarely used, and then
explains in more detail exactly how it behaves for different top-level
block types within the configuration.
2018-10-16 18:47:33 -07:00
Martin Atkins b3239e8f1f website: Update the "Terraform Settings" page for new style
As part of revamping the "Configuration" portion of the website for the
v0.12 release, here we update the Terraform Settings page to use a similar
"guide-like" writing style as the other updated pages in this section.
2018-10-16 18:47:33 -07:00
Martin Atkins d72d9fde16 website: Document the index and attribute syntaxes 2018-10-16 18:47:33 -07:00
Martin Atkins 83a16e3deb website: Docs for all of the IP address calculation functions 2018-10-16 18:47:33 -07:00
Martin Atkins 7cb1de9f30 website: Docs for all of the hash/crypto functions 2018-10-16 18:47:33 -07:00
Martin Atkins 46f8208727 website: Docs for all of the Date and Time functions 2018-10-16 18:47:33 -07:00
Martin Atkins a35c0f3cbf website: Docs for all of the "filesystem" functions 2018-10-16 18:47:33 -07:00
Martin Atkins a491013054 website: Docs for all of the "encoding" functions 2018-10-16 18:47:33 -07:00
Martin Atkins e7d71995f6 website: Document the remaining "collection" functions
This also renames some of the existing function pages whose source
filenames were not matching the usual naming scheme (.html.md).
2018-10-16 18:47:33 -07:00
Martin Atkins c8da3e568f website: Add remaining functions to the functions section sidebar
These links don't lead anywhere yet.
2018-10-16 18:47:33 -07:00
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
Luke Kysow 3eafbf3861 Add link to Terraform's GitHub Actions docs (#19091) 2018-10-16 10:36:04 -07:00
Sander van Harmelen 775f8a9626 Make sure we always set a custom header
This is for TFE to recognize were the calls come from.
2018-10-15 20:33:42 +02:00
cgriggs01 87191d46cd add helm links 2018-10-09 16:57:54 -07:00
cgriggs01 24c360ec8d add nutanix links 2018-10-09 14:29:52 -07:00
Chris Griggs 9463b010ed
Spelling fix! 2018-10-04 10:38:29 -07:00