Skip to main content

Team Topology

Logos codifies the team structure that all platform tooling — GitHub, GCP, and Datadog — reflects. Every team, its repositories, and its observability scope are defined here and flow downstream.

  • GitHub teams: Hierarchical parent/child teams with membership and repository access managed as code; four standard child teams (sandbox-approvers, non-production-approvers, production-approvers, repository-administrators) are created for every team
  • GitHub repositories: Repositories are registered in pt-logos and provisioned with standard settings — squash-only merges, repository rulesets enforcing PR reviews and signed commits, Datadog webhooks, and standard repository files (release notes config, security policy)
  • Datadog teams: Observability team structure mirrors GitHub teams; each team gets a service account with a per-team API key and app key stored as GitHub Actions secrets in that team's repositories

Team Configuration Schema

Each team is defined as an entry in the teams map inside a .tfvars file under teams/. The schema below documents every available field — click any object or map to expand its properties.

teams.<team-key>
display_namestringrequired

Team display name shown in Datadog, GitHub, and the GCP console. Title Case, no special characters except spaces.

team_typestringrequired

Team Topologies type. Must match the team key prefix (st-, pt-, ct-, et-).

"stream-aligned-team""platform-team""complicated-subsystem-team""enabling-team"
enable_workflowsbooleanoptional

Creates a GitHub Actions service account, Workload Identity Federation bindings, and GCP group memberships for CI/CD authentication.

enable_opentofu_state_managementbooleanoptional

Creates an OpenTofu state storage bucket and KMS key IAM bindings. Requires enable_workflows = true.

enable_google_projectbooleanoptional

Creates a GCP project in the team's environment folder via pt-corpus. Default: false.

google_project_enable_datadogbooleanoptional

Enables Datadog Google Cloud integration for the team's GCP project. Default: false. Only applies when enable_google_project is true.

google_project_servicesstring[]optional

Additional GCP API services to enable in the team project beyond the baseline set (e.g., "bigquery.googleapis.com"). Default: []. Only applies when enable_google_project is true.

Components

ComponentDescription
teamA platform or stream-aligned team with a name, type, and member list
github-teamA GitHub team mirroring the Logos team — controls repo access
repositoryA GitHub repository registered in Logos with standard settings and branch protection
branch-protectionRules applied to default branch: required reviews, status checks, no force push
datadog-teamAn observability team in Datadog mirroring the Logos team — owns dashboards and monitors

Core Invariants

  • Every team definition produces exactly one set of GCP, GitHub, and Datadog resources.
  • Every provisioned GitHub repository has signed commits required, linear history enforced, and PR review active — the branch ruleset is hardcoded with enforcement = "active" and no variable to disable it.