Worklog: gcp-infra (20/03/26)
Done
- Updated Backstage to version 1.49.0
- Updated Backstage to use Postgres instead of SQLite for local development. With this, no code changes are needed.
- Added docker compose to spin up postgres.
- Created the bare minimum scaffold template.
- Tested the scaffold and integration with github E2E, it worked.
- Added template versioning:
backstage.io/template-versionannotation on templates;scaffolder.backstage.io/template: <name>@<version>written into scaffoldedcatalog-info.yaml - Created
sync-template: syncs common-assets and template skeleton to existing components via PR - Designed catalog entity model: Domain/System/Component hierarchy per client + internal + personal domains
- Built
new-client-projecttemplate: creates client infra repo (Terraform + WIF GitHub Actions) and opens catalog PR on gcp-infra - Extended
config:getaction with GCP infrastructure values (WIF provider, tf-admin-sa, state bucket, budget topic) - Deployed to Cloud Run + terraform apply
Next steps
- Broken auth after migration to v1.49.0
- Task 7.2 — Switch production catalog to GitHub provider (
@backstage/plugin-catalog-backend-module-github) so new client YAML files merged to gcp-infra are auto-discovered without a Backstage redeploy. Register provider inindex.ts, configure inapp-config.production.yamlwith 30min polling onbackstage/catalog/clients/*.yaml - Task 7.1 — Configure TechDocs for production: switch to
builder: external, provision GCS bucket for pre-built docs, configurepublisher.type: googleGcsinapp-config.production.yaml, add Cloud Build step to runtechdocs-cli generateand publish to GCS on each deploy - sync-template Option 2 — Bulk sync via custom backend action + custom EntityVersionPicker field extension (see
.FEATURES/backstage-idp-implementation.md→ “Bulk sync-template”) - new-client-project: collect billing account in the template UI and bake it into the workflow (currently set manually as
GCP_BILLING_ACCOUNTGitHub Secret post-creation)