Skip to content

Commit bfb6f6c

Browse files
authored
Add Terraform 1.1 upgrade guide (#264)
1 parent ddcc7f4 commit bfb6f6c

File tree

15 files changed

+488
-7
lines changed

15 files changed

+488
-7
lines changed

_docs-sources/guides/stay-up-to-date/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import CardGroup from "/src/components/CardGroup"
1616

1717
<CardGroup cols={1} gap="1rem" stacked equalHeightRows={false} commonCardProps={{padding: "1.25rem"}}>
1818

19+
<Card
20+
title="Update to version 1.1"
21+
href="/guides/stay-up-to-date/terraform/terraform-1.1"
22+
/>
1923
<Card
2024
title="Update to version 1.X"
2125
href="/guides/stay-up-to-date/terraform/terraform-1.x"
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Core Concepts
2+
3+
[Terraform 1.1.0 was released on December 08,
4+
2021](https://www.hashicorp.com/blog/terraform-1-1-improves-refactoring-and-the-cloud-cli-experience).
5+
Some of the major new features in 1.1 include:
6+
7+
- Easier and Safer Refactoring with moved Statements
8+
- An Improved CLI Experience for Terraform Cloud and Enterprise
9+
10+
For more info, check out the for a complete introduction, check out the
11+
[announcement blog
12+
post](https://www.hashicorp.com/blog/terraform-1-1-improves-refactoring-and-the-cloud-cli-experience).
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
sidebar_label: Update to Terraform 1.0
3+
---
4+
5+
# Step 1: update your code to be compatible with Terraform 1.0
6+
7+
If you haven’t already, you need to:
8+
9+
1. Update your code to work with Terraform 1.0. Do NOT skip from, say, 0.11, straight to 1.1. You MUST update to
10+
1.0.0 or above first!
11+
12+
1. If you’re still on Terraform 0.11 or older, see our
13+
[Terraform 0.12 upgrade guide](../../terraform-12/index.md).
14+
15+
2. If you’re still on Terraform 0.12, see our
16+
[Terraform 0.13 upgrade guide](../../terraform-13/index.md).
17+
18+
3. If you’re still on Terraform 0.13, see our
19+
[Terraform 0.14 upgrade guide](../../terraform-14/index.md).
20+
21+
4. If you’re still on Terraform 0.14, see our
22+
[Terraform 0.15 upgrade guide](../../terraform-15/index.md).
23+
24+
5. If you’re still on Terraform 0.15, see our
25+
[Terraform 1.x upgrade guide](../../terraform-1.x/index.md).
26+
27+
2. Update all your Gruntwork modules to the latest versions just _before_ the TF 1.1 versions in the [compatibility
28+
table](/guides/stay-up-to-date/terraform/terraform-1.1/deployment-walkthrough/step-2-update-references-to-the-gruntwork-infrastructure-as-code-library#version-compatibility-table). The upgrade will be much easier and less error prone if you keep the number of version jumps as small
29+
as possible.
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
sidebar_label: Update Gruntwork IaC Module References
3+
---
4+
5+
# Step 2: update references to the Gruntwork Infrastructure as Code Library
6+
7+
In order to take advantage of the Terraform 1.1, you need to update your
8+
references to the Gruntwork Infrastructure as Code Library to use a compatible
9+
version. We (Gruntwork) have gone through all our modules in the library to test
10+
and update the code to be compatible with Terraform 1.1. As a customer, you need
11+
to update to the proper versions of the Gruntwork library to pick up the
12+
fixes/changes that we made to be compatible. Refer to [the "Updating to new versions" section of
13+
"Stay Up to Date"](/guides/working-with-code/versioning#updating-to-new-versions#updating)
14+
for instructions on how to update the versions in your code.
15+
16+
The releases of the modules from the Gruntwork Infrastructure as Code Library that correspond with the
17+
Terraform 1.1 upgrade don't include any backwards incompatible changes.
18+
Therefore, the only changes that you will need to do are version number bumps.
19+
20+
:::caution
21+
22+
Gruntwork follows [semantic
23+
versioning](/guides/working-with-code/versioning#semantic-versioning).
24+
For any pre-1.0 modules, this means that version updates to the minor version
25+
are considered backwards incompatible releases for any version updates prior to
26+
1.0.0 release. Make sure to read the release notes for the relevant modules any
27+
time you are updating minor versions! Note that you will want to read the
28+
release notes for each minor version that is updated (e.g., if you are going
29+
from `v0.5.x` to `v0.9.x`, you will want to read the notes for `v0.6.0`,
30+
`v0.7.0`, `v0.8.0`, and `v0.9.0` to get the full list of backwards incompatible
31+
updates).
32+
33+
:::
34+
35+
The following table provides a summary of all the relevant Gruntwork AWS modules
36+
and the respective versions that are compatible with Terraform 1.1:
37+
38+
## Version Compatibility Table
39+
40+
<table>
41+
<colgroup>
42+
<col />
43+
<col />
44+
</colgroup>
45+
<tbody>
46+
<tr className="odd">
47+
<td><p><strong>Gruntwork Repo</strong></p></td>
48+
<td><p><strong>Minimum version with Terraform 1.1 support</strong></p></td>
49+
</tr>
50+
<tr className="even">
51+
<td><p>Terratest</p></td>
52+
<td><p><strong><a href="https://github.com/gruntwork-io/Terratest/releases/tag/v0.40.0">v0.40.0</a></strong></p></td>
53+
</tr>
54+
<tr className="odd">
55+
<td><p>Terragrunt</p></td>
56+
<td><p><strong><a href="https://github.com/gruntwork-io/Terragrunt/releases/tag/v0.36.0">v0.36.0</a></strong></p></td>
57+
</tr>
58+
<tr className="even">
59+
<td><p>terraform-aws-utilities</p></td>
60+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-utilities/releases/tag/v0.7.0">v0.7.0</a></strong></p></td>
61+
</tr>
62+
<tr className="odd">
63+
<td><p>terraform-aws-vpc</p></td>
64+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-vpc/releases/tag/v0.20.0">v0.20.0</a></strong></p></td>
65+
</tr>
66+
<tr className="even">
67+
<td><p>terraform-aws-asg</p></td>
68+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-asg/releases/tag/v0.17.0">v0.17.0</a></strong></p></td>
69+
</tr>
70+
<tr className="odd">
71+
<td><p>terraform-aws-server</p></td>
72+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-server/releases/tag/v0.14.0">v0.14.0</a></strong></p></td>
73+
</tr>
74+
<tr className="even">
75+
<td><p>terraform-aws-lambda</p></td>
76+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-lambda/releases/tag/v0.17.0">v0.17.0</a></strong></p></td>
77+
</tr>
78+
<tr className="odd">
79+
<td><p>terraform-aws-security</p></td>
80+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-security/releases/tag/v0.62.0">v0.62.0</a></strong></p></td>
81+
</tr>
82+
<tr className="even">
83+
<td><p>terraform-aws-load-balancer</p></td>
84+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-load-balancer/releases/tag/v0.28.0">v0.27.0</a></strong></p></td>
85+
</tr>
86+
<tr className="odd">
87+
<td><p>terraform-aws-data-storage</p></td>
88+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-data-storage/releases/tag/v0.23.0">v0.23.0</a></strong></p></td>
89+
</tr>
90+
<tr className="even">
91+
<td><p>terraform-aws-cache</p></td>
92+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-cache/releases/tag/v0.17.0">v0.17.0</a></strong></p></td>
93+
</tr>
94+
<tr className="odd">
95+
<td><p>terraform-aws-messaging</p></td>
96+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-messaging/releases/tag/v0.8.0">v0.8.0</a></strong></p></td>
97+
</tr>
98+
<tr className="even">
99+
<td><p>terraform-aws-static-assets</p></td>
100+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-static-assets/releases/tag/v0.13.0">v0.13.0</a></strong></p></td>
101+
</tr>
102+
<tr className="odd">
103+
<td><p>terraform-aws-monitoring</p></td>
104+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-monitoring/releases/tag/v0.31.0">v0.31.0</a></strong></p></td>
105+
</tr>
106+
<tr className="even">
107+
<td><p>terraform-aws-openvpn</p></td>
108+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-openvpn/releases/tag/v0.21.0">v0.21.0</a></strong></p></td>
109+
</tr>
110+
<tr className="odd">
111+
<td><p>terraform-aws-ecs</p></td>
112+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-ecs/releases/tag/v0.32.0">v0.32.0</a></strong></p></td>
113+
</tr>
114+
<tr className="even">
115+
<td><p>terraform-aws-ci</p></td>
116+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-ci/releases/tag/v0.44.0">v0.44.0</a></strong></p></td>
117+
</tr>
118+
<tr className="odd">
119+
<td><p>terraform-aws-eks</p></td>
120+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-eks/releases/tag/v0.49.0">v0.49.0</a></strong></p></td>
121+
</tr>
122+
<tr className="odd">
123+
<td><p>terraform-kubernetes-namespace</p></td>
124+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-kubernetes-namespace/releases/tag/v0.5.0">v0.5.0</a></strong></p></td>
125+
</tr>
126+
<tr className="even">
127+
<td><p>terraform-aws-cis-service-catalog</p></td>
128+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-cis-service-catalog/releases/tag/v0.31.0">v0.31.0</a></strong></p></td>
129+
</tr>
130+
<tr className="even">
131+
<td><p>terraform-aws-architecture-catalog</p></td>
132+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-architecture-catalog/releases/tag/v0.0.27">v0.0.27</a></strong></p></td>
133+
</tr>
134+
<tr className="odd">
135+
<td><p>terraform-aws-service-catalog</p></td>
136+
<td><p><strong><a href="https://github.com/gruntwork-io/terraform-aws-service-catalog/releases/tag/v0.77.0">v0.77.0</a></strong></p></td>
137+
</tr>
138+
</tbody>
139+
</table>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Update to Terraform 1.1
2+
3+
This guide will walk you through how to update any code that depends on the
4+
[Gruntwork Infrastructure as Code
5+
Library](https://gruntwork.io/infrastructure-as-code-library/) to [Terraform
6+
1.1](https://www.terraform.io/language/upgrade-guides/1-1). Terraform v1.1 has
7+
no backwards incompatible changes compared with Terraform v1.0.
8+
9+
# What you’ll learn in this guide
10+
11+
This guide consists of two main sections:
12+
13+
<div className="dlist">
14+
15+
#### [Core Concepts](core-concepts.md)
16+
17+
An overview of Terraform 1.1.
18+
19+
#### [Deployment walkthrough](deployment-walkthrough/step-1-update-your-code-to-be-compatible-with-terraform-1-x.md)
20+
21+
The steps you need to take to update your code relying on the Gruntwork Infrastructure as Code library to work with
22+
Terraform 1.1. Includes a
23+
[version compatibility table](deployment-walkthrough/step-2-update-references-to-the-gruntwork-infrastructure-as-code-library.md#version-compatibility-table) you can use as a reference to know which Gruntwork Repo version
24+
tag is compatible with Terraform 1.1.
25+
26+
</div>

_docs-sources/guides/stay-up-to-date/terraform/terraform-1.x/core-concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[Terraform 1.0.0 was released on June 08,
44
2021](https://www.hashicorp.com/blog/announcing-hashicorp-terraform-1-0-general-availability).
5-
Some of the major new features in 0.15 include:
5+
Some of the major new features in 1.0 include:
66

77
- A more stable state file format that will be compatible with Terraform 0.14, 0.15, and, once it’s released, 1.0.
88

_docs-sources/guides/stay-up-to-date/terraform/terraform-1.x/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ An overview of Terraform 1.x.
2323
The steps you need to take to update your code relying on the Gruntwork Infrastructure as Code library to work with
2424
Terraform 1.x. Includes a
2525
[version compatibility table](deployment-walkthrough/step-2-update-references-to-the-gruntwork-infrastructure-as-code-library.md#version-compatibility-table) you can use as a reference to know which Gruntwork Repo version
26-
tag is compatible with Terraform 0.15.
26+
tag is compatible with Terraform 1.x.
2727

2828
</div>

docs/guides/stay-up-to-date/index.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import CardGroup from "/src/components/CardGroup"
1616

1717
<CardGroup cols={1} gap="1rem" stacked equalHeightRows={false} commonCardProps={{padding: "1.25rem"}}>
1818

19+
<Card
20+
title="Update to version 1.1"
21+
href="/guides/stay-up-to-date/terraform/terraform-1.1"
22+
/>
1923
<Card
2024
title="Update to version 1.X"
2125
href="/guides/stay-up-to-date/terraform/terraform-1.x"
@@ -72,5 +76,8 @@ import CardGroup from "/src/components/CardGroup"
7276

7377

7478
<!-- ##DOCS-SOURCER-START
75-
{"sourcePlugin":"local-copier","hash":"22ec7fce1c9d00548395baed02c4b112"}
79+
{
80+
"sourcePlugin": "local-copier",
81+
"hash": "6108197b36342bbac59c8d32d9e3dfbb"
82+
}
7683
##DOCS-SOURCER-END -->
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Core Concepts
2+
3+
[Terraform 1.1.0 was released on December 08,
4+
2021](https://www.hashicorp.com/blog/terraform-1-1-improves-refactoring-and-the-cloud-cli-experience).
5+
Some of the major new features in 1.1 include:
6+
7+
- Easier and Safer Refactoring with moved Statements
8+
- An Improved CLI Experience for Terraform Cloud and Enterprise
9+
10+
For more info, check out the for a complete introduction, check out the
11+
[announcement blog
12+
post](https://www.hashicorp.com/blog/terraform-1-1-improves-refactoring-and-the-cloud-cli-experience).
13+
14+
15+
<!-- ##DOCS-SOURCER-START
16+
{
17+
"sourcePlugin": "local-copier",
18+
"hash": "49defa1819542396936b1f0481640f93"
19+
}
20+
##DOCS-SOURCER-END -->
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
sidebar_label: Update to Terraform 1.0
3+
---
4+
5+
# Step 1: update your code to be compatible with Terraform 1.0
6+
7+
If you haven’t already, you need to:
8+
9+
1. Update your code to work with Terraform 1.0. Do NOT skip from, say, 0.11, straight to 1.1. You MUST update to
10+
1.0.0 or above first!
11+
12+
1. If you’re still on Terraform 0.11 or older, see our
13+
[Terraform 0.12 upgrade guide](../../terraform-12/index.md).
14+
15+
2. If you’re still on Terraform 0.12, see our
16+
[Terraform 0.13 upgrade guide](../../terraform-13/index.md).
17+
18+
3. If you’re still on Terraform 0.13, see our
19+
[Terraform 0.14 upgrade guide](../../terraform-14/index.md).
20+
21+
4. If you’re still on Terraform 0.14, see our
22+
[Terraform 0.15 upgrade guide](../../terraform-15/index.md).
23+
24+
5. If you’re still on Terraform 0.15, see our
25+
[Terraform 1.x upgrade guide](../../terraform-1.x/index.md).
26+
27+
2. Update all your Gruntwork modules to the latest versions just _before_ the TF 1.1 versions in the [compatibility
28+
table](/guides/stay-up-to-date/terraform/terraform-1.1/deployment-walkthrough/step-2-update-references-to-the-gruntwork-infrastructure-as-code-library#version-compatibility-table). The upgrade will be much easier and less error prone if you keep the number of version jumps as small
29+
as possible.
30+
31+
32+
<!-- ##DOCS-SOURCER-START
33+
{
34+
"sourcePlugin": "local-copier",
35+
"hash": "901f5f12726f3f8ebba1f5058c1e957a"
36+
}
37+
##DOCS-SOURCER-END -->

0 commit comments

Comments
 (0)