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 テンプレートを使用してプラグインレジストリーをデプロイするには、以下のコマンドを実行します。
NAMESPACE=<namespace-name> 1 IMAGE_NAME="my-plug-in-registry" IMAGE_TAG="latest" oc new-app -f openshift/che-plugin-registry.yml \ -n "$\{NAMESPACE}" \ -p IMAGE="$\{IMAGE_NAME}" \ -p IMAGE_TAG="$\{IMAGE_TAG}" \ -p PULL_POLICY="Always"
- 1
- crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは
openshift-workspaces
になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。
devfile レジストリーには、GitHub リポジトリーの
deploy/openshift/
ディレクトリーに OpenShift テンプレートがあります。これをデプロイするには、以下のコマンドを実行します。NAMESPACE=<namespace-name> 1 IMAGE_NAME="my-devfile-registry" IMAGE_TAG="latest" oc new-app -f openshift/che-devfile-registry.yml \ -n "$\{NAMESPACE}" \ -p IMAGE="$\{IMAGE_NAME}" \ -p IMAGE_TAG="$\{IMAGE_TAG}" \ -p PULL_POLICY="Always"
- 1
- crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは
openshift-workspaces
になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。
検証手順
<plug-in> プラグインはプラグインレジストリーで利用できます。
例3.5 プラグインレジストリー 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>")'
<devfile> devfile は devfile レジストリーで利用できます。
例3.6 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>")'
CodeReady Workspaces サーバーはプラグインレジストリーの URL を参照します。
例3.7
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
プラグインレジストリールートの URL を取得します。
$ oc get route -l app=che,component=plugin-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
CodeReady Workspaces サーバーは devfile レジストリーの URL を参照します。
例3.8
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
devfile レジストリールートの URL を取得します。
$ oc get route -l app=che,component=devfile-registry \ -o 'custom-columns=URL: .spec.host' --no-headers
値が一致しない場合は、ConfigMap を更新し、CodeReady Workspaces サーバーを再起動します。
$ oc edit cm/codeready (...) $ oc scale --replicas=0 deployment/codeready $ oc scale --replicas=1 deployment/codeready
プラグインは以下で使用できます。
- ワークスペースの詳細の Devfile タブの chePlugin コンポーネントの補完
- ワークスペースの Plugin Che-Theia ビュー
- devfile は、ユーザーダッシュボードの Get Started および Create Custom Workspace タブで利用できます。