4.2. YAML ファイルとしてのテンプレートの作成
Template オブジェクトを YAML ファイルとして定義することでテンプレートを作成できます。
Template オブジェクトは、テンプレートとそのメタデータを記述します。また、必要な入力変数と、スキャフォールディングサービスによって実行されるアクションのリストも含まれています。
Template オブジェクトの例
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: template-name
title: Example template
description: An example template for v1beta3 scaffolder.
spec:
owner: backstage/techdocs-core
type: service
parameters:
- 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:
- id: fetch-base
name: Fetch Base
action: fetch:template
# ...
output:
links:
- title: Repository
url: ${{ steps['publish'].output.remoteUrl }}
- title: Open in catalog
icon: catalog
entityRef: ${{ steps['register'].output.entityRef }}
# ...
- 1
- テンプレートの名前を指定します。
- 2
- テンプレートのタイトルを指定します。これは、Create… ビューのテンプレートタイルに表示されるタイトルです。
- 3
- テンプレートの説明を入力します。これは、Create… ビューのテンプレートタイルに表示される説明です。
- 4
- テンプレートの所有権を指定します。
ownerフィールドは、システムまたは組織内のテンプレートの管理または監視を行うユーザーに関する情報を提供します。上記の例では、ownerフィールドはbackstage/techdocs-coreに設定されています。これは、このテンプレートがbackstagenamespace の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/actionsURL にアクセスすると、Red Hat Developer Hub インスタンスで利用可能なアクションを表示できます。 - 8
outputセクションを使用して、テンプレートの使用時に作成される出力データの構造を指定します。outputセクション、特にlinksサブセクションには、テンプレートから作成されたコンポーネントにアクセスして操作するためにユーザーが利用できる貴重な参照と URL が提供されます。- 9
- 生成されたコンポーネントに関連付けられたリポジトリーへの参照または URL を提供します。
- 10
- さまざまなコンポーネントが表示されているカタログまたはディレクトリーで、生成されたコンポーネントを表示できるようにする参照または URL を提供します。