Commit Graph

53 Commits

Author SHA1 Message Date
Petros Kolyvas 20a5db1c86
Website: 0.14 Upgrade guide additions (#27112)
* Update 0-14.html.markdown

Spelling again. Thanks @pselle
2020-12-03 14:21:31 -04:00
Nick Fagerlund 0c0749edcf
website: Fix several broken links (#27091) 2020-12-03 13:54:38 -04:00
Nick Fagerlund 596e529602 website: Adopt a ton of pages into the "language" layout
As of this commit, that layout doesn't exist yet, but I'm isolating the one-line
changes to their own commit to try and keep your eyes from glazing over.
2020-10-26 18:19:26 -07:00
Pam Selle bd70bc63eb Add provider sensitivity propagation experiment
Rolls back marking attributes providers mark as sensitive
to an `experiment` and adds associated docs and adjustments
to the upgrade guide.
2020-10-26 15:05:22 -04:00
Pam Selle 7924117acc
Add note to upgrade guide about provider sensitivity (#26643)
* Add note to upgrade guide about provider sensitivity

Now that sensitivity follows attributes providers mark
as sensitive, add this note to the upgrade guide.

Co-authored-by: Alisdair McDiarmid <alisdair@users.noreply.github.com>
2020-10-20 13:13:51 -04:00
Martin Atkins e70ab09bf1 command: new cache directory .terraform/providers for providers
Terraform v0.10 introduced .terraform/plugins as a cache directory for
automatically-installed plugins, Terraform v0.13 later reorganized the
directory structure inside but retained its purpose as a cache.

The local cache used to also serve as a record of specifically which
packages were selected in a particular working directory, with the intent
that a second run of "terraform init" would always select the same
packages again. That meant that in some sense it behaved a bit like a
local filesystem mirror directory, even though that wasn't its intended
purpose.

Due to some unfortunate miscommunications, somewhere a long the line we
published some documentation that _recommended_ using the cache directory
as if it were a filesystem mirror directory when working with Terraform
Cloud. That was really only working as an accident of implementation
details, and Terraform v0.14 is now going to break that because the source
of record for the currently-selected provider versions is now the
public-facing dependency lock file rather than the contents of an existing
local cache directory on disk.

After some consideration of how to move forward here, this commit
implements a compromise that tries to avoid silently doing anything
surprising while still giving useful guidance to folks who were previously
using the unsupported strategy. Specifically:

- The local cache directory will now be .terraform/providers rather than
  .terraform/plugins, because .terraform/plugins is effectively "poisoned"
  by the incorrect usage that we can't reliably distinguish from prior
  version correct usage.

- The .terraform/plugins directory is now the "legacy cache directory". It
  is intentionally _not_ now a filesystem mirror directory, because that
  would risk incorrectly interpreting providers automatically installed
  by Terraform v0.13 as if they were a local mirror, and thus upgrades
  and checksum fetches from the origin registry would be blocked.

- Because of the previous two points, someone who _was_ trying to use the
  legacy cache directory as a filesystem mirror would see installation
  fail for any providers they manually added to the legacy directory.

  To avoid leaving that user stumped as to what went wrong, there's a
  heuristic for the case where a non-official provider fails installation
  and yet we can see it in the legacy cache directory. If that heuristic
  matches then we'll produce a warning message hinting to move the
  provider under the terraform.d/plugins directory, which is a _correct_
  location for "bundled" provider plugins that belong only to a single
  configuration (as opposed to being installed globally on a system).

This does unfortunately mean that anyone who was following the
incorrectly-documented pattern will now encounter an error (and the
aforementioned warning hint) after upgrading to Terraform v0.14. This
seems like the safest compromise because Terraform can't automatically
infer the intent of files it finds in .terraform/plugins in order to
decide automatically how best to handle them.

The internals of the .terraform directory are always considered
implementation detail for a particular Terraform version and so switching
to a new directory for the _actual_ cache directory fits within our usual
set of guarantees, though it's definitely non-ideal in isolation but okay
when taken in the broader context of this problem, where the alternative
would be silent misbehavior when upgrading.
2020-10-14 07:53:41 -07:00
Martin Atkins e1aff2bab0 website: First draft of v0.14 upgrade guide
The upgrade requirements for this release are considerably more modest
than for Terraform v0.13, so this time we just have some notes about a
few changes in behavior that may be impactful to some users.

This first pass is intended to be included as part of a forthcoming beta
testers' guide as we begin the v0.14 beta testing period. We will make
further changes to this upgrade guide based on feedback from those who
participate in the beta process.

Note that this upgrade guide is not intended as release marketing material
and so its presentation is focused on addressing concerns users might
encounter while upgrading. We'll share highlights from the release in
other contexts, such as the changelog and in the product blog.
2020-10-12 15:29:42 -07:00
Nick Fagerlund 26f786959b
website: Update all Learn crosslinks (#26442)
* website: Update all Learn crosslinks

The URL structure on Learn recently changed, so it's time to update some URLs.

Co-authored-by: Tu Nguyen <im2nguyen@users.noreply.github.com>
2020-10-02 11:02:59 -07:00
Alisdair McDiarmid f795083225 website: Update 0.13 upgrade for legacy providers
The error diagnostic shown when legacy state contains resources from
in-house providers has changed, so update references to it in the 0.13
upgrade guide.
2020-09-01 14:02:19 -04:00
Kristin Laemmert 4569a37de4
website/docs: provider source related clarifications 2020-08-26 13:50:07 -04:00
Martin Atkins bcec7f5576 website: v0.13 upgrade guide about "terraform apply" during upgrading
Part of the upgrade process happens in the first "terraform apply" after
adding explicit source addresses in the configuration. Previously we just
left that implied under the assumption that everyone would run
"terraform apply" shortly after anyway, but there is a specific tricky
situation where the first change after upgrading is to remove a resource
from the configuration, leaving Terraform unable to complete the upgrade.

Because of that, we'll now explicitly direct users to run
"terraform apply" after upgrading. Along with that, there's a reminder to
make sure that "terraform plan" indicates no changes before upgrading, so
that completing the upgrade doesn't involve also applying changes to
remote objects.
2020-07-14 09:34:17 -07:00
DouglasFarr 81b83763e9
website/docs: Typo fix to v11 upgrade guide (#25357)
with* correction.
2020-06-26 11:38:11 -04:00
Martin Atkins f131f182d4
Update 0-13.html.markdown 2020-06-25 10:17:16 -07:00
Martin Atkins 02b130cd59 website: Terraform v0.13 upgrade guide 2020-06-25 09:24:41 -07:00
Nick Fagerlund a797152648 website: Remove extra copy of "Running Terraform in Automation", update links
This document now lives at:

- https://learn.hashicorp.com/terraform/development/running-terraform-in-automation

...and terraform.io has been redirecting to there for quite a while. This commit
removes the extra copy so that the text of the two versions doesn't drift, and
updates existing links to point to the new location.
2020-02-05 14:58:30 -08:00
Martin Atkins 7cf782c1bf states/statefile: Better error messages for some unsupported v3 cases
There are a few situations that we've seen arise quite commonly for folks
upgrading from Terraform 0.11 to 0.12. These particular problems are not
things that Terraform 0.12 can fix automatically during upgrading, but
we can at least give some better feedback to users that they ought to be
addressed _before_ upgrading.

The provider address problem is already detected and flagged by the
"terraform 0.11checklist" command that folks should run as part of their
upgrade process, but the module address problem is not something we
noticed was lacking validation in 0.11 and so the checklist tool doesn't
cover it. Due to the lack of coverage in the checklist tool, this commit
also includes an additional section in the upgrade guide that mentions
the problem and gives instructions on how to address it.
2019-11-21 09:18:49 -08:00
Nick Fagerlund 3aa909ac6e website: Update URLs and name references for Terraform Cloud rebrand
The Terraform Enterprise brand has now been split into two parts:

- Terraform Cloud is the application that helps teams use Terraform together,
  with remote state storage, a shared run environment, etc.
- Terraform Enterprise is the on-premise distribution that lets enterprises run
  a private instance of the Terraform Cloud application.

The former TFE docs have been split accordingly.
2019-08-16 15:55:29 -07:00
Dan LaMotte 27ecace1a1 Properly end code block in upgrade docs
The unterminated code block effectively breaks rendering in the latter half of this section https://www.terraform.io/upgrade-guides/0-12.html#equality-operations-must-be-valid-on-value-and-type
2019-08-08 16:03:20 -05:00
Pam Selle 0a893f8c53 Update to equality vs comparison 2019-07-30 10:51:14 -04:00
Pam Selle f184d2c62a Docs to assist with #21978 2019-07-26 16:14:23 -04:00
Yuri Astrakhan 0bd29ce194 clarify config block in terraform_remote_state
This seems to be a common mistake - saw it in StackOverflow
and in several issues.
2019-07-15 13:05:45 +02:00
petems 239c84ef4b Minor spelling fixes
`docker run    -v $(pwd):/scripts    --workdir=/scripts    nickg/misspell:latest    misspell -w -source=text website/`
2019-06-13 15:36:14 +01:00
Joe Tavin 2c176fdf4b website/0.12 upgrade: Fix typo (#21426) 2019-05-24 10:06:01 -04:00
Chris Marchesi 340aa7c598
website: add Sentinel 0.12 upgrade guide details
This adds details for using Sentinel in Terraform 0.12. It largely
links to the corresponding guide in the Terraform Enterprise
documentation.
2019-05-22 09:58:18 -07:00
Martin Atkins fe8c380fe1 website: Remove the Sentinel section from 0.12 upgrade guide
A longer-form guide will follow in the Sentinel section of the Terraform
Enterprise documentation, once it's ready. For now, this section isn't
saying anything useful since it was always just a stub for a guide we
planned to write later.
2019-05-20 14:16:56 -07:00
Martin Atkins 32d19b9574 website: 0.12 upgrade guide about variable type constraints
The upgrade tool is assuming that a type of "list" means list(string) and
a type of "map" means map(string), because that was what we documented
those as meaning.

In practice, Terraform 0.11 was lacking some validation which allowed
more complex nested structures in some cases even though they were pretty
inconvenient to use due to other language limitations.

The upgrade tool doesn't have enough context to make a reliable decision
on this, so instead we'll rely on the upgrade guide for this. We don't
need a TF-UPGRADE-TODO comment in this case because we reserve those for
things where a subsequent operation might cause the configuration to be
misinterpred, rather than just causing an error. Instead, we'll show an
example of the comment in the upgrade guide so the reader can easily
match it, and give some advice in the guide on how to address it.
2019-05-16 07:29:42 -07:00
Martin Atkins c6e32f148d website: v0.12 upgrade guide revisions preparing for final release
Our original upgrade guide was drafted while some things were still in
flux and not all of our upgrade tooling was in place yet.

This redraft now attempts to be more specific and direct, showing exact
commands to run and (where relevant) exact error messages that Terraform
might return.

I also took this opportunity for some general copy-editing, though we'll
probably want to do one more pass of that alone (without changing any
content at the same time) before final release.

This new content presumes the existence of a Terraform v0.11.14 release,
which isn't published yet at the time of writing but should be published
before v0.12.0 final, once we've done final verification and review of
the upgrade path including it.
2019-05-09 12:20:24 -07:00
Kristin Laemmert b66d03bba7
Mildwonkey/upgrade doc remote backend (#21201)
* website/upgrade-guides: init -reconfigure is required with remote backend

* build: add a real and useful version of `.tfdev`
2019-05-03 15:34:54 -04:00
Martin Atkins 2238fbda1b website: v0.12 upgrade guide about list variables and brackets 2019-04-17 11:16:16 -07:00
Martin Atkins c94f8f9067 website: Document division behavior change in v0.12 upgrade guide
The division operator now always performs floating point division, whereas
before it would choose between float and int division based on the types
of its arguments.

We have a specific error message for when a fractional number is used as
an index in HCL, but this additional upgrade guidance provides a specific
solution to the problem: the floor function.

Sadly we don't have enough context in the current design of the upgrade
tool to make this fix automatic. With some refactoring it may be possible
to apply the fix automatically within list brackets, but since that is
a relatively complex change we'll first try this manual solution prompted
by an error message, because in practice so far we've seen this reported
only in the context of list indexing and our error check will catch that
and make the user aware of the need for a fix there.
2019-04-16 10:03:37 -07:00
Nick Fagerlund cb4f3004da website: Fix several spelling errors 2019-03-21 18:12:11 -07:00
Nick Fagerlund 34e90ff3c1 website: Fix broken links to modules/usage and modules/create
As part of this, I'm copying the entire text of the 0.12
docs/configuration/modules.html page into docs/configuration-0-11/modules.html —
some of the 0.11 pages needed to be able to link to the moved content, I
didn't want to jump versions jarringly, and a close reading didn't reveal
anything in there that's inaccurate for 0.11.
2019-03-14 10:38:52 +00:00
Kristin Laemmert 21f6e3dffd
Mildwonkey/012 docs updated (#20542)
* docs: update plan command documentation. Fixes #19235

* docs: added a missing reserved variable name. Fixes #19159.

* website: add note that resource names cannot start with a number

* website: add some notes to the 0.12 upgrade guide
2019-03-01 12:30:51 -08:00
Martin Atkins 08f0f60908 website: Temporary link to the beta1 announcement from v0.12 guide
The announcement post contains the information about the temporary
situation where not all of the providers are compatible yet. Linking there
rather than duplicating the information in the upgrade guide means we'll
be able to update in one place as the situation changes.
2019-02-28 16:21:48 -08:00
Martin Atkins da4862e3f7 website: Revamped upgrade guide for v0.12.0-beta1
The upgrade guide had its last major upgrade while we were preparing for
the alpha releases. Now that the upgrade tool is more complete we can
describe the required changes in terms of that tool, and also add
additional information about provider upgrades.

We will revise this at least one more time before v0.12.0 final, but this
is an interim copy of the upgrade guide intended to help those who are
testing the beta releases.
2019-02-26 10:27:51 -08:00
Radek Simko 5ffb106783
docs/upgrade-guide: Document changes in remote state referencing 2019-02-08 11:14:16 +00:00
Nick Fagerlund 0fddabf972 website: Reorganize nav sidebars to improve jumps between sections 2019-01-31 16:18:23 -08:00
Alex Gottschalk 029f54792f
remove approximate release date
"Later this summer" is long-gone.
2018-12-05 12:19:08 -08:00
Martin Atkins 9441e78fb9 website: v0.12 preview upgrade guide tweaks
Based on some feedback on the initial draft, make some minor updates to
how information is presented in the preview upgrade guide for v0.12.

This also includes some minor copy-editing work to try to make the "voice"
more consistent between different sections of the guide.
2018-06-29 11:17:17 -07:00
kfishner 6deec5d7bf add 0.12 guide 2018-06-25 17:26:45 -07:00
Thomas Kula e2373c8073 website: Using demo.consul.io requires scheme = "https"
Following the examples as they were previously would cause errors
accessing demo.consul.io. Now we consistently set the scheme to https for
all examples that use demo.consul.io.

This also includes some other updates to the URLs, since the Consul demo
has been rebuilt with a different based configuration, and some general
formatting and copyediting changes in the Consul example.
2018-06-22 10:18:27 -07:00
James Bardin 1940e213a0 reword inheritance upgrade guide 2017-11-20 09:22:26 -05: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 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
Andy Brody 4b1c7a1d9b website: Fix broken link in 0.10 upgrade guide 2017-11-05 18:21:49 -08:00
Martin Atkins 56a9b1309a website: initial draft of 0.11 upgrade guide
This will be revised further as we near the final release. This contains
notes on changes that have already been merged.
2017-11-01 07:22:20 -07:00
Martin Atkins 0543574383 website: update upgrade-guide for plugin filename convention
This changed close to the release of beta1 to use underscores as the
separator and to use a lower-case "v" to avoid any issues on
case-insensitive filesystems.
2017-07-05 17:36:32 -07:00