mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-28 23:58:19 +00:00
replace www.terraform.io doc urls (#2797)
This commit is contained in:
@@ -144,7 +144,7 @@ workflows:
|
||||
```
|
||||
|
||||
### cdktf
|
||||
Here are the requirements to enable [cdktf](https://www.terraform.io/cdktf)
|
||||
Here are the requirements to enable [cdktf](https://developer.hashicorp.com/terraform/cdktf)
|
||||
|
||||
- A custom image with `cdktf` installed
|
||||
- The autoplan file updated to trigger off of `**/cdk.tf.json`
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# FAQ
|
||||
**Q: Does Atlantis affect Terraform [remote state](https://www.terraform.io/docs/state/remote.html)?**
|
||||
**Q: Does Atlantis affect Terraform [remote state](https://developer.hashicorp.com/terraform/language/state/remote)?**
|
||||
|
||||
A: No. Atlantis does not interfere with Terraform remote state in any way. Under the hood, Atlantis is simply executing `terraform plan` and `terraform apply`.
|
||||
|
||||
**Q: How does Atlantis locking interact with Terraform [locking](https://www.terraform.io/docs/state/locking.html)?**
|
||||
**Q: How does Atlantis locking interact with Terraform [locking](https://developer.hashicorp.com/terraform/language/state/locking)?**
|
||||
|
||||
A: Atlantis provides locking of pull requests that prevents concurrent modification of the same infrastructure (Terraform project) whereas Terraform locking only prevents two concurrent `terraform apply`'s from happening.
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ to delete the lock.
|
||||
Once a plan is discarded, you'll need to run `plan` again prior to running `apply` when you go back to that pull request.
|
||||
|
||||
## Relationship to Terraform State Locking
|
||||
Atlantis does not conflict with [Terraform State Locking](https://www.terraform.io/docs/state/locking.html). Under the hood, all
|
||||
Atlantis does not conflict with [Terraform State Locking](https://developer.hashicorp.com/terraform/language/state/locking). Under the hood, all
|
||||
Atlantis is doing is running `terraform plan` and `apply` and so all of the
|
||||
locking built in to those commands by Terraform isn't affected.
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ Atlantis runs `terraform` with the following variables:
|
||||
| `atlantis_repo_name=atlantis` | The name of the repo the pull request is in. |
|
||||
| `atlantis_pull_num=200` | The pull request number. |
|
||||
|
||||
If you want to use `assume_role` with Atlantis and you're also using the [S3 Backend](https://www.terraform.io/docs/backends/types/s3.html),
|
||||
If you want to use `assume_role` with Atlantis and you're also using the [S3 Backend](https://developer.hashicorp.com/terraform/language/settings/backends/s3),
|
||||
make sure to add the `role_arn` option:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -277,7 +277,7 @@ workflow: myworkflow
|
||||
| name | string | none | maybe | Required if there is more than one project with the same `dir` and `workspace`. This project name can be used with the `-p` flag. |
|
||||
| branch | string | none | no | Regex matching projects by the base branch of pull request (the branch the pull request is getting merged into). Only projects that match the PR's branch will be considered. By default, all branches are matched. |
|
||||
| dir | string | none | **yes** | The directory of this project relative to the repo root. For example if the project was under `./project1` then use `project1`. Use `.` to indicate the repo root. |
|
||||
| workspace | string | `"default"` | no | The [Terraform workspace](https://www.terraform.io/docs/state/workspaces.html) for this project. Atlantis will switch to this workplace when planning/applying and will create it if it doesn't exist. |
|
||||
| workspace | string | `"default"` | no | The [Terraform workspace](https://developer.hashicorp.com/terraform/language/state/workspaces) for this project. Atlantis will switch to this workplace when planning/applying and will create it if it doesn't exist. |
|
||||
| execution_order_group | int | `0` | no | Index of execution order group. Projects will be sort by this field before planning/applying. |
|
||||
| delete_source_branch_on_merge | bool | `false` | no | Automatically deletes the source branch on merge. |
|
||||
| repo_locking | bool | `true` | no | Get a repository lock in this project when plan. |
|
||||
|
||||
@@ -59,7 +59,7 @@ With modules, if you want `project1` automatically planned when `module1` is mod
|
||||
you need to create an `atlantis.yaml` file. See [atlantis.yaml Use Cases](repo-level-atlantis-yaml.html#configuring-planning) for more details.
|
||||
|
||||
### Terraform Workspaces
|
||||
*See [Terraform's docs](https://www.terraform.io/docs/state/workspaces.html) if you are unfamiliar with workspaces.*
|
||||
*See [Terraform's docs](https://developer.hashicorp.com/terraform/language/state/workspaces) if you are unfamiliar with workspaces.*
|
||||
|
||||
If you're using Terraform `>= 0.9.0`, Atlantis supports workspaces through an
|
||||
`atlantis.yaml` file that tells Atlantis the names of your workspaces
|
||||
|
||||
@@ -7,7 +7,7 @@ Atlantis could be exploited by
|
||||
* An attacker submitting a pull request that contains a malicious Terraform file that
|
||||
uses a malicious provider or an [`external` data source](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/data_source)
|
||||
that Atlantis then runs `terraform plan` on (which it does automatically unless you've turned off automatic plans).
|
||||
* Running `terraform apply` on a malicious Terraform file with [local-exec](https://www.terraform.io/docs/provisioners/local-exec.html)
|
||||
* Running `terraform apply` on a malicious Terraform file with [local-exec](https://developer.hashicorp.com/terraform/language/resources/provisioners/local-exec)
|
||||
```tf
|
||||
resource "null_resource" "null" {
|
||||
provisioner "local-exec" {
|
||||
@@ -64,7 +64,7 @@ To prevent this, you could:
|
||||
requiring a "thumbs-up" on the PR before allowing the `plan` to continue. Conftest could be of use here.
|
||||
|
||||
### `--var-file-allowlist`
|
||||
The files on your Atlantis install may be accessible as [variable definition files](https://www.terraform.io/language/values/variables#variable-definitions-tfvars-files)
|
||||
The files on your Atlantis install may be accessible as [variable definition files](https://developer.hashicorp.com/terraform/language/values/variables#variable-definitions-tfvars-files)
|
||||
from pull requests by adding
|
||||
`atlantis plan -- -var-file=/path/to/file` comments. To mitigate this security risk, Atlantis has limited such access
|
||||
only to the files allowlisted by the `--var-file-allowlist` flag. If this argument is not provided, it defaults to
|
||||
|
||||
@@ -950,7 +950,7 @@ and set `--autoplan-modules` to `false`.
|
||||
# or
|
||||
ATLANTIS_VAR_FILE_ALLOWLIST='/path/to/tfvars/dir'
|
||||
```
|
||||
Comma-separated list of additional directory paths where [variable definition files](https://www.terraform.io/language/values/variables#variable-definitions-tfvars-files) can be read from.
|
||||
Comma-separated list of additional directory paths where [variable definition files](https://developer.hashicorp.com/terraform/language/values/variables#variable-definitions-tfvars-files) can be read from.
|
||||
The paths in this argument should be absolute paths. Relative paths and globbing are currently not supported.
|
||||
If this argument is not provided, it defaults to Atlantis' data directory, determined by the `--data-dir` argument.
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Read the docs below :point_down: depending on your use-case.
|
||||
|
||||
## Using Atlantis With Free Remote State Storage
|
||||
To use Atlantis with Free Remote State Storage, you need to:
|
||||
1. Migrate your state to Terraform Cloud. See [Migrating State from Local Terraform](https://www.terraform.io/docs/cloud/migrate/index.html)
|
||||
1. Migrate your state to Terraform Cloud. See [Migrating State from Local Terraform](https://developer.hashicorp.com/terraform/cloud-docs/migrate)
|
||||
1. Update any projects that are referencing the state you migrated to use the new location
|
||||
1. [Generate a Terraform Cloud/Enterprise Token](#generating-a-terraform-cloud-enterprise-token)
|
||||
1. [Pass the token to Atlantis](#passing-the-token-to-atlantis)
|
||||
@@ -25,7 +25,7 @@ Cloud.
|
||||
|
||||
## Using Atlantis With Terraform Cloud Remote Operations or Terraform Enterprise
|
||||
Atlantis integrates with the full version of Terraform Cloud and Terraform Enterprise
|
||||
via the [remote backend](https://www.terraform.io/docs/backends/types/remote.html).
|
||||
via the [remote backend](https://developer.hashicorp.com/terraform/language/settings/backends/remote).
|
||||
|
||||
Atlantis will run `terraform` commands as usual, however those commands will
|
||||
actually be executed *remotely* in Terraform Cloud or Terraform Enterprise.
|
||||
@@ -41,7 +41,7 @@ Using Atlantis with Terraform Cloud or Terraform Enterprise gives you access to
|
||||
|
||||
### Getting Started
|
||||
To use Atlantis with Terraform Cloud Remote Operations or Terraform Enterprise, you need to:
|
||||
1. Migrate your state to Terraform Cloud/Enterprise. See [Migrating State from Local Terraform](https://www.terraform.io/docs/cloud/migrate/index.html)
|
||||
1. Migrate your state to Terraform Cloud/Enterprise. See [Migrating State from Local Terraform](https://developer.hashicorp.com/terraform/cloud-docs/migrate)
|
||||
1. Update any projects that are referencing the state you migrated to use the new location
|
||||
1. [Generate a Terraform Cloud/Enterprise Token](#generating-a-terraform-cloud-enterprise-token)
|
||||
1. [Pass the token to Atlantis](#passing-the-token-to-atlantis)
|
||||
|
||||
@@ -42,7 +42,7 @@ atlantis plan -w staging
|
||||
* `-d directory` Which directory to run plan in relative to root of repo. Use `.` for root.
|
||||
* Ex. `atlantis plan -d child/dir`
|
||||
* `-p project` Which project to run plan for. Refers to the name of the project configured in the repo's [`atlantis.yaml` file](repo-level-atlantis-yaml.html). Cannot be used at same time as `-d` or `-w` because the project defines this already.
|
||||
* `-w workspace` Switch to this [Terraform workspace](https://www.terraform.io/docs/state/workspaces.html) before planning. Defaults to `default`. If not using Terraform workspaces you can ignore this.
|
||||
* `-w workspace` Switch to this [Terraform workspace](https://developer.hashicorp.com/terraform/language/state/workspaces) before planning. Defaults to `default`. If not using Terraform workspaces you can ignore this.
|
||||
* `--verbose` Append Atlantis log to comment.
|
||||
|
||||
::: warning NOTE
|
||||
@@ -90,7 +90,7 @@ atlantis apply -w staging
|
||||
### Options
|
||||
* `-d directory` Apply the plan for this directory, relative to root of repo. Use `.` for root.
|
||||
* `-p project` Apply the plan for this project. Refers to the name of the project configured in the repo's [`atlantis.yaml` file](repo-level-atlantis-yaml.html). Cannot be used at same time as `-d` or `-w`.
|
||||
* `-w workspace` Apply the plan for this [Terraform workspace](https://www.terraform.io/docs/state/workspaces.html). If not using Terraform workspaces you can ignore this.
|
||||
* `-w workspace` Apply the plan for this [Terraform workspace](https://developer.hashicorp.com/terraform/language/state/workspaces). If not using Terraform workspaces you can ignore this.
|
||||
* `--auto-merge-disabled` Disable [automerge](automerging.html) for this apply command.
|
||||
* `--verbose` Append Atlantis log to comment.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Steps:
|
||||
|
||||
## Install Terraform
|
||||
`terraform` needs to be in the `$PATH` for Atlantis.
|
||||
Download from [https://www.terraform.io/downloads.html](https://www.terraform.io/downloads.html)
|
||||
Download from [https://developer.hashicorp.com/terraform/downloads](https://developer.hashicorp.com/terraform/downloads)
|
||||
```
|
||||
unzip path/to/terraform_*.zip -d /usr/local/bin
|
||||
```
|
||||
|
||||
@@ -122,7 +122,7 @@ func NewClientWithDefaultVersion(
|
||||
|
||||
localPath, err := exec.LookPath("terraform")
|
||||
if err != nil && defaultVersionStr == "" {
|
||||
return nil, fmt.Errorf("terraform not found in $PATH. Set --%s or download terraform from https://www.terraform.io/downloads.html", defaultVersionFlagName)
|
||||
return nil, fmt.Errorf("terraform not found in $PATH. Set --%s or download terraform from https://developer.hashicorp.com/terraform/downloads", defaultVersionFlagName)
|
||||
}
|
||||
if err == nil {
|
||||
localVersion, err = getVersion(localPath)
|
||||
|
||||
@@ -58,7 +58,7 @@ func TestNewClient_LocalTFOnly(t *testing.T) {
|
||||
fakeBinOut := `Terraform v0.11.10
|
||||
|
||||
Your version of Terraform is out of date! The latest version
|
||||
is 0.11.13. You can update by downloading from www.terraform.io/downloads.html
|
||||
is 0.11.13. You can update by downloading from developer.hashicorp.com/terraform/downloads
|
||||
`
|
||||
tmp, binDir, cacheDir := mkSubDirs(t)
|
||||
projectCmdOutputHandler := jobmocks.NewMockProjectCommandOutputHandler()
|
||||
@@ -93,7 +93,7 @@ func TestNewClient_LocalTFMatchesFlag(t *testing.T) {
|
||||
fakeBinOut := `Terraform v0.11.10
|
||||
|
||||
Your version of Terraform is out of date! The latest version
|
||||
is 0.11.13. You can update by downloading from www.terraform.io/downloads.html
|
||||
is 0.11.13. You can update by downloading from developer.hashicorp.com/terraform/downloads
|
||||
`
|
||||
logger := logging.NewNoopLogger(t)
|
||||
tmp, binDir, cacheDir := mkSubDirs(t)
|
||||
@@ -132,7 +132,7 @@ func TestNewClient_NoTF(t *testing.T) {
|
||||
defer tempSetEnv(t, "PATH", tmp)()
|
||||
|
||||
_, err := terraform.NewClient(logger, binDir, cacheDir, "", "", "", cmd.DefaultTFVersionFlag, cmd.DefaultTFDownloadURL, nil, true, projectCmdOutputHandler)
|
||||
ErrEquals(t, "terraform not found in $PATH. Set --default-tf-version or download terraform from https://www.terraform.io/downloads.html", err)
|
||||
ErrEquals(t, "terraform not found in $PATH. Set --default-tf-version or download terraform from https://developer.hashicorp.com/terraform/downloads", err)
|
||||
}
|
||||
|
||||
// Test that if the default-tf flag is set and that binary is in our PATH
|
||||
|
||||
@@ -78,7 +78,7 @@ In this pull request we will learn how to use Atlantis.
|
||||
$$$
|
||||
atlantis apply
|
||||
$$$
|
||||
**NOTE:** Because this example isn't using [remote state storage](https://www.terraform.io/docs/state/remote.html) the state will be lost once the pull request is merged. To use Atlantis properly, you **must** be using remote state.
|
||||
**NOTE:** Because this example isn't using [remote state storage](https://developer.hashicorp.com/terraform/language/state/remote) the state will be lost once the pull request is merged. To use Atlantis properly, you **must** be using remote state.
|
||||
|
||||
1. Finally, merge the pull request to unlock this directory.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user