Detect, track and alert on infrastructure drift
 
 
 
 
Go to file
GeraldC 184b6f3956
Update README.md
minor typo
2020-12-14 11:40:20 +01:00
.circleci 🍾 Initial release 2020-12-09 16:35:26 +01:00
.github 🍾 Initial release 2020-12-09 16:35:26 +01:00
assets 🍾 Initial release 2020-12-09 16:35:26 +01:00
bin 🍾 Initial release 2020-12-09 16:35:26 +01:00
build 🍾 Initial release 2020-12-09 16:35:26 +01:00
doc Update README.md 2020-12-14 11:40:20 +01:00
logger 🍾 Initial release 2020-12-09 16:35:26 +01:00
mocks 🍾 Initial release 2020-12-09 16:35:26 +01:00
pkg move deprecated version out of provider 2020-12-14 11:03:42 +01:00
scripts 🍾 Initial release 2020-12-09 16:35:26 +01:00
test allow provider version upgrades 2020-12-14 11:04:04 +01:00
.editorconfig 🍾 Initial release 2020-12-09 16:35:26 +01:00
.gitignore 🍾 Initial release 2020-12-09 16:35:26 +01:00
.go-version 🍾 Initial release 2020-12-09 16:35:26 +01:00
LICENSE.md 🍾 Initial release 2020-12-09 16:35:26 +01:00
Makefile 🍾 Initial release 2020-12-09 16:35:26 +01:00
README.md fix minor typos 2020-12-09 17:20:30 +01:00
codecov.yml 🍾 Initial release 2020-12-09 16:35:26 +01:00
go.mod 🍾 Initial release 2020-12-09 16:35:26 +01:00
go.sum 🍾 Initial release 2020-12-09 16:35:26 +01:00
main.go 🍾 Initial release 2020-12-09 16:35:26 +01:00

README.md

Driftctl

Measures infrastructure as code coverage, and tracks infrastructure drift.
⚠️ This tool is still in beta state and will evolve in the future with potential breaking changes ⚠️

Why ?

Infrastructure as code is awesome, but there are too many moving parts: codebase, state file, actual cloud state. Things tend to drift.

Drift can have multiple causes: from developers creating or updating infrastructure through the web console without telling anyone, to uncontrolled updates on the cloud provider side. Handling infrastructure drift vs the codebase can be challenging.

You can't efficiently improve what you don't track. We track coverage for unit tests, why not infrastructure as code coverage?

driftctl tracks how well your IaC codebase covers your cloud configuration. driftctl warns you about drift.

Features

  • Scan cloud provider and map resources with IaC code
  • Analyze diff, and warn about drift and unwanted unmanaged resources
  • Allow users to ignore resources
  • Multiple output formats

Getting started

Installation

driftctl is available on Linux, macOS and Windows.

Binaries are available in the release page.

Manual

Linux
# x64
curl https://github.com/cloudskiff/driftctl/releases/latest/download/driftctl_linux_amd64 | sudo tee /usr/local/bin/driftctl
# x86
curl https://github.com/cloudskiff/driftctl/releases/latest/download/driftctl_linux_386 | sudo tee /usr/local/bin/driftctl
macOS
# x64
curl https://github.com/cloudskiff/driftctl/releases/latest/download/driftctl_darwin_amd64 | sudo tee /usr/local/bin/driftctl
Windows
# x64
curl https://github.com/cloudskiff/driftctl/releases/latest/download/driftctl_windows_amd64.exe -o driftctl.exe
# x86
curl https://github.com/cloudskiff/driftctl/releases/latest/download/driftctl_windows_386.exe -o driftctl.exe

Run

Be sure to have configured your AWS credentials.

You will need to assign proper permissions to allow driftctl to scan your account.

# With a local state
$ driftctl scan
# Same as
$ driftctl scan --from tfstate://terraform.tfstate

# With state stored on a s3 backend
$ driftctl scan --from tfstate+s3://my-bucket/path/to/state.tfstate

Documentation & support

Contribute

To learn more about compiling driftctl and contributing, please refer to the contribution guidelines and contributing guide for technical details.