First Tenant

July 5, 2026 ยท View on GitHub

Use this as the copy/change/run path for the first Forge tenant.

Copy The Template

Copy:

examples/templates/platform/tenant

Into the platform deployment tree:

examples/deployments/platform/terragrunt/environments/prod/regions/eu-west-1/vpcs/main/tenants/<tenant>

Change These Values

FileChange
config.ymlGitHub org/app values, tenant IAM roles, ECR registries, EC2 specs, ARC specs, AMI owner/name, and cluster name.
runner_settings.hclLabel generation, runner group naming, module inputs, and include paths when your folder depth differs.
terragrunt.hclInclude paths only if your folder depth differs from the example.

First Plan

cd examples/deployments/platform/terragrunt/environments/prod/regions/eu-west-1/vpcs/main/tenants/<tenant>
terragrunt init
terragrunt plan

First Workflow

Give the tenant a minimal workflow after apply:

---
name: Forge smoke test

on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  smoke:
    runs-on:
      - self-hosted
      - type:small
      - x64
      - ec2
      - tnt:<tenant>
    steps:
      - run: echo "Forge runner is online"

If the job stays queued, check GitHub App installation, runner group access, tenant labels, and whether the runner module created the expected scale set or EC2 runner group.

For the full operator workflow, including GitHub App permissions, SSM key setup, ARC notes, and common failures, use Tenant Onboarding.