第5章 IDE 拡張機能の管理


IDE は拡張機能またはプラグインを使用して機能を拡張します。拡張機能を管理するメカニズムは IDE によって異なります。

5.1. Microsoft Visual Studio Code の拡張機能 - オープンソース

拡張機能を管理するために、この IDE は次の Open VSX レジストリーインスタンスのいずれかを使用します。

  • エアギャップ環境、オフライン環境、およびプロキシー制限環境をサポートする OpenShift Dev Spaces の プラグインレジストリー Pod で実行される Open VSX レジストリーの組み込みインスタンス。組み込みの Open VSX レジストリーには、open-vsx.org で公開されている拡張機能のサブセットのみが含まれています。このサブセットは カスタマイズ可能 です。
  • インターネット経由でアクセスされるパブリック open-vsx.org レジストリー。
  • OpenShift Dev Spaces ワークスペース Pod からアクセスできるネットワーク上にデプロイされるスタンドアロンの Open VSX レジストリーインスタンス。

デフォルトは、Open VSX レジストリーの埋め込みインスタンスです。

5.1.1. Open VSX レジストリーインスタンスの選択

デフォルトは、Open VSX レジストリーの埋め込みインスタンスです。

デフォルトの Open VSX レジストリーインスタンスが必要なものではない場合は、次のいずれかのインスタンスを選択できます。

  • インターネットへのアクセスを必要とする、https://open-vsx.org の Open VSX レジストリーインスタンス。
  • OpenShift Dev Spaces ワークスペース Pod からアクセスできるネットワーク上にデプロイされるスタンドアロンの Open VSX レジストリーインスタンス。

手順

  • CheCluster カスタムリソースの openVSXURL 値を編集します。

    spec:
      components:
        pluginRegistry:
          openVSXURL: "<url_of_an_open_vsx_registry_instance>" 1
    1
    例: openVSXURL: "https://open-vsx.org"
    重要
    • インターネットから隔離されているエアギャップ環境では https://open-vsx.org を使用することは推奨されません。マルウェア感染やコードへの不正アクセスのリスクを軽減するために、埋め込み型またはセルフホスト型の Open VSX レジストリーを使用し、厳選されたエクステンションセットを利用してください。
    • plugin-registry Pod に組み込まれた Open VSX レジストリーインスタンスを選択するには、openVSXURL: '' を使用します。含まれる拡張機能のリストをカスタマイズ できます。
    • また、その URL が組織のクラスター内からアクセス可能であり、プロキシーによってブロックされていない場合は、スタンドアロンの Open VSX レジストリーインスタンスの URL で openVSXURL を指すこともできます。

5.1.2. 組み込みの Open VSX レジストリーインスタンスでの拡張機能の追加または削除

埋め込まれた Open VSX レジストリーインスタンスの拡張機能を追加または削除できます。これにより、組織のワークスペースで使用できる Open VSX レジストリーのカスタムビルドが作成されます。

ヒント

OpenShift Dev Spaces の更新後に最新のセキュリティー修正を取得するには、最新のタグまたは SHA に基づいてコンテナーを再構築します。

手順

  1. 選択した各拡張機能の発行元と名前を取得します。

    1. Open VSX レジストリー Web サイト で拡張機能を見つけて、拡張機能のリストページの URL と拡張機能のバージョンをコピーします。
    2. コピーした URL から <publisher><extension> の名前を抽出します。

      https://open-vsx.org/extension/<publisher>/<name>
      ヒント

      拡張機能が Microsoft Visual Studio Marketplace からのみ入手可能で、Open VSX からは入手できない場合は、拡張機能の発行者に、これらの 手順 に従って open-vsx.org にも公開するように依頼できます。この GitHub アクション を使用する可能性があります。

      拡張機能の発行者がいない場合や、または拡張機能を open-vsx.org に公開してくれない場合、および拡張機能に相当する Open VSX がない場合は、Open VSX チームに 問題を報告する ことを検討してください。

  2. カスタムプラグインレジストリーイメージをビルドし、CheCluster カスタムリソースを更新します。

    ヒント
    • ビルドプロセス中に、各拡張機能は OpenShift Dev Spaces で使用される Visual Studio Code のバージョンとの互換性が検証されます。
    1. OpenShift Dev Spaces インスタンスを使用する場合は、以下を行います。

      1. 管理者として OpenShift Dev Spaces インスタンスにログインします。

