Skip to main content

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​

TemplateNew repo?PR 1PR 2
create-domain✅ {domain}-gitopsdomain repo (entity, defaults, CI)platform-gitops (AppProject)
create-system❌domain-gitops (System entity + TechDocs)platform-gitops (ApplicationSet)
create-service✅ {app}-repodomain-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
ActionPackageUsed by
fetch:templatebuilt-inall
catalog:fetchbuilt-increate-system, service, resource, user, group
catalog:registerbuilt-inall
publish:github@backstage/plugin-scaffolder-backend-module-githubcreate-domain only
publish:github:pull-request@backstage/plugin-scaffolder-backend-module-githuball
roadiehq:utils:jsonata@roadiehq/scaffolder-backend-module-utilscreate-system, service, resource, user, group