4.2. YAML ファイルとしてのテンプレートの作成
Template
オブジェクトを YAML ファイルとして定義することでテンプレートを作成できます。
Template
オブジェクトは、テンプレートとそのメタデータを記述します。また、必要な入力変数と、スキャフォールディングサービスによって実行されるアクションのリストも含まれています。
Template
オブジェクトの例
apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: template-name 1 title: Example template 2 description: An example template for v1beta3 scaffolder. 3 spec: owner: backstage/techdocs-core 4 type: service 5 parameters: 6 - title: Fill in some steps required: - name properties: name: title: Name type: string description: Unique name of the component owner: title: Owner type: string description: Owner of the component - title: Choose a location required: - repoUrl properties: repoUrl: title: Repository Location type: string steps: 7 - id: fetch-base name: Fetch Base action: fetch:template # ... output: 8 links: - title: Repository 9 url: ${{ steps['publish'].output.remoteUrl }} - title: Open in catalog 10 icon: catalog entityRef: ${{ steps['register'].output.entityRef }} # ...
- 1
- テンプレートの名前を指定します。
- 2
- テンプレートのタイトルを指定します。これは、Create… ビューのテンプレートタイルに表示されるタイトルです。
- 3
- テンプレートの説明を入力します。これは、Create… ビューのテンプレートタイルに表示される説明です。
- 4
- テンプレートの所有権を指定します。
owner
フィールドは、システムまたは組織内のテンプレートの管理または監視を行うユーザーに関する情報を提供します。上記の例では、owner
フィールドはbackstage/techdocs-core
に設定されています。これは、このテンプレートがbackstage
namespace のtechdocs-core
プロジェクトに属していることを意味します。 - 5
- コンポーネントタイプを指定します。この必須フィールドには任意の文字列値を指定できますが、組織でこれらに対して適切な分類を確立する必要があります。Red Hat Developer Hub インスタンスはこのフィールドを読み取り、その値に応じて異なる動作をする場合があります。たとえば、
website
タイプのコンポーネントは、Web サイト専用のツールを Red Hat Developer Hub インターフェイスに表示する場合があります。このフィールドに共通する値は次のとおりです。
service
- 通常 API を公開するバックエンドサービス。
website
- Web サイト
library
- npm モジュールや Java ライブラリーなどのソフトウェアライブラリー。
- 6
parameters
セクションを使用して、ユーザーが Red Hat Developer Hub コンソールでテンプレートを使用してコンポーネントを作成するときにフォームビューに表示されるユーザー入力のパラメーターを指定します。タイトルとプロパティーによって定義される各parameters
サブセクションにより、その定義を含む新しいフォームページが作成されます。- 7
- バックエンドで実行されるステップを指定するには、
steps
セクションを使用します。これらのステップは、一意のステップ ID、名前、およびアクションを使用して定義する必要があります。https://<rhdh_url>/create/actions
URL にアクセスすると、Red Hat Developer Hub インスタンスで利用可能なアクションを表示できます。 - 8
output
セクションを使用して、テンプレートの使用時に作成される出力データの構造を指定します。output
セクション、特にlinks
サブセクションには、テンプレートから作成されたコンポーネントにアクセスして操作するためにユーザーが利用できる貴重な参照と URL が提供されます。- 9
- 生成されたコンポーネントに関連付けられたリポジトリーへの参照または URL を提供します。
- 10
- さまざまなコンポーネントが表示されているカタログまたはディレクトリーで、生成されたコンポーネントを表示できるようにする参照または URL を提供します。