第 4 章 管理 IDE 扩展
IDE 使用扩展或插件来扩展其功能,并且在 IDE 之间管理扩展的机制会有所不同。
4.1. Microsoft Visual Studio Code 的扩展 - 开源
要管理扩展,此 IDE 使用其中一个 Open VSX registry 实例:
-
在 OpenShift Dev Spaces 的
plugin-registry
pod 中运行 Open VSX registry 的嵌入式实例,以支持 air-gapped、offline 和 proxy-restricted 环境。嵌入的 Open VSX 注册表仅包含 open-vsx.org 上发布的扩展的子集。此子集 可自定义。 - 通过互联网访问的公共 open-vsx.org 注册表。
- 部署到可从 OpenShift Dev Spaces 工作区 Pod 访问的网络上的独立 Open VSX registry 实例。
默认为 Open VSX 注册表的嵌入式实例。
4.1.1. 选择 Open VSX 注册表实例
默认为 Open VSX 注册表的嵌入式实例。
如果默认的 Open VSX registry 实例不是您需要的,您可以选择以下实例之一:
-
https://open-vsx.org
中的 Open VSX registry 实例需要访问互联网。 - 部署到可从 OpenShift Dev Spaces 工作区 Pod 访问的网络上的独立 Open VSX registry 实例。
流程
编辑
CheCluster
自定义资源中的openVSXURL
值:spec: components: pluginRegistry: openVSXURL: "<url_of_an_open_vsx_registry_instance>" 1
- 1
- 例如:
openVSXURL: "https://open-vsx.org"
。
提示-
要在
plugin-registry
pod 中选择嵌入的 Open VSX registry 实例,请使用openVSXURL: ''
。您可以自定义包含的扩展的列表。 -
如果从机构的集群内部访问 URL,您也可以将
openVSXURL
指向独立 Open VSX registry 实例的 URL,且不会被代理阻止。
4.1.2. 在嵌入式 Open VSX registry 实例中添加或删除扩展
您可以在嵌入式 Open VSX registry 实例中添加或删除扩展。这会生成 Open VSX 注册表的自定义构建,可在您组织的工作区中使用。
要在 OpenShift Dev Spaces 更新后获取最新的安全修复,请基于 latest 标签或 SHA 重建容器。
流程
获取每个所选扩展的发布程序和扩展名称:
- 在 Open VSX 注册表网站 中找到扩展,并复制扩展列表页面和扩展名版本的 URL。
从复制的 URL 中提取 & lt;publisher > 和 <extension> name:
https://open-vsx.org/extension/<publisher>/<name>
提示如果扩展只能从 Microsoft Visual Studio Marketplace 提供,但没有 Open VSX,您可以要求扩展发布程序,根据 这些说明 在 open-vsx.org 上发布,可能会使用此 GitHub 操作。
如果扩展发布者不可用或不希望将扩展发布到 open-vsx.org,且没有与扩展相对应的 Open VSX,考虑使用向 Open VSX 团队报告问题。
构建自定义插件 registry 镜像并更新 CheCluster 自定义资源:
提示- 在构建过程中,将验证每个扩展是否与 OpenShift Dev Spaces 中使用的 Visual Studio Code 版本兼容。
使用 OpenShift Dev Spaces 实例:
- 以管理员身份登录到 OpenShift Dev Spaces 实例。
创建新的 Red Hat Registry Service Account 并复制用户名和令牌。
- 使用插件 registry 存储库 启动工作区。
打开一个终端,再签出与 OpenShift Dev Spaces 版本对应的 Git 标签(例如,
devspaces-3.15-rhel-8
):git checkout devspaces-$PRODUCT_VERSION-rhel-8
-
打开
openvsx-sync.json
文件并添加或删除扩展。 -
执行
1。登录到工作区中的 registry.redhat.io
任务(TerminalRun Task… devfile 1。登录 registry.redhat.io,并登录到 registry.redhat.io。 -
执行
2。build 和 Publish a Custom Plugin Registry
任务在工作区(TerminalRun Task… devfile 2 中。构建和发布自定义插件 registry。 执行
3。将 Che 配置为使用 Custom Plugin Registry
任务(TerminalRun Task… devfile 3。配置 Che 以使用自定义插件 Registry。 使用 Linux 操作系统:
提示- Podman 和 NodeJS 版本 18.20.3 或更高版本应该安装到系统中。
- 下载或分叉并克隆 Dev Spaces 存储库。
git clone https://github.com/redhat-developer/devspaces.git
+
- 进入插件 registry 子模块:
cd devspaces/dependencies/che-plugin-registry/
+
签出与 OpenShift Dev Spaces 版本对应的标签(如
devspaces-3.15-rhel-8
):git checkout devspaces-$PRODUCT_VERSION-rhel-8
- 创建新的 Red Hat Registry Service Account 并复制用户名和令牌。
登录到 registry.redhat.io :
podman login registry.redhat.io
对于需要添加或删除的每个扩展,编辑
openvsx-sync.json
文件 :-
要添加扩展,请将发布程序、名称和扩展版本添加到
openvsx-sync.json
文件中。 -
要删除扩展,请从
openvsx-sync.json
文件中删除发布者、名称和扩展版本。 使用以下 JSON 语法:
{ "id": "<publisher>.<name>", "version": "<extension_version>" }
提示如果您有一个闭源扩展,或者只为机构内部使用创建的扩展,您可以使用自定义插件 registry 容器可访问的 URL 从
.vsix
文件添加扩展:{ "id": "<publisher>.<name>", "download": "<url_to_download_vsix_file>", "version": "<extension_version>" }
- 在使用资源之前,请阅读 Microsoft Visual Studio Marketplace 使用条款。
-
要添加扩展,请将发布程序、名称和扩展版本添加到
构建插件 registry 容器镜像,并将其发布到容器 registry 中,如 quay.io :
$ ./build.sh -o <username> -r quay.io -t custom
$ podman push quay.io/<username/plugin_registry:custom>
编辑您机构的集群中的
CheCluster
自定义资源以指向镜像(例如在 quay.io上)并保存更改:spec: components: pluginRegistry: deployment: containers: - image: quay.io/<username/plugin_registry:custom> openVSXURL: ''
验证
-
检查
plugin-registry
pod 是否已重启并在运行。 - 重启工作区,并检查工作区 IDE 的 Extensions 视图中的可用扩展。