Backstage Templates — Golden Paths
Template Dependency Chain
People layer (run any time)
──────────────────────────────────────────────────────────────────
create-group → Group entity + RBAC + ArgoCD role instructions
create-user → User entity + RBAC + ArgoCD user instructions
Platform layer (run in order)
──────────────────────────────────────────────────────────────────
create-domain
│ Domain entity, {domain}-gitops repo created, AppProject
▼
create-system
│ System entity, ApplicationSet (empty elements list)
▼
├──────────────────────────────┬──────────────────────────────┐
▼ ▼ ▼
create-service create-resource create-secret
Component entity, Resource entity, SealedSecret manifest/env
App Repo (CI/CD, docs), Crossplane Claim/env,
k8s manifests/env, infra namespace
service → AppSet
Template Output Summary
| Template | New repo? | PR 1 | PR 2 |
|---|---|---|---|
create-domain | ✅ {domain}-gitops | domain repo (entity, defaults, CI) | platform-gitops (AppProject) |
create-system | ❌ | domain-gitops (System entity + TechDocs) | platform-gitops (ApplicationSet) |
create-service | ✅ {app}-repo | domain-gitops (manifests + Component) | new app-repo (CI/CD + TechDocs + .k8s folder), platform-gitops (AppSet element) |
create-resource | ❌ | domain-gitops (Claims + infra namespace) | catalog repo (Resource entity) |
create-secret | ❌ | domain-gitops (SealedSecret) | (none) |
create-group | ❌ | catalog repo (Group entity) | platform-gitops (RBAC) |
create-user | ❌ | catalog repo (User entity) | platform-gitops (RBAC) |
Required Scaffolder Packages
yarn workspace backend add \
@backstage/plugin-scaffolder-backend-module-github \
@roadiehq/scaffolder-backend-module-utils
| Action | Package | Used by |
|---|---|---|
fetch:template | built-in | all |
catalog:fetch | built-in | create-system, service, resource, user, group |
catalog:register | built-in | all |
publish:github | @backstage/plugin-scaffolder-backend-module-github | create-domain only |
publish:github:pull-request | @backstage/plugin-scaffolder-backend-module-github | all |
roadiehq:utils:jsonata | @roadiehq/scaffolder-backend-module-utils | create-system, service, resource, user, group |