v0.5.0
v0.5.0
Description
This release has two big features: New Status Checks and Terraform Enterprise
Integration.
New Status Checks:
The new status checks split the old status check into plan
and apply
phases.
Each check now tracks the status of each project modified in the pull request.
For example if two projects are modified, the plan
check might read:
2/2 projects planned successfully.
And the apply
check might read:
0/2 projects applied successfully.
Users can now use their Git host's settings to require these checks pass
before a pull request is merged and be confident that all changes have been
applied (for example).
Terraform Enterprise Integration:
Atlantis now integrates with the Terraform Enterprise (TFE)
via the remote backend.
Atlantis will run terraform
commands as usual, however those commands will
actually be executed remotely in Terraform Enterprise.
Using Atlantis with Terraform Enterprise gives you access to TFE features like:
- Real-time streaming output
- Ability to cancel in-progress commands
- Secret variables
- Sentinel
Without having to change your pull request workflow.
Diff: v0.4.15...v0.5.0
Features
- Split single status check into one for
plan
and one forapply
(see above). - Support using Atlantis with Terraform Enterprise via
remote operations (see above). - Add
USER_NAME
environment variable for custom steps to use. (#489) - Support Bitbucket Cloud's upcoming API deprecations. (#502)
- Support Bitbucket Server hosted at a basepath, ex.
bitbucket.mycompany.com/pathprefix
(Fixes #508)
Bugfixes
- Allow Bitbucket Server diagnostics checks. (Fixes #474)
- Fix automerge for Bitbucket Server. (Fixes #479)
- Run
terraform init
with-upgrade
. (Fixes #443) - If a pull request is deleted in Bitbucket Server, delete locks. (Fixes #498)
- Support directories with spaces, ex
atlantis plan -d 'dir with spaces'
. (Fixes #423) - Ignore Terragrunt cache directories that were causing duplicate applies. (Fixes #487)
- Fix
atlantis testdrive
for latest version of ngrok.
Backwards Incompatibilities / Notes:
-
New Status Checks - If you have settings in your Git host that require the Atlantis commit status
check to be in a certain condition, you will need to modify that setting as follows:Previously, Atlantis set a single check with the name
Atlantis
. Now there are
two checks with the namesplan/atlantis
andapply/atlantis
. If you had
previously required theAtlantis
check to pass, you should now require both
theplan/atlantis
andapply/atlantis
checks to pass.The behaviour has also changed. Previously, the single Atlantis check
would represent the status of the last
run command. For example, if I ranatlantis plan
and it failed, the check
would be in a Failed state. If I ranatlantis apply -p project1
and it succeeded,
then the check would be in a Success state, regardless of the status of other projects
in the pull request.Now, each check represents the plan/apply status of all projects modified in
the pull request. For example, say I open up a pull request that modifies
two projects, one in directoryproj1
and the other inproj2
. If autoplanning
is enabled, and both plans succeed, then there will be a single status check:plan/atlantis - 2/2 projects planned successfully
(success)
If I run
atlantis apply -d proj1
, then Atlantis will set a pending apply check:plan/atlantis - 2/2 projects planned successfully
(success)apply/atlantis - 1/2 projects applied successfully
(pending)
If I apply the final project with
atlantis apply -d proj2
, then my checks
will look like:plan/atlantis - 2/2 projects planned successfully
(success)apply/atlantis - 2/2 projects applied successfully
(success)
-
terraform init
is now run with-upgrade=true
. Previously, it used Terraform's
default setting which wasfalse
.This means that
terraform
will always update to the latest version of plugins
and modules. For example, if you're using a module source ofsource = "git::https://example.com/vpc.git?ref=master"
then
terraform init
will now always use the version onmaster
whereas
previously, if you had already runatlantis plan
beforemaster
was updated,
a newatlantis plan
wouldn't pull the latest changes and would just use
the cached version.This is unlikely to cause any issues because most users already expected Atlantis
to use the most up-to-date version of modules/plugins within the set constraints.