第 6 章 使用 Helm Chart 在 air-gapped 环境中安装 Orchestrator 插件
您可以使用 Helm Chart 在完全断开连接的或部分断开连接的环境中使用 Orchestrator 插件配置 Red Hat Developer Hub (RHDH)。
您可以使用 Helm Chart 在完全 air-gapped OpenShift Container Platform 环境中使用 Orchestrator 插件安装 Red Hat Developer Hub (RHDH)。
您可以将镜像镜像到中间磁盘,然后从磁盘镜像到目标本地 registry 并应用生成的集群资源。
先决条件
- 已使用本地 registry 设置断开连接的环境。
- 您有将 NPM 软件包推送到受限网络中的 NPM 服务器的权限。
-
已安装
oc-mirror工具,其版本与 OpenShift Container Platform 集群的版本对应。
流程
为
oc-mirror创建ImageSetConfiguration.yaml文件。您必须使用ImageSetConfiguration文件来包括 Serverless Logic Operator 需要的所有镜像,如下例所示:apiVersion: mirror.openshift.io/v2alpha1 kind: ImageSetConfiguration mirror: additionalimages: - name: registry.redhat.io/openshift-serverless-1/logic-jobs-service-postgresql-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-jobs-service-ephemeral-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-data-index-postgresql-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-data-index-ephemeral-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-db-migrator-tool-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-swf-builder-rhel8:1.36.0 - name: registry.redhat.io/openshift-serverless-1/logic-swf-devmode-rhel8:1.36.0 helm: repositories: - name: openshift-charts url: https://charts.openshift.io charts: - name: redhat-developer-hub version: "1.8.1" - name: redhat-developer-hub-orchestrator-infra version: "1.8.1" operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:4.19 # For example: registry.redhat.io/redhat/redhat-operator-index:v4.19 packages: - name: logic-operator-rhel8 channels: - name: alpha minVersion: 1.36.0 maxVersion: 1.36.0 - name: serverless-operator channels: - name: stable minVersion: 1.36.0 maxVersion: 1.36.1另外,您可以使用
podman命令来查找缺少的镜像,并在版本更改时将它们添加到additionalimages列表中:IMG=registry.redhat.io/openshift-serverless-1/logic-operator-bundle:1.36 mkdir local-manifests-osl podman create --name temp-container "$IMG" -c "cat /manifests/logic-operator-rhel8.clusterserviceversion.yaml" podman cp temp-container:/manifests ./local-manifests-osl podman rm temp-container yq -r '.data."controllers_cfg.yaml" | from_yaml | .. | select(tag == "!!str") | select(test("^.\\/.:.*$"))' ./local-manifests-osl/manifests/logic-operator-rhel8-controllers-config_v1_configmap.yaml通过运行
oc-mirror命令,对ImageSetConfiguration.yaml文件中的镜像进行镜像(mirror)。例如:oc-mirror --config=ImageSetConfiguration.yaml file:///path/to/mirror-archive --authfile /path/to/authfile --v2注意oc-mirror命令拉取在ImageSetConfiguration文件中列出的 chart,并使其作为/path/to/mirror-archive目录下的tgz存档提供。应用在推送步骤中生成的集群范围资源,将所有镜像拉取重定向到本地 registry,如下例所示:
cd <workspace folder>/working-dir/cluster-resources/ oc apply -f .-
将生成的镜像存档文件(如
/path/to/mirror-archive/mirror_000001.tar)传送到断开连接的环境中的堡垒主机。 从断开连接的环境中的堡垒主机(可以访问镜像 registry)中,将镜像从存档文件镜像到目标 registry。例如:
oc-mirror --v2 --from <mirror-archive-file> docker://<target-registry-url:port> --workspace file://<workspace folder> --authfile /path/to/authfile其中:
<mirror-archive-file>-
输入传输的
tar文件的名称。 <target-registry-url:port>-
输入您的本地 registry,如
registry.localhost:5000。
使用以下任一方法下载编配器 1.8.2 的节点软件包管理器(NPM)软件包:
从以下 registry 中下载为
tgz文件:- https://npm.registry.redhat.com/@redhat/backstage-plugin-orchestrator/-/backstage-plugin-orchestrator-1.8.2.tgz
- https://npm.registry.redhat.com/@redhat/backstage-plugin-orchestrator-backend-dynamic/-/backstage-plugin-orchestrator-backend-dynamic-1.8.2.tgz
- https://npm.registry.redhat.com/@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic/-/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic-1.8.2.tgz
- https://npm.registry.redhat.com/@redhat/backstage-plugin-orchestrator-form-widgets/-/backstage-plugin-orchestrator-form-widgets-1.8.2.tgz
或者,使用来自 Red Hat NPM registry 的 NPM 软件包,如下例所示:
npm pack "@redhat/backstage-plugin-orchestrator@1.8.2" --registry=https://npm.registry.redhat.com npm pack "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.8.2" --registry=https://npm.registry.redhat.com npm pack "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.8.2 --registry=https://npm.registry.redhat.com npm pack "@redhat/backstage-plugin-orchestrator-form-widgets@1.8.2" --registry=https://npm.registry.redhat.com
将您下载的 NPM 软件包推送到 NPM 服务器,如下例所示:
npm publish backstage-plugin-orchestrator-1.8.2.tgz npm publish backstage-plugin-orchestrator-backend-dynamic-1.8.2.tgz npm publish backstage-plugin-orchestrator-form-widgets-1.8.2.tgz npm publish backstage-plugin-scaffolder-backend-module-orchestrator-dynamic-1.8.2.tgz-
应用
redhat-developer-hub-orchestrator-infraHelm Chart 并批准安装计划。详情请参阅使用 Helm Chart 进行 Air-gapped 安装。 应用 RHDH 1.8 Helm Chart。包含 1.8.1 版本并启用 Orchestrator 插件,如下例所示:
orchestrator.enabled=trueRHDH 1.8 Helm Chart 默认使用完整 URL 引用从官方 Red Hat NPM registry 中拉取 Orchestrator 插件。您必须覆盖此行为以指向本地 registry。
要将 Orchestrator 插件配置为使用自定义 registry,请完成以下步骤:
-
打开
values.yaml文件。 列出
orchestrator.plugins部分下的 Orchestrator 插件软件包。您必须将简化的软件包引用替换为指向自定义 NPM registry 的完整 URL,如下例所示:orchestrator: plugins: - disabled: false package: <custom_NPM_registry_URL>[:<port>]/@redhat/backstage-plugin-orchestrator-backend-dynamic/-/backstage-plugin-orchestrator-backend-dynamic-{product-bundle-version}.tgz integrity: sha512-xxxxxx - disabled: false package: <custom_NPM_registry_URL>[:<port>]/@redhat/backstage-plugin-orchestrator/-/backstage-plugin-orchestrator-{product-bundle-version}.tgz integrity: sha512-xxxxxy - disabled: false package: <custom_NPM_registry_URL>[:<port>]/@redhat/backstage-plugin-orchestrator-form-widgets/-/backstage-plugin-orchestrator-form-widgets-{product-bundle-version}.tgz integrity: sha512-xxxxxz - disabled: false package: <custom_NPM_registry_URL>[:<port>]/@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic/-/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic-{product-bundle-version}.tgz integrity: sha512-xxxx1其中:
<custom_NPM_registry_URL>- 输入自定义 registry 的地址并确保完整性校验和(如 sha512-xxxxxx)与 registry 中的文件匹配。
-
打开
验证
- 重新启动 RHDH Pod,并等待组件正确部署。
- 部署完成后,进入 RHDH UI,并确认 Orchestrator UI 可以访问并正确运行。
Orchestrator UI 的成功访问会确认底层组件正在运行,集群可以识别插件。