6. YAML定義
Ops Iではワークフローやデータモデルなど運用に必要な定義をYAMLファイルで記載することができ、運用のコード化(Operations as Code)を実現することができます。コード化した運用をOps Iに登録することで、各種運用機能に自動的に変換されます。
YAMLファイルで記載することができる運用機能の一覧と、運用の中では以下の通りです。
| 名称 | 説明 |
|---|---|
| Workflow | 運用に必要となるワークフローの定義を行います。 |
| UI | 画面に表示するデータ項目やレイアウトなど、UIの定義を行います。 |
| Datamodel | 各種データを保存するためのデータモデルの定義を行います。 |
| Catalog | ユーザーが各種申請を行う際の入り口となるサービスカタログの定義を行います。 |
| Script | 画面表示時やボタンをクリックした時など、何かしらのイベントを契機に実行されるアクションの定義を行います。 |
| Attachment | 運用の中で扱う添付ファイルの命名ルールの定義を行います。 |
| Distribution | 運用の中で発生する各種ドキュメントをどのようなルールでどこに保存するか定義を行います。 |
| ACL | Statementで定義した認可に対してユーザーやグループなどの適応先を定義します。 |
| Statement | URIやテーブルのレコードなどさまざまなリソースに対しての認可設定の定義を行います。 |
| Notification | Ops I上でのイベントを契機に、誰に通知するかと、通知する内容の定義を行います。 |
| Notifier | Notificationで定義された通知内容をどのように通知するか通知手段の定義を行います。 |
| Skill | 各ユーザーが保有する経験値や資格などのスキルを可視化するための定義を行います。 |
| Skillset | ワークフローの各ステップを実行するために必要なスキルをセット化して定義します。 |
Ops Iで運用機能をコード化する場合、定められた書式に従ってYAMLファイルを記述する必要があります。各運用機能のYAMLファイルの詳細な記述内容は「Workflow」~「Calendar」で記述します。
- YAMLファイルのファイル名は「manifest.yaml」にする必要があります。
- 第一階層のnameラベルで指定した名称と同じ名称のディレクトリ配下に、YAMLファイルを保存する必要があります。
- kindラベルとnameラベルの組み合わせはOps Iで一意である必要があります。
- YAMLファイルのnameラベルとデータモデルのテーブル名には、予約語との衝突を避けるため、プレフィックスを付ける必要があります。予約語と衝突した場合はエラーが発生します。詳細については、「YAMLファイルのnameラベルとデータモデルのテーブル名でエラーが発生しYAMLファイルが登録できない場合の対処」を参照してください。
- Include対象となるYAMLファイルで、他のnameラベルと衝突していると意図しない動作になります。詳細については「エラーメッセージが表示されないが、意図しない動作になる場合の対処」を参照してください。
YAMLファイルはユーザーが定義したグループ内の任意のリポジトリに登録することで、Ops Iから読み込むことができます。その結果、Ops Iが自動的に対応した運用機能を生成します。YAMLファイルの登録は「YAMLファイルのGitLab登録方法(GUI)」と「YAMLファイルのGitLab登録方法(CUI)」を参照してください。
また、YAMLファイルを定義する際、テンプレート機能を使用することができます。
テンプレート機能はドキュメント機能の1つで、YAMLファイルに環境パラメータとして定義した用語を、ユーザー定義パラメータやシステム定義パラメータに置き換えることができる機能です。多言語に対応させる場合などに有用です。
【ユーザー定義パラメータ】
テンプレート機能を使用する「YAMLファイル」と参照先となる値を記載する「テンプレートファイル」は、以下の条件を満たす必要があります。
- YAMLファイルとテンプレートファイルは同フォルダに配置
- テンプレートファイルのファイル名は「values.yaml」
- YAMLファイルに記載する構文は以下の形式
"{{.Values.テンプレートファイル記載のパス}}"
'{{.Values.テンプレートファイル記載のパス}}'
<パラメータを使用できるYAMLファイル>
- application
- ui
- library
- catalog
- skill
- skillset
- workflow
【システム定義パラメータ】
Ops Iで使用できるシステム定義パラメータは以下の通りです。
| システム定義パラメータ | 説明 |
|---|---|
| .System.domain | Ops I環境のドメイン |
YAMLファイルに記載する構文は以下の形式で記載してください。
<記載例>
"{{.System.domain}}"
'{{.System.domain}}'
<パラメータを使用できるYAMLファイル>
- application
- ui
- library
- catalog
- statement(authzType: uri の場合のみ)
- notification
- skill
- skillset
- workflow
章構成
6.1 Workflow
6.2 UI
6.3 Datamodel
6.4 Catalog
6.5 Script
6.6 Library
6.7 Attachment
6.8 Distribution
6.9 ACL、Statement
6.10 Notification、Notifier
6.11 Application
6.12 Skill、Skillset
6.13 Calendar