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.io CR を作成する。
    • SharedConfigMap CR の ClusterRole オブジェクトを作成する。
    • Shared Resource Container Storage Interface (CSI) Driver の Role および RoleBinding オブジェクトを作成する。
    • インスタンスを取得、リスト表示、監視できるユーザーを制御するために、クラスター内の namespace 全体のロールとロールバインディングを管理する。
    • Pod によって指定されたサービスアカウントが、SharedConfigMap CR を使用して、ConfigMap オブジェクトを参照する csi ボリュームをマウントできるように、ロールとロールバインディングを管理する。
    • 共有する ConfigMap オブジェクトが含まれている namespace にアクセスする。

手順

  1. 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 と同じになります。
  2. クラスター内の namespace 間で共有する ConfigMap オブジェクト用の SharedConfigMap CR を作成します。次の例はサンプル設定を示しています。

    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
    SharedConfigMap CR の名前を指定します。
    < ソース名前空間の名前 >
    ソースネームスペースの名前を指定します。
  3. 参照される共有リソースを使用するためのロールベースアクセス制御 (RBAC) 権限を付与する ClusterRole CR インスタンスを作成します。次の例はサンプル設定を示しています。

    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>
    クラスターロールの名前を指定します。
    ルール.リソース名
    SharedConfigMap CR の名前を定義します。

検証

  1. 必要な ロール が作成されていることを確認するには、次のコマンドを実行してください。

    $ oc get role share-etc-pki-entitlement -n openshift-config-managed

    出力例

    NAME                        CREATED AT
    share-etc-pki-entitlement   2025-11-19T12:05:32Z

  2. 必要な 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

  3. 必要な ClusterRole が作成されていることを確認するには、次のコマンドを実行してください。

    $ oc get clusterrole use-shared-test-secret

    出力例

    NAME                     CREATED AT
    use-shared-test-secret   2025-11-19T12:05:44Z

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る