home-lab-catalog/templates/ressource-template/template.yaml

70 lines
2.2 KiB
YAML
Raw Normal View History

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: new-resource-template
title: Neue Resource anlegen
description: Erstellt eine neue Resource-YAML für das Home-Lab (z.B. Raspberry Pi, NAS).
spec:
owner: admin
type: service
# Hier definierst du die Eingabemelder der UI
parameters:
- title: Basis-Informationen
required: [name, owner]
properties:
name:
title: Name
type: string
description: Eindeutiger Name der Resource (z.B. raspberry-pi-5)
description:
title: Beschreibung
type: string
description: Wofür wird das Gerät genutzt?
owner:
title: Owner
type: string
default: admin
description: Wer ist verantwortlich?
system:
title: System
type: string
default: home-lab
description: Zu welchem System gehört es?
netbox_name:
title: NetBox Name
type: string
description: Exakter Name in NetBox für die API-Verknüpfung
# Hier definierst du, was nach dem Klick auf "Create" passiert
steps:
- id: fetch-base
name: Vorlage laden
action: fetch:template
input:
url: ./skeleton
values:
name: ${{ parameters.name }}
description: ${{ parameters.description }}
owner: ${{ parameters.owner }}
system: ${{ parameters.system }}
netbox_name: ${{ parameters.netbox_name }}
- id: publish
name: In Gitea veröffentlichen
action: publish:gitea
input:
allowedHosts: ['privat.stommer.com:555']
description: "Anlage Ressource und Dokumentation: ${{ parameters.name }}"
repoUrl: "privat.stommer.com?owner=Lars&repo=home-lab-catalog"
branchName: main
# FIX: Hier legen wir den Zielpfad fest
targetPath: 'landscape/resources/${{ parameters.name }}'
- id: register
name: Im Katalog registrieren
action: catalog:register
input:
repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }}
# Verweist auf die Datei im neuen Unterordner
catalogInfoPath: '/catalog-info.yaml'