3.2. 在使用 Helm Chart 的部分断开连接的环境中在 OpenShift Container Platform 上安装 Red Hat Developer Hub
如果您的网络可以访问 registry.redhat.io registry 和 charts.openshift.io Helm Chart 仓库,您可以通过将指定资源直接镜像到目标 registry 来在部分断开连接的环境中部署 Red Hat Developer Hub 实例。
先决条件
- 已安装 Red Hat OpenShift Container Platform 4.14 或更高版本。
-
您可以访问
charts.openshift.ioHelm Chart 仓库。 -
您可以访问
registry.redhat.io。 - 您可以访问可从断开连接的集群访问的镜像 registry,例如:OpenShift Container Platform 镜像 registry。有关公开 OpenShift Container Platform 镜像 registry 的更多信息,请参阅 公开 registry。
- 已登陆到目标镜像 registry,并有将镜像推送到它的权限。如需更多信息,请参阅配置允许镜像镜像的凭证。
-
已在工作站上安装了 OpenShift CLI (
oc)。 -
已安装了 oc-mirror OpenShift CLI (
oc)插件。如需更多信息,请参阅安装 oc-mirror OpenShift CLI 插件。 - 在 Red Hat Developer Portal 中有一个帐户。
流程
运行以下命令,使用 OpenShift CLI (
oc)登录到 OpenShift Container Platform 帐户:oc login -u <user> -p <password> https://api.<hostname>:6443
oc login -u <user> -p <password> https://api.<hostname>:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从断开连接的集群中,登录到您要镜像的镜像 registry,如 OpenShift Container Platform 镜像 registry。
-
创建
ImageSetConfiguration.yaml文件。 在
ImageSetConfiguration.yaml文件中,指定您要镜像的资源。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 包含您要镜像的 Helm chart 的仓库名称,如
openshift-charts。 - 包含您要镜像的 Helm Chart 的仓库的 URL,例如
https://charts.openshift.io。 - 包含您要镜像的镜像的 Helm Chart 名称,如
redhat-developer-hub。 - 要使用的 Red Hat Developer Hub 版本,如
1.6
通过运行
oc-mirror命令,将镜像设置配置文件中指定的资源直接镜像到目标 registry。例如:oc-mirror --config=<mirror_config_directory>/ImageSetConfiguration.yaml <target-mirror-registry>
oc-mirror --config=<mirror_config_directory>/ImageSetConfiguration.yaml <target-mirror-registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<mirror_config_directory>-
指定系统上镜像设置配置文件的位置,如
.user。 <target_mirror_registry>-
指定目标镜像 registry 的位置和名称,如
docker://registry.example:5000。
注意运行
oc-mirror命令会创建一个包含 Helm Chart 和ImageContentSourcePolicy(ICSP)清单的本地工作区。ICSP 清单包含一个自动生成的imageContentSourcePolicy.yaml文件,您必须在以后的步骤中对集群应用该文件。输出示例
Writing image mapping to oc-mirror-workspace/results-1738070846/mapping.txt Writing ICSP manifests to oc-mirror-workspace/results-1738070846
Writing image mapping to oc-mirror-workspace/results-1738070846/mapping.txt Writing ICSP manifests to oc-mirror-workspace/results-1738070846Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在工作区中,通过运行
ls命令找到imageContentSourcePolicy.yaml文件。例如:ls <workspace_directory>/<results_directory>
ls <workspace_directory>/<results_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<workspace_directory>-
指定工作区目录的名称,如
oc-mirror-workspace。 <results_directory>-
指定结果目录的名称,例如
results-1738070846。
要镜像 Helm Chart,请通过运行
oc apply命令在断开连接的集群中部署imageContentSourcePolicy.yaml文件。例如:oc apply -f <workspace_directory>/<results_directory>/ImageContentSourcePolicy.yaml
oc apply -f <workspace_directory>/<results_directory>/ImageContentSourcePolicy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<workspace_directory>-
指定工作区目录的名称,如
oc-mirror-workspace。 <results_directory>-
指定结果目录的名称,例如
results-1738070846。
在 air-gapped 环境中,通过运行带有
namespace和set选项的helm install命令,将 Helm Chart 部署到您要使用的命名空间中。例如:CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/[.]*\.//') helm install <rhdh_instance> <workspace_directory>/<results_directory>/charts/<archive_file> --namespace <your_namespace> --create-namespace \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE"CLUSTER_ROUTER_BASE=$(oc get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/[.]*\.//') helm install <rhdh_instance> <workspace_directory>/<results_directory>/charts/<archive_file> --namespace <your_namespace> --create-namespace \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<rhdh_instance>-
指定 Red Hat Developer Hub 实例的名称,如
my-rhdh。 <workspace_directory>-
指定工作区目录的名称,如
oc-mirror-workspace。 <results_directory>-
指定结果目录的名称,例如
results-1738070846。 <archive_file>-
指定包含您要镜像资源的归档文件的名称,如
redhat-developer-hub-1.4.1.tgz。 <your_namespace>-
指定要将 Helm Chart 部署到的命名空间,如
my-rhdh-project。