1.2. namespace 間での ConfigMap オブジェクトの共有
ConfigMap オブジェクトには、URL や機能フラグなどの機密性の低いデータが格納されます。SharedConfigMap カスタムリソース (CR) を使用することで、名前空間間で ConfigMap オブジェクトを重複なく共有でき、単一の設定ソースを提供し、クラスター全体で一貫性を確保できます。
1.2.1. SharedConfigMap カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap オブジェクトを複数の名前空間間で共有するために、SharedConfigMap カスタムリソース (CR) を作成します。SharedConfigMap カスタムリソース (CR) を作成することで、設定データを名前空間間で共有し、機密性の高い設定データがクラスター全体で一貫してアクセス可能であることを保証できます。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
- 管理者として OpenShift Container Platform クラスターにログインしている。
-
他の namespace で共有する
ConfigMapオブジェクトを作成した。ConfigMapオブジェクトを作成するには、「入力シークレットおよび ConfigMap の追加」を参照してください。 次の操作を実行するための権限がある。
-
クラスタースコープレベルで
sharedconfigmaps.sharedresource.openshift.ioCR を作成する。 -
SharedConfigMapCR のClusterRoleオブジェクトを作成する。 -
Shared Resource Container Storage Interface (CSI) Driver の
RoleおよびRoleBindingオブジェクトを作成する。 - インスタンスを取得、リスト表示、監視できるユーザーを制御するために、クラスター内の namespace 全体のロールとロールバインディングを管理する。
-
Pod によって指定されたサービスアカウントが、
SharedConfigMapCR を使用して、ConfigMapオブジェクトを参照するcsiボリュームをマウントできるように、ロールとロールバインディングを管理する。 -
共有する
ConfigMapオブジェクトが含まれている namespace にアクセスする。
-
クラスタースコープレベルで
手順
Shared Resource CSI Driver に
ConfigMapオブジェクトへのアクセス権を付与するためのRoleおよびRoleBindingオブジェクトを作成します。次の設定例を参照してください。Roleオブジェクトの例apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: shared-test-config namespace: <name_of_the_source_namespace> rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["shared-config"] verbs: ["get", "list", "watch"]各項目の説明:
< ソース名前空間の名前 >- ソースネームスペースの名前を指定します。
RoleBindingオブジェクトの例apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: shared-test-config namespace: <name_of_the_source_namespace> roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: shared-test-config subjects: - kind: ServiceAccount name: csi-driver-shared-resource namespace: openshift-builds各項目の説明:
< ソース名前空間の名前 >- ソースネームスペースの名前を指定します。
subjects-
Shared Resource CSI Driver DaemonSet 用のサービスアカウントのリストを指定します。builds for Red Hat OpenShift でデプロイされた場合、サービスアカウント名は
csi-driver-shared-resourceになり、namespace は Builds for Red Hat OpenShift Operator がデプロイされている namespace と同じになります。
クラスター内の namespace 間で共有する
ConfigMapオブジェクト用のSharedConfigMapCR を作成します。次の例はサンプル設定を示しています。apiVersion: sharedresource.openshift.io/v1alpha1 kind: SharedConfigMap metadata: name: share-test-config spec: configMapRef: name: shared-config namespace: <name_of_the_source_namespace>各項目の説明:
metadata.name-
SharedConfigMapCR の名前を指定します。 < ソース名前空間の名前 >- ソースネームスペースの名前を指定します。
参照される共有リソースを使用するためのロールベースアクセス制御 (RBAC) 権限を付与する
ClusterRoleCR インスタンスを作成します。次の例はサンプル設定を示しています。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: <cluster_role_name> rules: - apiGroups: - sharedresource.openshift.io resources: - sharedconfigmaps resourceNames: - share-test-config verbs: - use各項目の説明:
<cluster_role_name>- クラスターロールの名前を指定します。
ルール.リソース名-
SharedConfigMapCR の名前を定義します。
検証
必要な
ロールが作成されていることを確認するには、次のコマンドを実行してください。$ oc get role share-etc-pki-entitlement -n openshift-config-managed出力例
NAME CREATED AT share-etc-pki-entitlement 2025-11-19T12:05:32Z必要な
RoleBindingが作成されていることを確認するには、次のコマンドを実行してください。$ oc get rolebinding share-etc-pki-entitlement -n openshift-config-managed出力例
NAME ROLE AGE share-etc-pki-entitlement Role/share-etc-pki-entitlement 2m必要な
ClusterRoleが作成されていることを確認するには、次のコマンドを実行してください。$ oc get clusterrole use-shared-test-secret出力例
NAME CREATED AT use-shared-test-secret 2025-11-19T12:05:44Z