Plugin Backstage fournissant un Software Template personnalisé. Utilise
uniquement des actions natives (fetch:template, publish:github) —
aucun plugin backend requis.
backstage-plugin-custom-templates/
└── src/templates/
├── template.yaml ← Définition du Software Template
└── skeletons/
├── empty/
│ └── ${{ values.name }}-config.yml
├── mcp/
│ └── ${{ values.name }}-config.yml
├── rest/
│ └── ${{ values.name }}-config.yml
└── skills/
└── ${{ values.name }}-config.yml
| Besoin | Solution native |
|---|---|
Substituer ${{ values.name }} |
Moteur Nunjucks intégré à fetch:template |
| Choisir le bon fichier selon l'adaptateur | Étapes conditionnelles if: dans template.yaml |
| Pousser sur GitHub | Action native publish:github |
| Plugin backend custom | ✗ Inutile |
fetch:template résout l'URL ./skeletons/<adapter>/ relativement à l'emplacement
du template.yaml dans le dépôt GitHub. Les noms de fichiers contenant
${{ values.name }} sont également traités par le moteur de templating.
Utilisateur choisit adapter=MCP, name=my-service
│
▼
Étape fetch-empty → ignorée (if: false)
Étape fetch-mcp → exécutée (if: true)
│ fetch:template lit skeletons/mcp/${{ values.name }}-config.yml
│ remplace ${{ values.name }} → "my-service"
│ écrit my-service-config.yml dans le workspace
▼
Étape publish:github
│ pousse my-service-config.yml sur le repo GitHub choisi
▼
Lien vers le dépôt affiché à l'utilisateur
Le plugin doit être hébergé sur GitHub pour que fetch:template puisse
résoudre les chemins relatifs vers les skeletons.
git add .
git commit -m "feat: add custom-adapter backstage template"
git push origin mainDans app-config.yaml :
catalog:
locations:
- type: url
target: https://github.com/<org>/<repo>/blob/main/src/templates/template.yaml
rules:
- allow: [Template]
⚠️ Letargetdoit pointer vers l'URL GitHub dutemplate.yaml(pas un chemin local) pour que les URLs relatives./skeletons/soient résolues correctement par Backstage.
Dans app-config.yaml :
integrations:
github:
- host: github.com
token: ${GITHUB_TOKEN}
scaffolder:
defaultAuthor:
name: Backstage Scaffolder
email: scaffolder@example.com
defaultCommitMessage: "feat: initial scaffold from Backstage"Pas de backend.add(...), pas de dépendance supplémentaire.
- Ouvrez Backstage → menu Create
- Sélectionnez "Custom Adapter Component"
- Renseignez Name et Adapter
- Choisissez le dépôt GitHub cible
- Cliquez Create — le fichier
<name>-config.ymlest poussé sur GitHub
- Créer
src/templates/skeletons/<new-adapter>/${{ values.name }}-config.yml - Ajouter la valeur dans l'
enumdutemplate.yaml - Ajouter une étape
fetch:templateavec leif:correspondant - Pousser sur GitHub — le catalog se met à jour au prochain refresh