Templates Backstage — Caminhos Dourados
Cadeia de Dependência de Templates
Camada de pessoas (execute a qualquer momento)
──────────────────────────────────────────────────────────────────
create-group → entidade Group + RBAC + instruções de papel ArgoCD
create-user → entidade User + RBAC + instruções de usuário ArgoCD
Camada de plataforma (execute em ordem)
──────────────────────────────────────────────────────────────────
create-domain
│ Entidade Domain, repositório {domain}-gitops criado, AppProject
▼
create-system
│ Entidade System, ApplicationSet (lista de elementos vazia)
▼
├──────────────────────────────┬──────────────────────────────┐
▼ ▼ ▼
create-service create-resource create-secret
Entidade Component, Entidade Resource, Manifesto SealedSecret/env
App Repo (CI/CD, docs), Claim Crossplane/env,
manifestos k8s/env, namespace de infra
serviço → AppSet
Resumo de Saída dos Templates
| Template | Novo repositório? | PR 1 | PR 2 |
|---|---|---|---|
create-domain | ✅ {domain}-gitops | repositório do domínio (entidade, padrões, CI) | platform-gitops (AppProject) |
create-system | ❌ | domain-gitops (entidade System + TechDocs) | platform-gitops (ApplicationSet) |
create-service | ✅ {app}-repo | domain-gitops (manifestos + Component) | novo app-repo (CI/CD + TechDocs + pasta .k8s), platform-gitops (elemento do AppSet) |
create-resource | ❌ | domain-gitops (Claims + namespace de infra) | repositório de catálogo (entidade Resource) |
create-secret | ❌ | domain-gitops (SealedSecret) | (nenhum) |
create-group | ❌ | repositório de catálogo (entidade Group) | platform-gitops (RBAC) |
create-user | ❌ | repositório de catálogo (entidade User) | platform-gitops (RBAC) |
Pacotes Scaffolder Necessários
yarn workspace backend add \
@backstage/plugin-scaffolder-backend-module-github \
@roadiehq/scaffolder-backend-module-utils
| Ação | Pacote | Usado por |
|---|---|---|
fetch:template | built-in | todos |
catalog:fetch | built-in | create-system, service, resource, user, group |
catalog:register | built-in | todos |
publish:github | @backstage/plugin-scaffolder-backend-module-github | create-domain apenas |
publish:github:pull-request | @backstage/plugin-scaffolder-backend-module-github | todos |
roadiehq:utils:jsonata | @roadiehq/scaffolder-backend-module-utils | create-system, service, resource, user, group |