10.17. OpenShift Pipelines を使用した仮想マシンの管理
Red Hat OpenShift Pipelines は、開発者が独自のコンテナーで CI/CD パイプラインの各ステップを設計および実行できるようにする、Kubernetes ネイティブの CI/CD フレームワークです。
Tekton Tasks Operator (TTO) は、OpenShift Virtualization と OpenShift Pipelines を統合します。TTO には、次のことを可能にするクラスタータスクとサンプルパイプラインが含まれています。
- 仮想マシン (VM)、永続ボリューム要求 (PVC)、およびデータボリュームの作成と管理
- 仮想マシンでコマンドを実行する
-
libguestfs
ツールを使用してディスクイメージを操作する
Red Hat OpenShift Pipelines を使用した仮想マシンの管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
10.17.1. 前提条件
-
cluster-admin
権限を使用して OpenShift Container Platform クラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - OpenShift Pipelines CLI がインストールされている。
10.17.2. Tekton Tasks Operator リソースのデプロイ
Tekton Tasks Operator (TTO) クラスタータスクとサンプルパイプラインは、OpenShift Virtualization のインストール時にデフォルトではデプロイされません。TTO リソースをデプロイするには、HyperConverged
カスタムリソース (CR) で deployTektonTaskResources
フィーチャーゲートを有効にします。
手順
以下のコマンドを実行して、デフォルトのエディターで
HyperConverged
CR を開きます。$ oc edit hco -n openshift-cnv kubevirt-hyperconverged
spec.featureGates.deployTektonTaskResources
フィールドをtrue
に設定します。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: kubevirt-hyperconverged spec: tektonPipelinesNamespace: <user_namespace> 1 featureGates: deployTektonTaskResources: true 2 #...
注記後でフィーチャーゲートを無効にしても、クラスタータスクとサンプルパイプラインは引き続き使用できます。
- 変更を保存し、エディターを終了します。
10.17.3. Tekton Tasks Operator によってサポートされる仮想マシンタスク
次の表は、Tekton Tasks Operator の一部として含まれているクラスタータスクを示しています。
タスク | Description |
---|---|
| テンプレートからの仮想マシンの作成 |
| 仮想マシンテンプレートをコピーします。 |
| 仮想マシンテンプレートを変更します。 |
| データボリュームまたはデータソースを作成または削除します。 |
| 仮想マシンでスクリプトまたはコマンドを実行し、後で仮想マシンを停止または削除します。 |
|
|
|
|
| 仮想マシンインスタンスの特定のステータスを待機し、ステータスに基づいて失敗または成功します。 |
10.17.4. パイプラインの例
Tekton Tasks Operator には、次の Pipeline
マニフェストの例が含まれています。サンプルパイプラインは、Web コンソールまたは CLI を使用して実行できます。
- Windows 10 インストーラーパイプライン
- このパイプラインは、Windows インストールイメージ (ISO ファイル) から Windows 10 を新しいデータボリュームにインストールします。インストールプロセスの実行には、カスタムアンサーファイルが使用されます。
- Windows 10 カスタマイズパイプライン
- このパイプラインは、基本的な Windows 10 インストールのデータボリュームを複製し、Microsoft SQL Server Express をインストールしてカスタマイズし、新しいイメージとテンプレートを作成します。
10.17.4.1. Web コンソールを使用してサンプルパイプラインを実行する
サンプルパイプラインは、Web コンソールの Pipelines メニューから実行できます。
手順
-
サイドメニューの Pipelines
Pipelines をクリックします。 - パイプラインを選択して、Pipeline details ページを開きます。
- Actions リストから、Start を選択します。Start Pipeline ダイアログが表示されます。
- パラメーターのデフォルト値を保持し、Start をクリックしてパイプラインを実行します。Details タブでは、各タスクの進行状況が追跡され、パイプラインのステータスが表示されます。
10.17.4.2. CLI を使用してサンプルパイプラインを実行する
PipelineRun
リソースを使用して、サンプルパイプラインを実行します。PipelineRun
オブジェクトは、パイプラインの実行中のインスタンスです。これは、クラスター上の特定の入力、出力、および実行パラメーターで実行されるパイプラインをインスタンス化します。また、パイプライン内のタスクごとに TaskRun
オブジェクトを作成します。
手順
Windows 10 インストーラーパイプラインを実行するには、次の
PipelineRun
マニフェストを作成します。apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: windows10-installer-run- labels: pipelinerun: windows10-installer-run spec: params: - name: winImageDownloadURL value: <link_to_windows_10_iso> 1 pipelineRef: name: windows10-installer taskRunSpecs: - pipelineTaskName: copy-template taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template taskServiceAccountName: modify-vm-template-task - pipelineTaskName: create-vm-from-template taskServiceAccountName: create-vm-from-template-task - pipelineTaskName: wait-for-vmi-status taskServiceAccountName: wait-for-vmi-status-task - pipelineTaskName: create-base-dv taskServiceAccountName: modify-data-object-task - pipelineTaskName: cleanup-vm taskServiceAccountName: cleanup-vm-task status: {}
- 1
- Windows 10 64 ビット ISO ファイルの URL を指定します。製品の言語は英語 (米国) でなければなりません。
PipelineRun
マニフェストを適用します。$ oc apply -f windows10-installer-run.yaml
Windows 10 カスタマイズパイプラインを実行するには、次の
PipelineRun
マニフェストを作成します。apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: windows10-customize-run- labels: pipelinerun: windows10-customize-run spec: params: - name: allowReplaceGoldenTemplate value: true - name: allowReplaceCustomizationTemplate value: true pipelineRef: name: windows10-customize taskRunSpecs: - pipelineTaskName: copy-template-customize taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template-customize taskServiceAccountName: modify-vm-template-task - pipelineTaskName: create-vm-from-template taskServiceAccountName: create-vm-from-template-task - pipelineTaskName: wait-for-vmi-status taskServiceAccountName: wait-for-vmi-status-task - pipelineTaskName: create-base-dv taskServiceAccountName: modify-data-object-task - pipelineTaskName: cleanup-vm taskServiceAccountName: cleanup-vm-task - pipelineTaskName: copy-template-golden taskServiceAccountName: copy-template-task - pipelineTaskName: modify-vm-template-golden taskServiceAccountName: modify-vm-template-task status: {}
PipelineRun
マニフェストを適用します。$ oc apply -f windows10-customize-run.yaml