第 6 章 管理 IDE 扩展
IDE 使用扩展或插件来扩展其功能,并且在 IDE 之间管理扩展的机制会有所不同。
6.1. Microsoft Visual Studio Code 的扩展 - 开源 复制链接链接已复制到粘贴板!
要管理扩展,此 IDE 使用其中一个 Open VSX registry 实例:
-
在 OpenShift Dev Spaces 的
plugin-registrypod 中运行 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 注册表的嵌入式实例。
6.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"。
重要- 在 air-gapped 环境中不建议使用 https://open-vsx.org,这会与互联网隔离。为了降低恶意软件推测和未授权访问代码的风险,请使用嵌入式或自托管 Open VSX registry 和一组策展的扩展。
-
要在
plugin-registrypod 中选择嵌入的 Open VSX registry 实例,请使用openVSXURL: ''。您可以自定义包含的扩展的列表。 -
如果从机构的集群内部访问 URL,您也可以将
openVSXURL指向独立 Open VSX registry 实例的 URL,且不会被代理阻止。
6.1.2. 在嵌入式 Open VSX registry 实例中添加或删除扩展 复制链接链接已复制到粘贴板!
您可以通过设置和使用内部的 Open VSX registry 来管理 Visual Studio Code 扩展。这种方法提供了对扩展生命周期的完整控制,启用离线使用并改进合规性。嵌入式插件 registry 将在以后的版本中弃用,Open VSX registry 作为其后续版本。有关详细的设置说明,请参阅 第 6.2 节 “运行 Open VSX On-Premises”。
您可以在嵌入式 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 实例:
重要对于 IBM Power (
ppc64le)和 IBM Z (s390x),自定义插件 registry 应该在对应的架构本地构建。- 以管理员身份登录到 OpenShift Dev Spaces 实例。
创建新的 Red Hat Registry Service Account 并复制用户名和令牌。
- 使用插件 registry 存储库 启动工作区。
-
打开
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。 注意检查
build-config.json文件中的CHE_CODE_VERSION,并在需要时更新它。此变量必须与当前用于 OpenShift Dev Spaces 的编辑器版本匹配。运行
3。将 Che 配置为使用 Custom Plugin Registry任务(TerminalRun Task… devfile 3。配置 Che 以使用自定义插件 Registry。 使用 Linux 操作系统:
提示- Podman 和 NodeJS 版本 18.20.3 或更高版本应该安装到系统中。
下载或分叉并克隆 Plugin 注册表存储库。
git clone https://github.com/redhat-developer/che-plugin-registry.git进入插件 registry 项目目录:
cd che-plugin-registry/- 创建新的 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-registrypod 是否已重启并在运行。 - 重启工作区,并检查工作区 IDE 的 Extensions 视图中的可用扩展。