website: 0.9 upgrade guide
This commit is contained in:
parent
7fa5731ad5
commit
5fcfaffb9b
|
@ -9,6 +9,9 @@
|
||||||
<li<%= sidebar_current(/^upgrade-guides/) %>>
|
<li<%= sidebar_current(/^upgrade-guides/) %>>
|
||||||
<a href="/upgrade-guides/index.html">Upgrade Guides</a>
|
<a href="/upgrade-guides/index.html">Upgrade Guides</a>
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
|
<li<%= sidebar_current("upgrade-guides-0-9") %>>
|
||||||
|
<a href="/upgrade-guides/0-9.html">Upgrading to v0.9</a>
|
||||||
|
</li>
|
||||||
<li<%= sidebar_current("upgrade-guides-0-8") %>>
|
<li<%= sidebar_current("upgrade-guides-0-8") %>>
|
||||||
<a href="/upgrade-guides/0-8.html">Upgrading to v0.8</a>
|
<a href="/upgrade-guides/0-8.html">Upgrading to v0.8</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
layout: "downloads"
|
||||||
|
page_title: "Upgrading to Terraform 0.9"
|
||||||
|
sidebar_current: "upgrade-guides-0-9"
|
||||||
|
description: |-
|
||||||
|
Upgrading to Terraform v0.9
|
||||||
|
---
|
||||||
|
|
||||||
|
# Upgrading to Terraform v0.9
|
||||||
|
|
||||||
|
Terraform v0.9 is a major release and thus includes some changes that
|
||||||
|
you'll need to consider when upgrading. This guide is meant to help with
|
||||||
|
that process.
|
||||||
|
|
||||||
|
The goal of this guide is to cover the most common upgrade concerns and
|
||||||
|
issues that would benefit from more explanation and background. The exhaustive
|
||||||
|
list of changes will always be the
|
||||||
|
[Terraform Changelog](https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md).
|
||||||
|
After reviewing this guide, we recommend reviewing the Changelog to check on
|
||||||
|
specific notes about the resources and providers you use.
|
||||||
|
|
||||||
|
## Remote State
|
||||||
|
|
||||||
|
Remote state has been overhauled to be easier and safer to configure and use.
|
||||||
|
**The new changes are backwards compatible** with existing remote state and
|
||||||
|
you'll be prompted to migrate to the new remote backend system.
|
||||||
|
|
||||||
|
For extra safety when upgrading, you may backup your existing remote state
|
||||||
|
by running `terraform remote pull` with 0.8.x and saving your
|
||||||
|
`.terraform/terraform.tfstate` file somewhere safe. You must do this prior
|
||||||
|
to upgrading to Terraform 0.9.
|
||||||
|
|
||||||
|
The only non-backwards compatible change is in the CLI: the existing
|
||||||
|
`terraform remote config` command is now gone. Remote state is now configured
|
||||||
|
via the "backend" section within the Terraform configuration itself.
|
||||||
|
|
||||||
|
**Example configuring a Consul remote backend:**
|
||||||
|
|
||||||
|
```
|
||||||
|
terraform {
|
||||||
|
backend "consul" {
|
||||||
|
address = "demo.consul.io"
|
||||||
|
datacenter = "nyc3"
|
||||||
|
path = "tfdemo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Action:** Run `terraform init` to migrate your existing remote state.
|
||||||
|
Update any scripts or guides that may have used `terraform remote config`
|
||||||
|
to use the new file-based configuration.
|
||||||
|
|
||||||
|
## State Locking
|
||||||
|
|
||||||
|
Terraform 0.9 now will acquire a lock for your state if your backend
|
||||||
|
supports it. **This change is backwards compatible**, but may require
|
||||||
|
enhanced permissions for the authentication used with your backend.
|
||||||
|
|
||||||
|
Backends that support locking as of the 0.9.0 release are: local files,
|
||||||
|
Amazon S3, HashiCorp Consul, and Terraform Enterprise (atlas). If you don't
|
||||||
|
use these backends, you can ignore this section.
|
||||||
|
|
||||||
|
Specific notes for each affected backend:
|
||||||
|
|
||||||
|
* **Amazon S3**: DynamoDB is used for locking. The AWS access keys
|
||||||
|
must have access to Dynamo. You may disable locking by specifying
|
||||||
|
`lock = false` in your backend configuration.
|
||||||
|
|
||||||
|
* **HashiCorp Consul**: Sessions are used for locking. If an auth token
|
||||||
|
is used it must have permissions to create and destroy sessions. You
|
||||||
|
may disable locking by specifying `lock = false` in your backend
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
**Action:** Update your credentials or configuration if necessary.
|
Loading…
Reference in New Issue