第5章 ワークスペースでのクレデンシャルと設定の使用


ワークスペースでクレデンシャルと設定を使用できます。

これを行うには、組織の OpenShift Dev Spaces インスタンスの OpenShift クラスター内の DevWorkspace コンテナーにクレデンシャルと設定をマウントします。

クラスター内の DevWorkspace Pod が認証を必要とするコンテナーレジストリーにアクセスできるようにする必要がある場合は、DevWorkspace Pod の イメージプルシークレット を作成します。

マウントプロセスでは、標準の Kubernetes マウントメカニズムを使用し、既存のリソースに追加のラベルとアノテーションを適用する必要があります。新しいワークスペースを開始するとき、または既存のワークスペースを再起動するときに、リソースがマウントされます。

さまざまなコンポーネントの永続的なマウントポイントを作成できます。

  • settings.xml ファイルなどの Maven 設定
  • SSH キーペア
  • AWS 認証トークン
  • 設定ファイル
  • 永続ストレージ
  • Git 認証情報ストアファイル

5.1. Git クレデンシャルストアの使用

組織の OpenShift Dev Spaces インスタンスの管理者によって設定された GitHub、GitLab、または Bitbucket の OAuth の代わりに、Git クレデンシャルストアを Kubernetes シークレットとして適用できます。

組織の OpenShift Dev Spaces インスタンスの OpenShift クラスターのユーザープロジェクトに Kubernetes シークレットを適用します。

シークレットを適用すると、マウントされた Git クレデンシャルストアへのパスを含む Git 設定ファイルが自動的に設定され、クラスター内の /etc/gitconfig にある DevWorkspace コンテナーにマウントされます。これにより、Git クレデンシャルストアをワークスペースで利用できるようになります。

前提条件

  • 宛先 OpenShift クラスターへの管理権限を持つアクティブな oc セッション。Getting started with the CLI を参照。
  • base64 コマンドラインツールは、使用しているオペレーティングシステムにインストールされている。

手順

  1. すでにある場合は、ホームディレクトリーで .git-credentials ファイルを見つけて開きます。または、このファイルがない場合は、Git クレデンシャルストレージ形式 を使用して、新しい .git-credentials ファイルを保存します。各クレデンシャルは、ファイル内の独自の行に保存されます。

    https://<username>:<token>@<git_server_hostname>

    例5.1 .git-credentials ファイルの行

    https://trailblazer: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@github.com
  2. シークレットの .git-credentials ファイルからクレデンシャルを選択します。次の手順のために、選択したクレデンシャルを Base64 にエンコードします。

    ヒント
    • ファイル内のすべての行をエンコードするには:

      $ cat .git-credentials | base64 | tr -d '\n'

    • 選択した行をエンコードするには:

      $ echo -n '<copied_and_pasted_line_from_.git-credentials>' | base64

  3. ユーザープロジェクトに新しい OpenShift シークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: git-credentials-secret
      labels:
        controller.devfile.io/git-credential: 'true' 1
        controller.devfile.io/watch-secret: 'true'
      annotations:
        controller.devfile.io/mount-path: /etc/secret 2
    data:
      credentials: <Base64_content_of_.git-credentials> 3
    1
    controller.devfile.io/git-credential ラベルは、シークレットに Git クレデンシャルが含まれていることを示します。
    2
    DevWorkspace コンテナーのカスタム絶対パス。シークレットは、このパスに credentials ファイルとしてマウントされます。デフォルトのパスは / です。
    3
    前の手順で Base64 にエンコードした .git-credentials から選択したコンテンツ。
    ヒント

    ユーザープロジェクトで複数の Git クレデンシャルシークレットを作成して適用できます。それらはすべて、DevWorkspace コンテナーにマウントされる 1 つのシークレットにコピーされます。たとえば、マウントパスを /etc/secret に設定すると、すべての Git クレデンシャルを持つ 1 つのシークレットが /etc/secret/credentials にマウントされます。ユーザープロジェクトのすべての Git クレデンシャルシークレットを同じマウントパスに設定する必要があります。マウントパスは /etc/gitconfig で設定された Git 設定ファイルで自動的に設定されるため、マウントパスを任意のパスに設定できます。

  4. シークレットを適用します。

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.