Forge Configuration Map¶
Use this section when you are turning the Forge examples into your own live Terragrunt configuration. It is organized by deployment root so a platform engineer can copy one root, change local values, and run plans without reading the full module catalog first.
The main runtime path is platform. infra, helpers, and integrations are
added only when your operating model needs them.
Pick the Path¶
| Goal | Start here | Deploy root | Required? |
|---|---|---|---|
| Run GitHub Actions tenants on Forge | Platform | examples/deployments/platform/terragrunt |
Yes |
| Build the EKS foundation for ARC runners | Infra / EKS | examples/deployments/infra/terragrunt |
Only for ARC/Kubernetes runners |
| Add operational support modules | Helpers | examples/deployments/helpers/terragrunt |
Optional |
| Add webhook, Teleport, Splunk, or vendor modules | Integrations | examples/deployments/integrations/terragrunt |
Optional |
Minimum Working Install¶
For the first useful deployment, keep the scope small:
- Copy
examples/deployments/platforminto the repo where your company keeps Terragrunt live configuration. - Edit
_global.yml,_environment.yml,_region.hcl, and_vpc.ymlfor your account, region, VPC, subnets, and runner group suffix. - Add one tenant under
environments/prod/regions/eu-west-1/vpcs/main/tenants/<tenant_name>. - Put one EC2 runner spec or one ARC runner spec in the tenant
config.yml. - Deploy that tenant.
- Add the other runner lane, helpers, and integrations only after the first runner path works.
cd examples/deployments/platform/terragrunt/environments/prod/regions/eu-west-1/vpcs/main/tenants/acme
terragrunt plan
terragrunt apply
What You Usually Change¶
| File | Change |
|---|---|
examples/deployments/*/release_versions.yml |
Module repository, version, and module_path metadata for that deployment category. |
examples/deployments/*/terragrunt/_global_settings/_global.yml |
Team, product, project, GitHub org, and owner email defaults. |
examples/deployments/*/terragrunt/environments/prod/_environment_wide_settings/_environment.yml |
AWS account ID, default region, AWS profile, remote state, and environment-level naming. |
examples/deployments/platform/terragrunt/environments/prod/regions/<region>/_region_wide_settings/_region.hcl |
Region alias used in runner labels and names. |
examples/deployments/platform/terragrunt/environments/prod/regions/<region>/vpcs/<vpc>/_vpc_wide_settings/_vpc.yml |
VPC alias, VPC ID, Lambda subnets, runner subnets, and optional ARC cluster name. |
examples/deployments/platform/terragrunt/environments/prod/regions/<region>/vpcs/<vpc>/tenants/<tenant>/config.yml |
GitHub App IDs, tenant IAM roles, ECR registries, EC2 runner specs, and optional ARC specs. |
Each category also has templates under examples/templates/<category>. Use the
templates for new files, then keep the deployed examples as your working
reference.
Common Follow-Up Tasks¶
| Task | Doc | Why it is outside this section |
|---|---|---|
| Add a tenant | Tenant Onboarding | Tenant onboarding is an operations workflow using the platform root. |
| Move ARC tenants between clusters | Move ARC Tenants | Cluster moves are controlled day-2 operations, not a new deployment category. |
| Build or update runner AMIs | Runner Images | Image builds are artifact operations consumed by platform configs. |
| Deploy Splunk | Splunk Integration | Splunk is optional and has its own credential flow. |
| Check module ordering | Module Dependencies | Dependency rules are reference material shared by all deployment roots. |
Skip Rules¶
- EC2-only deployment: skip
examples/deployments/infra,arc_runner_specs,arc_cluster_name, and Kubernetes integrations. - No Splunk: skip
examples/deployments/integrations/terragrunt/**/splunk_*and Splunk Secrets. - Existing EKS: skip
modules/infra/eksand point ARC configuration at the existing cluster. - Existing buckets, ECR, AMI sharing, or service-linked roles: skip the matching helper module and feed those externally managed values into the platform or integration config.