3.3. カスタムレジストリーの実行


前提条件

本セクションで使用される my-plug-in-registry および my-devfile-registry イメージは、docker コマンドを使用してビルドされます。このセクションでは、これらのイメージが CodeReady Workspaces がデプロイされている OpenShift クラスターで利用できることを想定しています。

これらのイメージは以下にプッシュできます。

  • quay.io または DockerHub などのパブリックコンテナーレジストリー。
  • プライベートレジストリー

3.3.1. OpenShift でのレジストリーのデプロイ

手順

プラグインレジストリーをデプロイする OpenShift テンプレートは、GitHub リポジトリーの deploy/openshift/ ディレクトリーで利用できます。

  1. 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"
    Copy to Clipboard Toggle word wrap
    1
    crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは openshift-workspaces になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。
  2. 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"
    Copy to Clipboard Toggle word wrap
    1
    crwctl を使用してインストールされている場合、デフォルトの CodeReady Workspaces プロジェクトは openshift-workspaces になります。この OperatorHub のインストール方法では、CodeReady Workspaces を現在のプロジェクトユーザーにデプロイします。

検証手順

  1. <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>")'
    Copy to Clipboard Toggle word wrap
  2. <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>")'
    Copy to Clipboard Toggle word wrap
  3. 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
    Copy to Clipboard Toggle word wrap

    プラグインレジストリールートの URL を取得します。

    $ oc  get route -l app=che,component=plugin-registry \
      -o 'custom-columns=URL: .spec.host' --no-headers
    Copy to Clipboard Toggle word wrap

  4. 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
    Copy to Clipboard Toggle word wrap

    devfile レジストリールートの URL を取得します。

    $ oc  get route -l app=che,component=devfile-registry \
      -o 'custom-columns=URL: .spec.host' --no-headers
    Copy to Clipboard Toggle word wrap

  5. 値が一致しない場合は、ConfigMap を更新し、CodeReady Workspaces サーバーを再起動します。

    $ oc  edit cm/codeready
    (...)
    $ oc  scale --replicas=0 deployment/codeready
    $ oc  scale --replicas=1 deployment/codeready
    Copy to Clipboard Toggle word wrap

  1. プラグインは、ワークスペースの詳細の Devfile タブの chePlugin コンポーネントの補完で利用できます。

  1. プラグインはワークスペースの Plugin Theia ビューで利用できます。
  2. devfile は、ユーザーダッシュボードの Get Started および Create Custom Workspace タブで利用できます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat