3.3. カスタムレジストリーの実行
前提条件
このセクションで使用される my-plug-in-registry
イメージおよび my-devfile-registry
イメージは、docker
コマンドを使用して構築されます。このセクションでは、これらのイメージが CodeReady Workspaces がデプロイされている OpenShift クラスターで利用できることを想定しています。
これらのイメージは以下にプッシュできます。
-
quay.io
または DockerHub などのパブリックコンテナーレジストリー。 - プライベートレジストリー
3.3.1. OpenShift でのレジストリーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
手順
プラグインレジストリーをデプロイする OpenShift テンプレートは、GitHub リポジトリーの deploy/openshift/
ディレクトリーで利用できます。
OpenShift テンプレートを使用してプラグインレジストリーをデプロイするには、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは
openshift-workspaces
になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。
devfile レジストリーには、GitHub リポジトリーの
deploy/openshift/
ディレクトリーに OpenShift テンプレートがあります。これをデプロイするには、以下のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは
openshift-workspaces
になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。
検証手順
<plug-in> プラグインはプラグインレジストリーで利用できます。
例3.3 プラグインレジストリー API を要求する <plug-in> を検索します。
URL=$(oc get route -l app=che,component=plugin-registry \ -o 'custom-columns=URL:.spec.host' --no-headers) INDEX_JSON=$(curl -sSL http://${URL}/v3/plugins/index.json) echo ${INDEX_JSON} | jq '.[] | select(.name == "<plug-in>")'
$ URL=$(oc get route -l app=che,component=plugin-registry \ -o 'custom-columns=URL:.spec.host' --no-headers) $ INDEX_JSON=$(curl -sSL http://${URL}/v3/plugins/index.json) $ echo ${INDEX_JSON} | jq '.[] | select(.name == "<plug-in>")'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <devfile> devfile は devfile レジストリーで利用できます。
例3.4 devfile レジストリー API を要求する <devfile> を検索します。
URL=$(oc get route -l app=che,component=devfile-registry \ -o 'custom-columns=URL:.spec.host' --no-headers) INDEX_JSON=$(curl -sSL http://${URL}/v3/plugins/index.json) echo ${INDEX_JSON} | jq '.[] | select(.name == "<devfile>")'
$ URL=$(oc get route -l app=che,component=devfile-registry \ -o 'custom-columns=URL:.spec.host' --no-headers) $ INDEX_JSON=$(curl -sSL http://${URL}/v3/plugins/index.json) $ echo ${INDEX_JSON} | jq '.[] | select(.name == "<devfile>")'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CodeReady Workspaces サーバーはプラグインレジストリーの URL を参照します。
例3.5
che
ConfigMap のCHE_WORKSPACE_PLUGIN__REGISTRY__URL
パラメーターの値をプラグインレジストリールートの URL と比較します。che
ConfigMap のCHE_WORKSPACE_PLUGIN__REGISTRY__URL
パラメーターの値を取得します。oc get cm/che \ -o "custom-columns=URL:.data['CHE_WORKSPACE_PLUGIN__REGISTRY__URL']" \ --no-headers
$ oc get cm/che \ -o "custom-columns=URL:.data['CHE_WORKSPACE_PLUGIN__REGISTRY__URL']" \ --no-headers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインレジストリールートの URL を取得します。
oc get route -l app=che,component=plugin-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
$ oc get route -l app=che,component=plugin-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CodeReady Workspaces サーバーは devfile レジストリーの URL を参照します。
例3.6
che
ConfigMap のCHE_WORKSPACE_DEVFILE__REGISTRY__URL
パラメーターの値を devfile レジストリールートの URL と比較します。che
ConfigMap のCHE_WORKSPACE_DEVFILE__REGISTRY__URL
パラメーターの値を取得します。oc get cm/che \ -o "custom-columns=URL:.data['CHE_WORKSPACE_DEVFILE__REGISTRY__URL']" \ --no-headers
$ oc get cm/che \ -o "custom-columns=URL:.data['CHE_WORKSPACE_DEVFILE__REGISTRY__URL']" \ --no-headers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow devfile レジストリールートの URL を取得します。
oc get route -l app=che,component=devfile-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
$ oc get route -l app=che,component=devfile-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 値が一致しない場合は、ConfigMap を更新し、CodeReady Workspaces サーバーを再起動します。
oc edit cm/codeready oc scale --replicas=0 deployment/codeready oc scale --replicas=1 deployment/codeready
$ oc edit cm/codeready (...) $ oc scale --replicas=0 deployment/codeready $ oc scale --replicas=1 deployment/codeready
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
プラグインは以下で使用できます。
- ワークスペースの詳細の Devfile タブの chePlugin コンポーネントの補完
- ワークスペースの Plugin Che-Theia ビュー
- devfile は、ユーザーダッシュボードの Create Workspace ページの Quick Add および Custom Workspace タブで利用できます。