9.3.2. カスタムブートソースの更新の管理
OpenShift Virtualization によって提供されていない カスタム ブートソースは、機能ゲートによって制御されません。HyperConverged カスタムリソース (CR) を編集して、それらを個別に管理する必要があります。
ストレージクラスを設定する必要があります。そうしないと、クラスターはカスタムブートソースの自動更新を受信できません。詳細は、ストレージクラスの定義 を参照してください。
9.3.2.1. カスタムブートソース更新用のストレージクラスの設定 リンクのコピーリンクがクリップボードにコピーされました!
HyperConverged カスタムリソース (CR) を編集することで、デフォルトのストレージクラスをオーバーライドできます。
ブートソースは、デフォルトのストレージクラスを使用してストレージから作成されます。クラスターにデフォルトのストレージクラスがない場合は、カスタムブートソースの自動更新を設定する前に、デフォルトのストレージクラスを定義する必要があります。
手順
以下のコマンドを実行して、デフォルトのエディターで
HyperConvergedCR を開きます。$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvstorageClassNameフィールドに値を入力して、新しいストレージクラスを定義します。apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: dataImportCronTemplates: - metadata: name: rhel8-image-cron spec: template: spec: storageClassName: <new_storage_class> schedule: "0 */12 * * *" managedDataSource: <data_source> # ...-
spec.dataImportCronTemplates.spec.template.spec.storageClassName はストレージクラスを指定します。 -
spec.dataImportCronTemplates.spec.scheduleは、cron 形式でジョブのスケジュールを指定する必須フィールドです。 spec.dataImportCronTemplates.spec.managedDataSourceは、使用するデータソースを指定する必須フィールドです。注記カスタムイメージが使用可能なブートソースとして検出されるためには、仮想マシンテンプレート内の
spec.dataVolumeTemplates.spec.sourceRef.nameパラメーターの値がこの値と一致する必要があります。
-
現在のデフォルトのストレージクラスから
storageclass.kubernetes.io/is-default-classアノテーションを削除します。次のコマンドを実行して、現在のデフォルトのストレージクラスの名前を取得します。
$ oc get storageclass出力例
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE csi-manila-ceph manila.csi.openstack.org Delete Immediate false 11d hostpath-csi-basic (default) kubevirt.io.hostpath-provisioner Delete WaitForFirstConsumer false 11dこの例では、現在のデフォルトのストレージクラスの名前は
hostpath-csi-basicです。次のコマンドを実行して、現在のデフォルトのストレージクラスからアノテーションを削除します。
$ oc patch storageclass <current_default_storage_class> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'<current_default_storage_class>をデフォルトのストレージクラスのstorageClassName値に置き換えます。
次のコマンドを実行して、新しいストレージクラスをデフォルトとして設定します。
$ oc patch storageclass <new_storage_class> -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'<new_storage_class>をHyperConvergedCR に追加したstorageClassName値に置き換えます。