This is a catalog of free, open-source Infrastructure as Code (IaC) configurations for setting up Terragrunt Scale customers.
The Terragrunt Scale Catalog provides pre-built, production-ready infrastructure components for bootstrapping CI/CD pipelines with OIDC authentication. It supports both AWS and Azure cloud providers, with integrations for GitHub and GitLab.
This repository is organized into three main components:
Reusable OpenTofu modules that define cloud resources. These are the building blocks referenced by units.
-
modules/aws/- AWS-specific OpenTofu modulesiam-oidc-role- IAM role with OIDC trust policyiam-openid-connect-provider- IAM OIDC provideriam-policy- IAM policy documentsiam-role-policy-attachment- Attach policies to IAM roles
-
modules/azure/- Azure-specific OpenTofu modulesentra-id-application- Entra ID (Azure AD) applicationentra-id-service-principal- Service principal for applicationsentra-id-federated-identity-credential- Federated identity credential (static subject)entra-id-flexible-federated-identity-credential- Flexible federated identity credential (with claim matching expressions)entra-id-role-assignment- Role assignment to a specific scopeentra-id-role-assignment-to-sub- Role assignment at subscription levelresource-group- Azure resource groupstorage-account- Azure storage accountstorage-container- Azure storage container
Terragrunt unit configurations that wrap modules with specific configurations and dependencies. Units represent deployable infrastructure components.
-
units/aws/oidc/- AWS OIDC configuration unitsiam-oidc-role- Configured IAM OIDC roleiam-openid-connect-provider- Configured OIDC provideriam-policy- Configured IAM policyiam-role-policy-attachment- Configured policy attachment
-
units/azure/state/- Azure state management unitsresource-group- Resource group for state storagestorage-account- Storage account for OpenTofu statestorage-container- Container for state files
-
units/azure/oidc/- Azure OIDC configuration unitsentra-id-application- Configured Entra ID applicationentra-id-service-principal- Configured service principalentra-id-federated-identity-credential- Configured federated identity (static)entra-id-flexible-federated-identity-credential- Configured flexible federated identityservice-principal-to-scope-role-assignment- Role assignment to a specific scopeservice-principal-to-sub-role-assignment- Role assignment at subscription level
Terragrunt stack configurations that compose multiple units into complete infrastructure setups. Stacks represent end-to-end solutions.
stacks/aws/github/pipelines-bootstrap/- Bootstrap AWS resources for Gruntwork Pipelines (GitHub Actions) with OIDCstacks/aws/gitlab/pipelines-bootstrap/- Bootstrap AWS resources for Gruntwork Pipelines (GitLab CI) with OIDCstacks/azure/github/pipelines-bootstrap/- Bootstrap Azure resources for Gruntwork Pipelines (GitHub Actions) with OIDCstacks/azure/gitlab/pipelines-bootstrap/- Bootstrap Azure resources for Gruntwork Pipelines (GitLab CI) with OIDC
Templates for quickly scaffolding new Terragrunt Scale infrastructure repositories. These templates provide a standardized starting point for different cloud providers and CI/CD platforms.
Boilerplate repository templates that include all necessary Terragrunt configurations, dependencies, and structure for bootstrapping Gruntwork Pipelines.
AWS Templates:
-
aws/github/- Complete AWS + GitHub Actions setupaccount/- Account-level bootstrap configuration{{ .AccountName }}/_global/bootstrap/- Bootstrap stack configurationboilerplate.yml- Template variables and dependencies
infrastructure-live/- Infrastructure live repository structureboilerplate.yml- Repository-level dependencies and configuration
-
aws/gitlab/- Complete AWS + GitLab CI setupaccount/- Account-level bootstrap configuration{{ .AccountName }}/_global/bootstrap/- Bootstrap stack configurationboilerplate.yml- Template variables and dependencies
infrastructure-live/- Infrastructure live repository structureboilerplate.yml- Repository-level dependencies and configuration
Azure Templates:
-
azure/github/- Complete Azure + GitHub Actions setupsubscription/- Subscription-level bootstrap configuration{{ .SubscriptionName }}/bootstrap/- Bootstrap stack configurationboilerplate.yml- Template variables and dependencies
infrastructure-live/- Infrastructure live repository structureboilerplate.yml- Repository-level dependencies and configuration
-
azure/gitlab/- Complete Azure + GitLab CI setupsubscription/- Subscription-level bootstrap configuration{{ .SubscriptionName }}/bootstrap/- Bootstrap stack configurationboilerplate.yml- Template variables and dependencies
infrastructure-live/- Infrastructure live repository structureboilerplate.yml- Repository-level dependencies and configuration
Detailed documentation for each component can be found in their respective directories:
Regardless of whether you're using GitHub Actions, GitLab CI, AWS or Azure (GitHub Actions only here, at the moment), you can bootstrap Gruntwork Pipelines by following the documentation in the official Gruntwork Pipelines setup docs.
Contributions are welcome! Please feel free to submit a Pull Request.
See LICENSE for full details.