Tooling version variations from one machine to another • Many people have access to the infrastructure • Difficulty tracking changes ◦ Hard to know who performed it and when ◦ No visibility of what is being applied and what has been applied
leave your infrastructure • Runs as a Golang binary or Docker image • Can be deployed on VMs, Kubernetes, Fargate, etc • Listens for webhooks from GitHub/GitLab/Bitbucket/Azure DevOps • Runs terraform commands remotely and comments back with their output
No human failures - More transparent - Team collaboration - More quality in code - Any person can send a PR and propose a change - Greater security - Only the pipeline has access to infra - Centralized - Git is the source of truth (everything that passes is applied) - Just revert a commit and open an MR for rollback - Infra reflect what's in git