1.4.2. サブスクリプション管理者権限の付与
サブスクリプションの管理者権限を付与する方法について説明します。サブスクリプション 管理者は、デフォルトの動作を変更できます。詳細は、以下のプロセスを参照してください。
- コンソールから OpenShift Container Platform クラスターにログインします。
ユーザーを 1 つ以上作成します。ユーザー作成の詳細は、ユーザー向けの準備 を参照してください。グループまたはサービスアカウントを用意することもできます。
app.open-cluster-management.io/subscriptionアプリケーションの管理者として、ユーザーを作成します。OpenShift Container Platform では、サブスクリプション 管理者はデフォルトの動作を変更できます。これらのユーザーをグループ化してサブスクリプション管理グループを表すことができます。これについては、後ほど例説します。- ターミナルから、Red Hat Advanced Cluster Management クラスターにログインします。
open-cluster-management:subscription-adminClusterRoleBinding が存在しない場合は作成する必要があります。以下の例を参照してください。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: open-cluster-management:subscription-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: open-cluster-management:subscription-admin以下のコマンドで、次のサブジェクトを
open-cluster-management:subscription-adminClusterRoleBinding に追加します。oc edit clusterrolebinding open-cluster-management:subscription-admin注記:
open-cluster-management:subscription-adminClusterRoleBinding にはサブジェクトは初期設定されていません。サブジェクトは以下の例のように表示されます。
subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: example-name - apiGroup: rbac.authorization.k8s.io kind: Group name: example-group-name # Service Account can be used as a user subject as well - apiGroup: rbac.authorization.k8s.io kind: User name: 'system:serviceaccount:my-service-account-namespace:my-service-account'
1.4.2.1. サブスクリプション管理者としての許可リストの作成および拒否リストの作成 リンクのコピーリンクがクリップボードにコピーされました!
サブスクリプション管理者は、Git リポジトリーまたはオブジェクトストレージアプリケーションのサブスクリプションからアプリケーションを作成し、allow list を使用して、指定された Kubernetes kind リソースのみのデプロイメントを可能にします。アプリケーションサブスクリプションに deny list を作成して、特定の Kubernetes kind リソースのデプロイメントを拒否することもできます。
デフォルトでは、policy.open-cluster-management.io/v1 リソースはアプリケーションサブスクリプションによってデプロイされません。このデフォルトの動作を回避するには、サブスクリプション管理者がアプリケーションサブスクリプションをデプロイする必要があります。
以下の allow および deny 仕様の例を参照してください。
apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
annotations:
apps.open-cluster-management.io/github-path: sub2
name: demo-subscription
namespace: demo-ns
spec:
channel: demo-ns/somechannel
allow:
- apiVersion: policy.open-cluster-management.io/v1
kinds:
- Policy
- apiVersion: v1
kinds:
- Deployment
deny:
- apiVersion: v1
kinds:
- Service
- ConfigMap
placement:
local: true
以下のアプリケーションサブスクリプション YAML は、ソースリポジトリーの myapplication ディレクトリーからアプリケーションがデプロイされると、ソースリポジトリーに他のリソースがある場合でも v1/Deployment リソースのみをデプロイすることを指定します。
apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
annotations:
apps.open-cluster-management.io/github-path: myapplication
name: demo-subscription
namespace: demo-ns
spec:
channel: demo-ns/somechannel
deny:
- apiVersion: v1
kinds:
- Service
- ConfigMap
placement:
placementRef:
name: demo-placement
kind: PlacementRule
このアプリケーションのサブスクリプション YAML は、v1/Service および v1/ConfigMap リソース以外のすべての有効なリソースのデプロイを指定します。API グループ内に個別のリソースの種類を一覧表示する代わりに、"*" を追加して、API グループのすべてのリソースの種類を許可または拒否できます。