forge

Adding a New Tenant to Forge

This guide explains how to add a new tenant in Forge, configure required files, set up GitHub App secrets, and deploy the configuration.


1. Create Tenant Configuration


2. Create a GitHub App

Type Permission Access
Repository Actions Read-only
Repository Actions Metadata Read-only
Repository Checks Read-only
Organization Administration Read/Write
Organization Self-hosted runners Read/Write
Events Workflow job Subscribe

Permission table notes:


3. Deploy Secrets

Navigate to your tenant directory and deploy the secrets:

cd terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name>
terragrunt apply --target aws_secretsmanager_secret_version.cicd_secrets

4. Set GitHub App Secrets

Use the script to set the required GitHub App secrets:

./scripts/update-github-app-secrets.sh /path/to/terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name> client_id Ab12cd34EfGh56ij78KL  # GitHub App Client ID
./scripts/update-github-app-secrets.sh /path/to/terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name> name forge-use1                # GitHub App Name
./scripts/update-github-app-secrets.sh /path/to/terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name> id 1234567                     # GitHub App ID
./scripts/update-github-app-secrets.sh /path/to/terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name> key /path/to/private-key.pem   # GitHub App Private key
./scripts/update-github-app-secrets.sh /path/to/terragrunt/environments/<aws account alias>/regions/<aws region>/vpcs/<vpc alias>/tenants/<tenant_name> installation_id 11223344        # GitHub App Installation ID

You can run these commands in parallel by appending & at the end of each line.


5. Deploy All Tenant Resources

After secrets are set, deploy all resources for the tenant:

cd examples/forge_with_integrations/terragrunt/environments/prod/regions/<aws region>/vpcs/sl/tenants/<tenant_name>
terragrunt apply

Notes