Skip to main content

Backstage Software Templates (Internal)

7KGroup Maintainers Only

The Backstage instance is only accessible to 7KGroup representatives. Community members request new charts by opening a Chart Request issue on GitHub.

Hiroba uses Backstage Software Templates internally to scaffold new application repositories when a chart request is approved.

How It Works

  1. A community member opens a Chart Request issue on GitHub
  2. A 7KGroup maintainer reviews, evaluates and approves the request
  3. The maintainer opens the Backstage portal and selects "Application Template"
  4. They fill in parameters based on the issue:
    • Application info — name, description
    • Deployment config — container port, ingress hostname
    • Platform dependencies — toggle Postgres, S3, Keycloak, etc
    • Repository — where to publish on GitHub
  5. Backstage scaffolds the repo:
    • Fetches the skeleton and renders ${{ values.* }} placeholders
    • Publishes to GitHub
    • Registers the new component in the Backstage catalog
  6. The maintainer links the new repo back to the original issue

Template Structure

templates/app-template/
├── template.yaml # Backstage template definition
└── skeleton/ # Files that get scaffolded
├── README.md
├── Dockerfile
├── catalog-info.yaml # Backstage catalog entry
├── mkdocs.yml # TechDocs config
├── helm/
│ ├── base/ # Standard k8s Helm chart
│ └── platform/ # Platform dependencies chart
├── crossplane/ # App-specific XRDs & Compositions
├── docs/ # Documentation
└── .github/workflows/ # CI/CD referencing workflow-library

Template Parameters

The template.yaml defines four parameter groups:

GroupFieldsPurpose
Application Infoname, description, ownerIdentity and ownership
Deployment Configport, enableIngress, hostnameHow the app is exposed
Platform DependenciesenablePostgres, enableS3, enableKeycloakWhat infra to provision
RepositoryrepoUrlWhere to publish

CI/CD Integration

Scaffolded workflows reference the centralized 7K-Hiroba/workflows-library:

jobs:
build:
uses: 7K-Hiroba/workflows-library/.github/workflows/build.yml@v1
with:
image-name: ghcr.io/7kgroup/my-app
secrets: inherit

This ensures all applications share consistent build, test, and release pipelines.