3.9. シークレットをファイルまたは環境変数としてワークスペースコンテナーにマウント


シークレットとは、ユーザー名、パスワード、認証トークン、および設定などの機密データを暗号化された形式で保存する OpenShift オブジェクトです。

ユーザーはワークスペースコンテナーに機密データが含まれるシークレットをマウントできます。これにより、新規作成されたすべてのワークスペースにシークレットから保存されたデータが自動的に適用されます。そのため、ユーザーはこれらの認証情報と設定を手動で指定する必要はありません。

以下のセクションでは、OpenShift シークレットをワークスペースコンテナーに自動的にマウントし、以下のようなコンポーネントの永続的なマウントポイントを作成する方法を説明します。

  • Maven 設定の settings.xml ファイル
  • SSH 鍵のペア
  • AWS 認証トークン
  • Git クレデンシャルストアファイル

OpenShift シークレットは、以下のようにワークスペースコンテナーにマウントできます。

  • ファイル: これにより、Maven 機能を持つ新しいワークスペースすべてに適用される Maven 設定が自動的にマウントされます。
  • 環境変数: 自動認証に SSH キーペアと AWS 認証トークンを使用します。

    注記

    SSH キーペアはファイルとしてマウントすることもできますが、この形式は主に Maven 設定の設定を目的としています。

マウントプロセスは標準の OpenShift マウントメカニズムを使用しますが、必要な CodeReady Workspaces ワークスペースコンテナーでシークレットを適切にバインドするために追加のアノテーションおよびラベル付けが必要になります。

3.9.1. シークレットをファイルとしてワークスペースコンテナーにマウント

警告

ファイルとしてマウントされたシークレットが v1.13 より古い OpenShift では、devfile で定義されたボリュームマウントが上書きされます。

本セクションでは、CodeReady Workspaces のシングルワークスペースまたは複数ワークスペースコンテナーで、ユーザーのプロジェクトからシークレットをファイルとしてマウントする方法を説明します。

前提条件

手順

  1. CodeReady Workspaces ワークスペースが作成される OpenShift プロジェクトで、新しい OpenShift シークレットを作成します。

    • 作成するシークレットのラベルは、CodeReady Workspaces の che.workspace.provision.secret.labels プロパティーで設定されたラベルのセットと一致する必要があります。デフォルトのラベルは以下のとおりです。
    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: workspace-secret:

      注記

      以下の例は、Red Hat CodeReady Workspaces バージョン 2.1 および 2.2 での target-container アノテーションの使用における違いを説明します。

      たとえば、以下のようになります。

      apiVersion: v1
      kind: Secret
      metadata:
        name: mvn-settings-secret
        labels:
          app.kubernetes.io/part-of: che.eclipse.org
          app.kubernetes.io/component: workspace-secret
      ...

      アノテーションは、指定のシークレットがファイルとしてマウントされ、マウントパスを提供することを示し、必要に応じてシークレットがマウントされるコンテナーの名前を指定する必要があります。target-container アノテーションがない場合、シークレットは CodeReady Workspaces ワークスペースのすべてのユーザーコンテナーにマウントされますが、これは CodeReady Workspaces バージョン 2.1 にのみ適用さ れます。

      apiVersion: v1
      kind: Secret
      metadata:
        name: mvn-settings-secret
        annotations:
          che.eclipse.org/target-container: maven
          che.eclipse.org/mount-path: /home/user/.m2/
          che.eclipse.org/mount-as: file
        labels:
      ...

      CodeReady Workspaces バージョン 2.2 以降target-container アノテーションは非推奨となり、ブール値で automount-workspace-secret アノテーションが導入されました。この目的は、devfile でオーバーライドする機能を使用して、デフォルトのシークレットマウント動作を定義することです。true を指定すると、すべてのワークスペースコンテナーへの自動マウントが有効になります。一方、false の値は、automountWorkspaceSecrets :true プロパティーを使用して devfile コンポーネントで明示的に要求されるまでマウントプロセスを無効にします。

      apiVersion: v1
      kind: Secret
      metadata:
        name: mvn-settings-secret
        annotations:
          che.eclipse.org/automount-workspace-secret: true
          che.eclipse.org/mount-path: /home/user/.m2/
          che.eclipse.org/mount-as: file
        labels:
      ...

      Kubernetes シークレットのデータには、コンテナーにマウントされる必要なファイル名に一致する複数の項目が含まれる場合があります。

      apiVersion: v1
      kind: Secret
      metadata:
        name: mvn-settings-secret
        labels:
          app.kubernetes.io/part-of: che.eclipse.org
          app.kubernetes.io/component: workspace-secret
        annotations:
          che.eclipse.org/automount-workspace-secret: true
          che.eclipse.org/mount-path: /home/user/.m2/
          che.eclipse.org/mount-as: file
      data:
        settings.xml: <base64 encoded data content here>

      これにより、settings.xml という名前のファイルが、すべてのワークスペースコンテナーの /home/user/.m2/ パスにマウントされます。

      secret-s マウントパスは、devfile を使用してワークスペースの特定コンポーネントで上書きできます。マウントパスを変更するには、追加のボリュームを devfile のコンポーネントで宣言し、名前がオーバーライドされたシークレット名と必要なマウントパスで宣言する必要があります。

      apiVersion: 1.0.0
      metadata:
        ...
      components:
       - type: dockerimage
         alias: maven
         image: maven:3.11
         volumes:
           - name: <secret-name>
             containerPath: /my/new/path
         ...

      このようなオーバーライドでは、コンポーネントはエイリアスを宣言して、それらのコンテナーに属するコンテナーを区別し、それらのコンテナー専用にオーバーライドパスを適用することができることに注意してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る