新しい Red Hat Registry Service Account を作成し、ユーザー名およびトークンをコピーします。

  1. plugin registry repository を使用してワークスペースを起動します。
  2. ターミナルを開き、OpenShift Dev Spaces のバージョンに対応する Git タグ (例: devspaces-3.15-rhel-8) をチェックアウトします。

    git checkout devspaces-$PRODUCT_VERSION-rhel-8
  3. openvsx-sync.json ファイルを開き、拡張機能を追加または削除します。
  4. ワークスペースの 1.Login to registry.redhat.io タスクを実行し (Terminal Run Task…​ devfile 1.Login to registry.redhat.io)、registry.redhat.io にログインします。
  5. ワークスペースの 2.Build and Publish a Custom Plugin Registry タスク (Terminal Run Task…​ devfile 2.Build and Publish a Custom Plugin Registry) を実行します。
  6. ワークスペースで 3.Configure Che to use the Custom Plugin Registry タスク (Terminal Run Task…​ devfile 3.Configure Che to use the Custom Plugin Registry) を実行します。

    1. Linux オペレーティングシステムを使用する場合:

      ヒント
      • Podman および NodeJS バージョン 18.20.3 以降がシステムにインストールされている必要があります。
  7. Dev Spaces repository をダウンロードまたはフォークし、クローンを作成します。
git clone https://github.com/redhat-developer/devspaces.git

+

  1. プラグインレジストリーサブモジュールに移動します。
cd devspaces/dependencies/che-plugin-registry/

+

  1. OpenShift Dev Spaces のバージョンに対応するタグ (例: devspaces-3.15-rhel-8) をチェックアウトします。

    git checkout devspaces-$PRODUCT_VERSION-rhel-8
  2. 新しい Red Hat Registry Service Account を作成し、ユーザー名およびトークンをコピーします。
  3. registry.redhat.io にログインします。

    podman login registry.redhat.io
  4. 追加または削除する必要がある拡張機能ごと に、openvsx-sync.json ファイル を編集します。

    • 拡張機能を追加するには、発行元、名前、拡張機能のバージョンを openvsx-sync.json ファイルに追加します。
    • 拡張機能を削除するには、openvsx-sync.json ファイルから発行元、名前、拡張機能のバージョンを削除します。
    • 次の JSON 構文を使用します。

          {
              "id": "<publisher>.<name>",
              "version": "<extension_version>"
          }
      ヒント
      • クローズドソースの拡張機能または社内の内部使用のみを目的として開発された拡張機能がある場合は、カスタムプラグインレジストリーコンテナーにアクセスできる URL を使用して、.vsix ファイルから直接、拡張機能を追加できます。

            {
                "id": "<publisher>.<name>",
                "download": "<url_to_download_vsix_file>",
                "version": "<extension_version>"
            }
      • リソースを使用する前に、Microsoft Visual Studio Marketplace利用規約 をお読みください。
  5. プラグインレジストリーコンテナーイメージをビルドし、quay.io などのコンテナーレジストリーに公開します。

    1. $ ./build.sh -o <username> -r quay.io -t custom
    2. $ podman push quay.io/<username/plugin_registry:custom>
  6. イメージ (quay.io など) を指すように、社内のクラスター内の CheCluster カスタムリソースを編集し、変更を保存します。

    spec:
      components:
        pluginRegistry:
          deployment:
            containers:
              - image: quay.io/<username/plugin_registry:custom>
          openVSXURL: ''

検証

  1. plugin-registry Pod が再始動して実行中であることを確認します。
  2. ワークスペースを再起動し、ワークスペース IDE の 拡張機能 ビューで使用可能な拡張機能を確認します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.