• Stars
    star
    2,712
  • Rank 16,813 (Top 0.4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 2 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Digger is an open source IaC orchestration tool. Digger allows you to run IaC in your existing CI pipeline ⚡️
digger-opensource-gitops-banner

Slack | Docs | Demo Video

CI/CD for Terraform is tricky. To make life easier, specialised CI systems aka TACOS exist - Terraform Cloud, Spacelift, Atlantis, etc.

But why have 2 CI systems? Why not reuse the async jobs infrastructure with compute, orchestration, logs, etc of your existing CI?

Digger runs terraform natively in your CI. This is:

  • Secure, because cloud access secrets aren't shared with a third-party
  • Cost-effective, because you are not paying for additional compute just to run your terraform

Features

  • Terraform plan and apply in pull request comments
  • Any VCS - Github, Gitlab, Azure Repos, etc
  • Any CI - Github Actions, Gitlab, Azure DevOps, etc
  • Any cloud provider - AWS, GCP, Azure
  • Private runners - thanks to the fact that there are no separate runners! Your existing CI's compute environment is used
  • Open Policy Agent (OPA) support for RBAC
  • PR-level locks (on top of Terraform native state locks, similar to Atlantis) to avoid race conditions across multiple PRs
  • Terragrunt, Workspaces, multiple Terraform versions, static analysis via Checkov, plan persistence, ...
  • Drift detection - coming soon
  • Cost estimation - coming soon

Getting Started

How it works

Digger has 2 main components:

  • CLI that runs inside your CI and calls terraform with the right arguments
  • Orchestrator - a minimal backend (that can also be self-hosted) that triggers CI jobs in response to events such as PR comments

Digger also stores PR-level locks and plan cache in your cloud account (DynamoDB + S3 on AWS, equivalents in other cloud providers)

Telemetry

No sensitive or personal / identifyable data is logged. You can see what is tracked in pkg/utils/usage.go

Contributing

We love contributions. Check out our contribiting guide to get started.

Not sure where to get started? You can:

Resources

  • Docs for comprehensive documentation and guides
  • Slack for discussion with the community and Infisical team.
  • GitHub for code, issues, and pull request
  • Medium for terraform automation and collaboration insights, articles, tutorials, and updates.
  • Roadmap for planned features

More Repositories

1

infragenie

decouple your terraform with dependency injection
Python
59
star
2

awesome-devops-jobs

DevOps Jobs (Terraform & IaC specific) in the EU & UK, India and the USA. Maintained by team Digger
41
star
3

tfcloud-alt

terraform cloud alternative
HCL
14
star
4

tacoscalculator

Terraform Automation and Collaboration tools (TACOS) pricing calculator
HTML
13
star
5

cli

Python
11
star
6

helm-charts

Smarty
8
star
7

cookies

Terraform cookiecutter by digger
Python
7
star
8

Awesome-IaC

A collation of content on different IaC tools in the market, namely OpenTofu, Terraform, Pulumi, Crossplane and Winglang
7
star
9

digger_demo

HCL
5
star
10

a-nodeapp

JavaScript
5
star
11

fargate-terraform

ecs fargate terraform template
HCL
4
star
12

api

digger api backend
Go
4
star
13

target-fargate

Fargate deployment target
HCL
3
star
14

digger_demo_multienv

HCL
3
star
15

docs-site

2
star
16

quickstart-actions-aws

HCL
2
star
17

digger-examples

JavaScript
1
star
18

digger_demo_apply_on_merge

HCL
1
star
19

.github

1
star
20

target-network

HCL
1
star
21

target-network-module

HCL
1
star
22

target-ecs-module

HCL
1
star
23

olaclick-realtime-backend

JavaScript
1
star
24

target-lambda

HCL
1
star
25

digger-gcp-lock-demo

HCL
1
star
26

demo_dependent_modules

HCL
1
star
27

target-eks

EKS target for digger
HCL
1
star
28

lib-digger-config

Go
1
star
29

digger-gcp-ocid-demo

HCL
1
star
30

docs

1
star
31

apigateway-websockets-lambda

Sample repository for using API gateway to handle lambda websockets
JavaScript
1
star
32

target-aws

HCL
1
star
33

digger_custom_commands_demo

HCL
1
star
34

target-ecs

HCL
1
star
35

digger_demo_envvars

HCL
1
star
36

github_status_update_demo

HCL
1
star
37

generate_projects_demo

HCL
1
star
38

digger-usage-lambda

Python
1
star
39

dggr-cli

TypeScript
1
star
40

gitlab-webhook-lambda

Go
1
star
41

digger_azure_demo

HCL
1
star
42

demo-terragrunt-gcp

HCL
1
star