7.13. 仮想マシンのクローン作成
7.13.1. 複数の namespace 間で DataVolume をクローン作成するためのユーザーパーミッションの有効化
namespace には相互に分離する性質があるため、ユーザーはデフォルトでは namespace をまたがってリソースのクローンを作成することができません。
ユーザーが仮想マシンのクローンを別の namespace に作成できるようにするには、cluster-admin
ロールを持つユーザーが新規の ClusterRole を作成する必要があります。この ClusterRole をユーザーにバインドし、それらのユーザーが仮想マシンのクローンを宛先 namespace に対して作成できるようにします。
7.13.1.1. 前提条件
-
cluster-admin
ロールを持つユーザーのみが ClusterRole を作成できます。
7.13.1.2. DataVolume について
DataVolume
オブジェクトは、Containerized Data Importer (CDI) プロジェクトで提供されるカスタムリソースです。DataVolume は、基礎となる PersistentVolumeClaim (PVC) に関連付けられるインポート、クローン作成、およびアップロード操作のオーケストレーションを行います。DataVolume は KubeVirt に統合され、仮想マシンが PVC の作成前に起動することを防ぎます。
7.13.1.3. DataVolume のクローン作成のための RBAC リソースの作成
datavolumes
リソースのすべてのアクションのパーミッションを有効にする新規の ClusterRole を作成します。
手順
ClusterRole マニフェストを作成します。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <datavolume-cloner> 1 rules: - apiGroups: ["cdi.kubevirt.io"] resources: ["datavolumes/source"] verbs: ["*"]
- 1
- ClusterRole の一意の名前。
クラスターに ClusterRole を作成します。
$ oc create -f <datavolume-cloner.yaml> 1
- 1
- 直前の手順で作成された ClusterRole マニフェストのファイル名です。
移行元および宛先 namespace の両方に適用される RoleBinding マニフェストを作成し、直前の手順で作成した ClusterRole を参照します。
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: <allow-clone-to-user> 1 namespace: <Source namespace> 2 subjects: - kind: ServiceAccount name: default namespace: <Destination namespace> 3 roleRef: kind: ClusterRole name: datavolume-cloner 4 apiGroup: rbac.authorization.k8s.io
クラスターに RoleBinding を作成します。
$ oc create -f <datavolume-cloner.yaml> 1
- 1
- 直前の手順で作成された RoleBinding マニフェストのファイル名です。