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. 新規プラグインがプラグインレジストリーに正しく公開されることを確認するには、レジストリーパス /v3/plugins/index.json (または devfile レジストリーの /devfiles/index.json )に要求を実行します。

    $ 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 == "my-plug-in")'
    {
     "id": "my-org/my-plug-in/1.0.0",
     "displayName":"This is my first plug-in for CodeReady Workspaces",
     "version":"1.0.0",
     "type":"VS Code extension",
     "name":"my-plug-in",
     "description":"This plugins shows that we are able to add plugins to the registry...",
     "publisher":"my-org",
     "links": {"self":"/v3/plugins/my-org/my-plug-in/1.0.0"}
    }
    --
    --
    {
     "id": "my-org/my-plug-in/latest",
     "displayName":"This is my first plug-in for CodeReady Workspaces",
     "version":"latest",
     "type":"VS Code extension",
     "name":"my-plug-in",
     "description":"This plugins shows that we are able to add plugins to the registry...",
     "publisher":"my-org",
     "links": {"self":"/v3/plugins/my-org/my-plug-in/latest" }
    }
    Copy to Clipboard Toggle word wrap
  2. CodeReady Workspaces サーバーがレジストリーの URL を参照していることを確認します。これを実行するには、che ConfigMapのCHE_WORKSPACE_PLUGIN__REGISTRY__URL(またはdevfileレジストリーのCHE_WORKSPACE_DEVFILE__REGISTRY__URL)の値を比較します。

    $ oc  get cm/che \
      -o "custom-columns=URL:.data['CHE_WORKSPACE_PLUGIN__REGISTRY__URL']" \
      --no-headers
    URL
    http://che-plugin-registry-che.192.168.99.100.nip.io/v3
    Copy to Clipboard Toggle word wrap

    ルートの URL で以下を行います。

    $ oc  get route -l app=che,component=plugin-registry \
      -o 'custom-columns=URL: .spec.host' --no-headers
    che-plugin-registry-che.192.168.99.100.nip.io
    Copy to Clipboard Toggle word wrap
    1. 一致しない場合は、ConfigMap を更新し、CodeReady Workspaces サーバーを再起動します。

      $ oc  edit cm/che
      (...)
      $ oc  scale --replicas=0 deployment/che
      $ oc  scale --replicas=1 deployment/che
      Copy to Clipboard Toggle word wrap
  3. 新規プラグインレジストリーがデプロイされ、CodeReady Workspaces サーバーがそれらを使用するように設定されている場合、UI は以下の場所に反映されている必要があります。

    1. 新しいプラグインは、ワークスペースの詳細の Devfile タブの chePlugin コンポーネントの補完で利用できます。
    2. 新しいプラグインはワークスペースの Plugin Theia ビューで利用できます。
  4. 新規 devfile レジストリーがデプロイされると、CodeReady Workspaces サーバーがそれらを使用するように設定されている場合、新規の devfile はユーザーダッシュボードの Get Started および Create Custom Workspace タブに表示されます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat