forge

Forge Multi-Tenant Deployment Example

This folder contains a complete multi-tenant Forge deployment using Terragrunt for layered configuration management.

Module Overview

Module Description
forge_runners Provisions ephemeral GitHub Actions runners (EC2 and EKS) with tenant isolation, autoscaling, and full lifecycle automation

Prerequisites

Before deploying Forge:

1. Prepare Config Files — Global, Environment, and VPC

Copy these templates and place them at the correct paths:

Templates to Copy

Destination Paths

examples/deployments/forge-tenant/terragrunt/_global_settings/_global.yaml

examples/deployments/forge-tenant/terragrunt/environments/<aws_account>/_environment_wide_settings/_environment.yaml

examples/deployments/forge-tenant/terragrunt/environments/<aws_account>/regions/<aws_region>/vpcs/<vpc_alias>/_vpc_wide_settings/_vpc.yaml

Edit the Config Files

Before editing your tenant’s config.yaml, review and update these supporting configuration files:

These files provide the foundational settings used by your tenant and runner modules.
Be sure to replace all placeholder values (<...>) with your actual environment details.

2. Adding a New Tenant

To provision a new tenant, follow the step-by-step guide:
👉 Deploy a New Tenant

3. How to Deploy

From the environment root directory, deploy all tenants at once:

cd examples/deployments/forge-tenant/terragrunt/environments/prod/
terragrunt run-all plan
terragrunt run-all apply

Or deploy a single tenant individually by navigating to its folder:

cd examples/deployments/forge-tenant/terragrunt/environments/prod/regions/<region>/vpcs/<vpc_alias>/tenants/<tenant_name>/
terragrunt plan
terragrunt apply

Choose the approach that fits your workflow.


For more advanced scenarios or troubleshooting, see the full documentation.