9.6. 複数の namespace 間でデータボリュームをクローン作成するためのユーザーパーミッションの有効化
namespace には相互に分離する性質があるため、ユーザーはデフォルトでは namespace をまたがってリソースのクローンを作成することができません。
ユーザーが仮想マシンのクローンを別の namespace に作成できるようにするには、cluster-admin ロールを持つユーザーが新規のクラスターロールを作成する必要があります。このクラスターロールをユーザーにバインドし、それらのユーザーが仮想マシンのクローンを宛先 namespace に対して作成できるようにします。
9.6.1. データボリュームのクローン作成のための RBAC リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
datavolumes リソースのすべてのアクションのパーミッションを有効にする新規のくスターロールを作成します。
前提条件
- クラスター管理者権限がある。
ソース namespace とターゲット namespace の両方の管理者である非管理者ユーザーの場合は、必要に応じて ClusterRole の代わりに Role を作成できます。
手順
ClusterRoleマニフェストを作成します。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <datavolume-cloner>1 rules: - apiGroups: ["cdi.kubevirt.io"] resources: ["datavolumes/source"] verbs: ["*"]- 1
- クラスターロールの一意の名前。
クラスターにクラスターロールを作成します。
$ oc create -f <datavolume-cloner.yaml>1 - 1
- 直前の手順で作成された
ClusterRoleマニフェストのファイル名です。
移行元および宛先 namespace の両方に適用される
RoleBindingマニフェストを作成し、直前の手順で作成したクラスターロールを参照します。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-cloner4 apiGroup: rbac.authorization.k8s.ioクラスターにロールバインディングを作成します。
$ oc create -f <datavolume-cloner.yaml>1 - 1
- 直前の手順で作成された
RoleBindingマニフェストのファイル名です。