11.3.2.3. カスタムブートソースの自動更新を有効にする
OpenShift Virtualization は、デフォルトでシステム定義のブートソースを自動的に更新しますが、カスタムブートソースは自動的に更新しません。HyperConverged カスタムリソース (CR) を編集して、自動更新を手動で有効にする必要があります。
前提条件
- クラスターにはデフォルトのストレージクラスがあります。
-
OpenShift CLI (
oc) がインストールされている。
手順
以下のコマンドを実行して、デフォルトのエディターで
HyperConvergedCR を開きます。$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv適切なテンプレートおよびブートソースを
dataImportCronTemplatesセクションで追加して、HyperConvergedCR を編集します。以下に例を示します。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: dataImportCronTemplates: - metadata: name: centos-stream9-image-cron annotations: cdi.kubevirt.io/storage.bind.immediate.requested: "true" spec: schedule: "0 */12 * * *" template: spec: source: registry: url: docker://quay.io/containerdisks/centos-stream:9 storage: resources: requests: storage: 30Gi garbageCollect: Outdated managedDataSource: centos-stream9-
spec.dataImportCronTemplates.metadata.annotations は、volumeBindingModeがWaitForFirstConsumerに設定されているストレージクラスに必要なアノテーションを指定します。 -
spec.dataImportCronTemplates.spec.schedule は、cron 形式で指定されたジョブのスケジュールを指定します。 -
spec.dataImportCronTemplates.spec.template.spec.source.registry は、データボリュームを作成するために使用するレジストリーソースを指定します。nodedocker キャッシュに基づくデフォルトのnodepullMethodではなく、デフォルトのpodpullMethodを使用します。nodedocker キャッシュはレジストリーイメージがContainer.Imageで利用可能な場合に便利ですが、CDI インポーターはこれにアクセスすることは許可されていません。 -
spec.dataImportCronTemplates.spec.managedDataSource は、管理対象データソースの名前を指定します。利用可能なブートソースとして検出するカスタムイメージの場合、イメージのmanagedDataSourceの名前が、仮想マシンテンプレート YAML ファイルのspec.dataVolumeTemplates.spec.sourceRef.nameにあるテンプレートのDataSourceの名前に一致する必要があります。
-
- ファイルを保存します。