2.5. マウントされたシークレットを使用するための GitOps 管理リソースの設定


ボリュームマウント設定をデプロイメントに追加し、マウントされたシークレットを使用するようにコンテナー Pod を設定して、GitOps 管理リソースを設定する必要があります。

前提条件

  • GitOps リポジトリーに AWS Secrets Manager リソースが保存されている。
  • AWS Secrets Manager からシークレットをマウントするように Secrets Store Container Storage Interface (SSCSI) ドライバーが設定されている。

手順

  1. GitOps 管理リソースを設定します。たとえば、app-taxi アプリケーションのデプロイメントにボリュームのマウント設定を追加し、100-deployment.yaml ファイルが /environments/dev/apps/app-taxi/services/taxi/base/config/ ディレクトリーにあるとします。

    1. デプロイメント YAML ファイルにボリュームマウントを追加し、シークレットプロバイダークラスリソースおよびマウントされたシークレットを使用するようにコンテナー Pod を設定します。

      サンプル YAML ファイル

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: taxi
        namespace: dev 1
      spec:
        replicas: 1
        template:
          metadata:
      # ...
          spec:
            containers:
              - image: nginxinc/nginx-unprivileged:latest
                imagePullPolicy: Always
                name: taxi
                ports:
                  - containerPort: 8080
                volumeMounts:
                  - name: secrets-store-inline
                    mountPath: "/mnt/secrets-store" 2
                    readOnly: true
                resources: {}
          serviceAccountName: default
          volumes:
            - name: secrets-store-inline
              csi:
                driver: secrets-store.csi.k8s.io
                readOnly: true
                volumeAttributes:
                  secretProviderClass: "my-aws-provider" 3
          status: {}
      # ...

      1
      デプロイメントの namespace。これは、シークレットプロバイダークラスと同じ namespace である必要があります。
      2
      ボリュームマウントにシークレットをマウントするパス。
      3
      シークレットプロバイダークラスの名前。
    2. 更新されたリソース YAML ファイルを GitOps リポジトリーにプッシュします。
  2. Argo CD UI で、ターゲットアプリケーションページで REFRESH をクリックし、更新されたデプロイメントマニフェストを適用します。
  3. ターゲットアプリケーションページですべてのリソースが正常に同期されていることを確認します。
  4. Pod ボリュームマウントの AWS Secrets Manager からシークレットにアクセスできることを確認します。

    1. Pod マウント内のシークレットをリスト表示します。

      $ oc exec <deployment_name>-<hash> -n <namespace> -- ls /mnt/secrets-store/

      コマンドの例

      $ oc exec taxi-5959644f9-t847m -n dev -- ls /mnt/secrets-store/

      出力例

      <secret_name>

    2. Pod マウントのシークレットを表示します。

      $ oc exec <deployment_name>-<hash> -n <namespace> -- cat /mnt/secrets-store/<secret_name>

      コマンドの例

      $ oc exec taxi-5959644f9-t847m -n dev -- cat /mnt/secrets-store/testSecret

      出力例

      <secret_value>

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.