Skip to content

Commit

Permalink
update terraform install guide about bsl license
Browse files Browse the repository at this point in the history
  • Loading branch information
tongueroo committed Aug 23, 2023
1 parent b17de51 commit f21fe17
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 14 deletions.
4 changes: 2 additions & 2 deletions _docs/ci/azure/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ We then use two `script` steps to run bash scripts. The first script calls the s
# install terraform
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
export PATH="$HOME/.tfenv/bin:$PATH"
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5
terraform --version

# install terraspace
Expand Down
4 changes: 2 additions & 2 deletions _docs/ci/bitbucket/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ A good bit of the logic is in the `.bitbucket/bin` supporting files. The install
# install terraform
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
export PATH="$HOME/.tfenv/bin:$PATH"
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5
terraform --version
# install terraspace
bundle
Expand Down
4 changes: 2 additions & 2 deletions _docs/ci/circleci/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ The first part installs terraform and terraspace with a supporting script that l
# install terraform
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
export PATH="$HOME/.tfenv/bin:$PATH"
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5

# install terraspace
bundle install
Expand Down
4 changes: 2 additions & 2 deletions _docs/ci/github/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ The install script installs Terraform, Terraspace, and infracost. It looks somet
# install terraform
brew install tfenv
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5
terraform --version
# install terraspace
Expand Down
4 changes: 2 additions & 2 deletions _docs/ci/gitlab/push.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ before_script: |
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
export PATH="$HOME/.tfenv/bin:$PATH"
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5
terraform --version
# install terraspace
bundle
Expand Down
12 changes: 8 additions & 4 deletions _docs/install/terraform.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@ This pages shows you different ways to install Terraform.

## Install via tfenv

The recommended way to install terraform is with tfenv. This allows you to chose and switch versions of Terraform easily. Here are the commands:
The recommended way to install terraform is with tfenv. This allows you to choose and switch versions of Terraform easily. Here are the commands:

git clone https://github.com/tfutils/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
export PATH="$HOME/.tfenv/bin:$PATH"
tfenv install latest
tfenv use latest
tfenv install 1.5.5 # do not use later than 1.5.5
tfenv use 1.5.5

## Install via Terraform Download

The [Terraform installation instructions](https://www.terraform.io/downloads.html) provides steps to download and install terraform for your system.
The [Terraform installation instructions](https://www.terraform.io/downloads.html) provide steps to download and install terraform for your system.

## Terraform BSL License Change

{% include terraform/license.md %}
5 changes: 5 additions & 0 deletions _docs/terraform/license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: "Terraform BSL License Change"
---

{% include terraform/license.md %}
1 change: 1 addition & 0 deletions _includes/sidebar.html
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,7 @@
<li><a href="{% link _docs/conduct.md %}">Conduct</a></li>
</ul>
</li>
<li><a href="{% link _docs/terraform/license.md %}">Terraform License</a></li>
<li><a href="{% link reference.md %}">CLI Reference</a></li>
</ul>
</div>
Expand Down
13 changes: 13 additions & 0 deletions _includes/terraform/license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
The new [Terraform BSL license announcement](https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license) on August 10, 2023 restricts usage of future terraform versions from being used with offerings Hashicorp deems competitive to their own solutions. Here's the [Terraform license](https://github.com/hashicorp/terraform/blob/main/LICENSE). Terraform 1.5.5 and below are unaffected.

To address this, terraspace errs on the side of [prudence](https://community.boltops.com/t/future-of-terraspace-with-the-terraform-bsl-license-change/1080).

1. We're telling users to use Terraform 1.5.5 and below with Terraspace.
2. The Terraspace framework CLI checks on the client side and only allows Terraform 1.5.5 and below usage by default. You can bypass the check if your usage is acceptable with the BSL, but you must explicitly do so.
3. For [Terraspace Cloud](https://app.terraspace.cloud/), you cannot use the newer Terraform versions. Whether or not you bypass the check, Terraspace Cloud does not allow the use of any Terraform versions greater than 1.5.5. The API will deny requests and prevent data from saving on the Cloud backend side entirely.

You have **full** control over the Terraform installation since `terraspace` and `terraform` run entirely from your machine. It's just a matter of installing the Terraform version that Hashicorp considers acceptable for your use case.

There's an [opentf manifesto](https://opentf.org/) that will likely result in a Terraform fork. We recommend using that fork once it's available.

If you are within acceptable usage, you can bypass the check with `TS_VERSION_CHECK=0`. However, Terraspace will develop and test against Terraform 1.5.5 and below and future Terraform forks only.

0 comments on commit f21fe17

Please sign in to comment.