This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第6章 ワークスペースでのクレデンシャルと設定の使用
ワークスペースでクレデンシャルと設定を使用できます。
これを行うには、組織の OpenShift Dev Spaces インスタンスの OpenShift クラスター内の Dev Workspace コンテナーにクレデンシャルと設定をマウントします。
- クレデンシャルと機密性の高い設定を Kubernetes シークレット としてマウントします。
- 機密性のない設定を Kubernetes ConfigMaps としてマウントします。
クラスター内の Dev Workspace Pod が認証を必要とするコンテナーレジストリーにアクセスできるようにする必要がある場合は、Dev Workspace Pod の イメージプルシークレット を作成します。
マウントプロセスでは、標準の Kubernetes マウントメカニズムを使用し、既存のリソースに追加のラベルとアノテーションを適用する必要があります。新しいワークスペースを開始するとき、または既存のワークスペースを再起動するときに、リソースがマウントされます。
さまざまなコンポーネントの永続的なマウントポイントを作成できます。
6.1. Git 資格情報の使用 リンクのコピーリンクがクリップボードにコピーされました!
組織の OpenShift Dev Spaces インスタンスの管理者によって設定された GitHub、GitLab、または Bitbucket の OAuth の代わりに、Git 認証情報、認証情報ストア、およびアクセストークンを Kubernetes シークレットとして適用できます。
6.1.1. Git クレデンシャルストアの使用 リンクのコピーリンクがクリップボードにコピーされました!
組織の OpenShift Dev Spaces インスタンスの管理者が GitHub、GitLab、または Bitbucket に対して OAuth を設定していない場合は、Git 認証情報ストアを Kubernetes Secret として適用できます。
Git 資格情報ストアを Secret としてマウントすると、Dev Workspace Operator が Git 資格情報をワークスペースコンテナー内の .gitconfig ファイルに適用します。
組織の OpenShift Dev Spaces インスタンスの OpenShift クラスターのユーザープロジェクトに Kubernetes シークレットを適用します。
シークレットを適用すると、マウントされた Git クレデンシャルストアへのパスを含む Git 設定ファイルが自動的に設定され、クラスター内の /etc/gitconfig にある Dev Workspace コンテナーにマウントされます。これにより、Git クレデンシャルストアをワークスペースで利用できるようになります。
前提条件
手順
すでにある場合は、ホームディレクトリーで
.git-credentialsファイルを見つけて開きます。または、このファイルがない場合は、Git クレデンシャルストレージ形式 を使用して、新しい.git-credentialsファイルを保存します。各クレデンシャルは、ファイル内の独自の行に保存されます。https://<username>:<token>@<git_server_hostname>
https://<username>:<token>@<git_server_hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例6.1
.git-credentialsファイルの行https://trailblazer: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@github.com
https://trailblazer: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@github.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットの
.git-credentialsファイルからクレデンシャルを選択します。次の手順のために、選択したクレデンシャルを Base64 にエンコードします。ヒントファイル内のすべての行をエンコードするには:
$ cat .git-credentials | base64 | tr -d '\n'選択した行をエンコードするには:
$ echo -n '<copied_and_pasted_line_from_.git-credentials>' | base64
ユーザープロジェクトに新しい OpenShift シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントユーザープロジェクトで複数の Git クレデンシャルシークレットを作成して適用できます。それらはすべて、
Dev Workspaceコンテナーにマウントされる 1 つのシークレットにコピーされます。たとえば、マウントパスを/etc/secretに設定すると、すべての Git クレデンシャルを持つ 1 つのシークレットが/etc/secret/credentialsにマウントされます。ユーザープロジェクトのすべての Git クレデンシャルシークレットを同じマウントパスに設定する必要があります。マウントパスは/etc/gitconfigで設定された Git 設定ファイルで自動的に設定されるため、マウントパスを任意のパスに設定できます。シークレットを適用します。
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. Git プロバイダーアクセストークンの使用 リンクのコピーリンクがクリップボードにコピーされました!
組織の OpenShift Dev Spaces インスタンスの管理者が GitHub、GitLab、または Bitbucket に対して OAuth を設定していない場合、個人のアクセストークンを Kubernetes Secret として適用できます。
アクセストークンを Secret としてマウントすると、OpenShift Dev Spaces サーバーは、リポジトリーの /.che および /.vscode フォルダーへのアクセスを含め、ワークスペースの作成中に複製されたリモートリポジトリーにアクセスできます。
組織の OpenShift Dev Spaces インスタンスの OpenShift クラスターのユーザープロジェクトに Kubernetes シークレットを適用します。
シークレットを適用したら、プライベート GitHub、GitLab、または Bitbucket-server リポジトリーから新しいワークスペースを作成できます。
ユーザープロジェクトでは、Git プロバイダーごとに複数のアクセストークンシークレットを作成して適用できます。
前提条件
手順
アクセストークンをコピーし、Base64 にエンコードします。
echo -n '<your_access_token>' | base64
$ echo -n '<your_access_token>' | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザープロジェクトで新しい OpenShift シークレットを準備します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- OpenShift Dev Spaces ユーザー ID。
<che_endpoint>/api/userを取得して、OpenShift Dev Spaces ユーザーデータを取得できます。 - 2
- Git プロバイダー名:
githubまたはgitlabまたはbitbucket-server。 - 3
- Git プロバイダーの URL。
- 4
- Git プロバイダーのユーザー ID。API ドキュメントに従ってユーザーオブジェクトを取得します。
-
GitHub: ユーザーを取得します。レスポンスの
id値を参照してください。 -
GitLab: ユーザーの一覧表示: 通常のユーザー の場合は、
usernameフィルターを使用します:/users?username=:username。レスポンスのid値を参照してください。 -
Bitbucket Server: ユーザーを取得します。レスポンスの
id値を参照してください。
-
GitHub: ユーザーを取得します。レスポンスの
シークレットを適用します。
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow