5.2. カスタム CA 証明書の挿入

クラスター管理者が ConfigMap を使用してカスタム CA 証明書をクラスターに追加すると、Cluster Network Operator はユーザーによってプロビジョニングされる証明書およびシステム CA 証明書を単一バンドルにマージします。このマージされたバンドルを Operator Lifecycle Manager (OLM) で実行されている Operator に挿入することができます。これは、man-in-the-middle HTTPS プロキシーがある場合に役立ちます。

前提条件

  • cluster-admin パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。
  • ConfigMap を使用してクラスターに追加されたカスタム CA 証明書。
  • 必要な Operator が OLM にインストールされ、実行される。

手順

  1. Operator の Subscription がある namespace に空の ConfigMap を作成し、以下のラベルを組み込みます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: trusted-ca 1
      labels:
        config.openshift.io/inject-trusted-cabundle: "true" 2
    1
    ConfigMap の名前。
    2
    Cluster Network Operator に対してマージされたバンドルを挿入するように要求します。

    この ConfigMap の作成後すぐに、ConfigMap にはマージされたバンドルの証明書の内容が設定されます。

  2. Operator の Subscription オブジェクトを更新し、trusted-ca ConfigMap をカスタム CA を必要とする Pod 内の各コンテナーにボリュームとしてマウントする spec.config セクションを追加します。

    kind: Subscription
    metadata:
      name: my-operator
    spec:
      package: etcd
      channel: alpha
      config: 1
      - selector:
          matchLabels:
            <labels_for_pods> 2
        volumes: 3
        - name: trusted-ca
          configMap:
            name: trusted-ca
            items:
              - key: ca-bundle.crt 4
                path: tls-ca-bundle.pem 5
        volumeMounts: 6
        - name: trusted-ca
          mountPath: /etc/pki/ca-trust/extracted/pem
          readOnly: true
    1
    config セクションがない場合に、これを追加します。
    2
    Operator が所有する Pod に一致するラベルを指定します。
    3
    trusted-ca ボリュームを作成します。
    4
    ca-bundle.crt は ConfigMap キーとして必要になります。
    5
    tls-ca-bundle.pem は ConfigMap パスとして必要になります。
    6
    trusted-ca ボリュームマウントを作成します。