22.2. 为 ZTP 准备 hub 集群
要在断开连接的环境中使用 RHACM,请创建一个镜像 registry,镜像 OpenShift Container Platform 发行镜像和包含所需 Operator 镜像的 Operator Lifecycle Manager (OLM) 目录。OLM 在集群中管理、安装和升级 Operator 及其依赖项。您还可以使用断开连接的镜像主机来提供用于置备裸机主机的 RHCOS ISO 和 RootFS 磁盘镜像。
22.2.1. Telco RAN DU 4.14 验证的软件组件 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 受管集群和 hub 集群中使用以下红帽产品来验证 Red Hatlecommunications RAN DU 4.14 解决方案。
| 组件 | 软件版本 |
|---|---|
| 受管集群版本 | 4.14 |
| Cluster Logging Operator | 5.8 |
| Local Storage Operator | 4.14 |
| PTP Operator | 4.14 |
| SRIOV Operator | 4.14 |
| Node Tuning Operator | 4.14 |
| Logging Operator | 4.14 |
| SRIOV-FEC Operator | 2.7 |
| 组件 | 软件版本 |
|---|---|
| hub 集群版本 | 4.14 |
| GitOps ZTP 插件 | 4.14 |
| Red Hat Advanced Cluster Management (RHACM) | 2.9, 2.10 |
| Red Hat OpenShift GitOps | 1.16 |
| Topology Aware Lifecycle Manager (TALM) | 4.14 |
22.2.2. GitOps ZTP 推荐的 hub 集群规格和受管集群限制 复制链接链接已复制到粘贴板!
使用 GitOps Zero Touch Provisioning (ZTP),您可以在地理分散的区域和网络中管理数千个集群。在实验室环境中,Red Hat Performance and Scale 实验室成功创建和管理了 3500 个虚拟单节点 OpenShift 集群,该集群减少了 DU 配置集。
在实际情况下,您可以管理的集群数量扩展限制将因影响 hub 集群的不同因素而有所不同。例如:
- hub 集群资源
- 可用的 hub 集群主机资源(CPU、内存、存储)是决定 hub 集群可以管理的集群的一个重要因素。分配给 hub 集群的更多资源,它可以容纳更多受管集群。
- hub 集群存储
- hub 集群主机存储 IOPS 评级以及 hub 集群主机是否使用 NVMe 存储可能会影响 hub 集群性能及其可以管理的集群数量。
- 网络带宽和延迟
- hub 集群和受管集群之间的延迟或高延迟网络连接可能会影响 hub 集群管理多个集群的方式。
- 受管集群大小和复杂性
- 受管集群的大小和复杂性也会影响 hub 集群的容量。具有更多节点、命名空间和资源的大型受管集群需要额外的处理和管理资源。同样,具有复杂配置(如 RAN DU 配置集或不同工作负载)的集群可以从 hub 集群中需要更多资源。
- 受管策略数量
- 由 hub 集群管理的策略数量通过绑定到这些策略的受管集群数量进行扩展,是一个重要的因素,决定了可以管理多少个集群。
- 监控和管理工作负载
- RHACM 持续监控和管理受管集群。在 hub 集群中运行的监控和管理工作负载的数量和复杂性可能会影响其容量。密集型监控或频繁协调操作可能需要其他资源,从而可能会限制可管理的集群数量。
- RHACM 版本和配置
- RHACM 的不同版本可能具有不同的性能特性和资源要求。另外,RHACM 的配置设置(如并发协调的数量或健康检查的频率)可能会影响 hub 集群的受管集群容量。
使用以下代表配置和网络规格来开发您自己的 Hub 集群和网络规格。
以下准则仅基于内部实验室基准测试,并不代表完整的实际主机规格。
| 要求 | 描述 |
|---|---|
| 服务器硬件 | 3 x Dell PowerEdge R650 机架服务器 |
| NVMe 硬盘 |
|
| SSD 硬盘 |
|
| 应用的 DU 配置集策略数量 | 5 |
以下网络规格是典型的实际 RAN 网络的代表,并在测试过程中应用于扩展实验室环境。
| 规格 | 描述 |
|---|---|
| 往返时间(RTT)延迟 | 50 ms |
| 数据包丢失 | 0.02% 数据包丢失 |
| 网络带宽限制 | 20 Mbps |
22.2.3. 在断开连接的环境中安装 GitOps ZTP 复制链接链接已复制到粘贴板!
在断开连接的环境中,使用 Red Hat Advanced Cluster Management (RHACM)、Red Hat OpenShift GitOps 和 Topology Aware Lifecycle Manager (TALM) 来管理多个受管集群的部署。
先决条件
-
已安装 OpenShift Container Platform CLI (
oc)。 -
您已以具有
cluster-admin权限的用户身份登录。 您已配置了断开连接的镜像 registry 以在集群中使用。
注意您创建的断开连接的镜像 registry 必须包含 TALM backup 和 pre-cache 镜像的版本,该镜像与 hub 集群中运行的 TALM 版本匹配。spoke 集群必须能够在断开连接的镜像 registry 中解析这些镜像。
流程
- 在 hub 集群上安装 RHACM。请参阅在断开连接的环境中安装 RHACM。
- 在 hub 集群中安装 GitOps 和 TALM。
22.2.4. 在断开连接的镜像主机中添加 RHCOS ISO 和 RootFS 镜像 复制链接链接已复制到粘贴板!
在使用 Red Hat Advanced Cluster Management (RHACM) 在断开连接的环境中安装集群前,您必须首先托管 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像供其使用。使用断开连接的镜像来托管 RHCOS 镜像。
先决条件
- 部署和配置 HTTP 服务器以托管网络上的 RHCOS 镜像资源。您必须能够从计算机以及您创建的机器访问 HTTP 服务器。
RHCOS 镜像可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。您需要 ISO 和 RootFS 镜像在主机上安装 RHCOS。此安装类型不支持 RHCOS QCOW2 镜像。
流程
- 登录到镜像主机。
从 mirror.openshift.com 获取 RHCOS ISO 和 RootFS 镜像,例如:
将所需的镜像名称和 OpenShift Container Platform 版本导出为环境变量:
$ export ISO_IMAGE_NAME=<iso_image_name>1 $ export ROOTFS_IMAGE_NAME=<rootfs_image_name>1 $ export OCP_VERSION=<ocp_version>1 下载所需的镜像:
$ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.14/${OCP_VERSION}/${ISO_IMAGE_NAME} -O /var/www/html/${ISO_IMAGE_NAME}$ sudo wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.14/${OCP_VERSION}/${ROOTFS_IMAGE_NAME} -O /var/www/html/${ROOTFS_IMAGE_NAME}
验证步骤
验证下载的镜像是否成功,并在断开连接的镜像主机上提供,例如:
$ wget http://$(hostname)/${ISO_IMAGE_NAME}输出示例
Saving to: rhcos-4.14.1-x86_64-live.x86_64.iso rhcos-4.14.1-x86_64-live.x86_64.iso- 11%[====> ] 10.01M 4.71MB/s
22.2.5. 启用辅助服务 复制链接链接已复制到粘贴板!
Red Hat Advanced Cluster Management (RHACM)使用辅助服务来部署 OpenShift Container Platform 集群。当您在 Red Hat Advanced Cluster Management (RHACM)上启用 MultiClusterHub Operator 时,辅助服务会自动部署。之后,您需要配置 Provisioning 资源以监视所有命名空间,并更新 AgentServiceConfig 自定义资源(CR)以引用托管在镜像 registry HTTP 服务器上的 ISO 和 RootFS 镜像。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
已以具有
cluster-admin权限的用户身份登录到 hub 集群。 - 启用了 MultiClusterHub 的 RHACM。
流程
-
启用
Provisioning资源,以监视所有命名空间并为断开连接的环境配置镜像。如需更多信息,请参阅启用中央基础架构管理服务。 运行以下命令来更新
AgentServiceConfigCR:$ oc edit AgentServiceConfig在 CR 的
items.spec.osImages字段中添加以下条目:- cpuArchitecture: x86_64 openshiftVersion: "4.14" rootFSUrl: https://<host>/<path>/rhcos-live-rootfs.x86_64.img url: https://<host>/<path>/rhcos-live.x86_64.iso其中:
- <host>
- 是目标镜像 registry HTTP 服务器的完全限定域名 (FQDN)。
- <path>
- 是目标镜像 registry 上镜像的路径。
保存并退出编辑器以应用更改。
22.2.6. 将 hub 集群配置为使用断开连接的镜像 registry 复制链接链接已复制到粘贴板!
您可以将 hub 集群配置为使用断开连接的镜像 registry 作为断开连接的环境。
先决条件
- 已安装 Red Hat Advanced Cluster Management (RHACM) 2.8 的断开连接的 hub 集群安装。
-
您已在 HTTP 服务器中托管
rootfs和iso镜像。有关 Mirroring the OpenShift Container Platform image repository 的信息,请参阅附加资源部分。
如果为 HTTP 服务器启用 TLS,您必须确认 root 证书由客户端信任的颁发机构签名,并验证 OpenShift Container Platform hub 和受管集群和 HTTP 服务器之间的可信证书链。使用配置了不受信任的证书的服务器可防止将镜像下载到创建镜像中。不支持使用不受信任的 HTTPS 服务器。
流程
创建包含镜像 registry 配置的
ConfigMap:apiVersion: v1 kind: ConfigMap metadata: name: assisted-installer-mirror-config namespace: multicluster-engine1 labels: app: assisted-service data: ca-bundle.crt: |2 -----BEGIN CERTIFICATE----- <certificate_contents> -----END CERTIFICATE----- registries.conf: |3 unqualified-search-registries = ["registry.access.redhat.com", "docker.io"] [[registry]] prefix = "" location = "quay.io/example-repository"4 mirror-by-digest-only = true [[registry.mirror]] location = "mirror1.registry.corp.com:5000/example-repository"5 - 1
ConfigMap命名空间必须设置为multicluster-engine。- 2
- 创建镜像 registry 时使用的镜像 registry 证书。
- 3
- 镜像 registry 的配置文件。镜像 registry 配置将镜像信息添加到发现镜像的
/etc/containers/registries.conf文件中。当信息传递给安装程序时,镜像信息会存储在install-config.yaml文件的imageContentSources部分中。在 hub 集群上运行的 Assisted Service pod 从配置的镜像 registry 获取容器镜像。 - 4
- 镜像 registry 的 URL。在配置镜像 registry 时,您必须运行
oc adm release mirror命令使用imageContentSources部分中的 URL。如需更多信息,请参阅 Mirroring the OpenShift Container Platform image repository 部分。 - 5
registries.conf文件中定义的 registry 必须由存储库范围,而不是由 registry 范围。在本例中,quay.io/example-repository和mirror1.registry.corp.com:5000/example-repository存储库都限定了example-repository存储库。
这会更新
AgentServiceConfig自定义资源中的mirrorRegistryRef,如下所示:输出示例
apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent namespace: multicluster-engine1 spec: databaseStorage: volumeName: <db_pv_name> accessModes: - ReadWriteOnce resources: requests: storage: <db_storage_size> filesystemStorage: volumeName: <fs_pv_name> accessModes: - ReadWriteOnce resources: requests: storage: <fs_storage_size> mirrorRegistryRef: name: assisted-installer-mirror-config2 osImages: - openshiftVersion: <ocp_version>3 url: <iso_url>4
集群安装过程中需要一个有效的 NTP 服务器。确保有合适的 NTP 服务器可用,并可通过断开连接的网络从安装的系统访问。
22.2.7. 将 hub 集群配置为使用未经身份验证的 registry 复制链接链接已复制到粘贴板!
您可以将 hub 集群配置为使用未经身份验证的 registry。未经身份验证的 registry 不需要进行身份验证才能访问和下载镜像。
先决条件
- 您已在 hub 集群上安装并配置了 hub 集群,并安装了 Red Hat Advanced Cluster Management (RHACM)。
- 已安装 OpenShift Container Platform CLI (oc)。
-
您已以具有
cluster-admin权限的用户身份登录。 - 已配置了一个未经身份验证的 registry 以用于 hub 集群。
流程
运行以下命令来更新
AgentServiceConfig自定义资源 (CR):$ oc edit AgentServiceConfig agent在 CR 中添加
unauthenticatedRegistries字段:apiVersion: agent-install.openshift.io/v1beta1 kind: AgentServiceConfig metadata: name: agent spec: unauthenticatedRegistries: - example.registry.com - example.registry2.com ...未经身份验证的 registry 在
AgentServiceConfig资源的spec.unauthenticatedRegistries下列出。任何此列表中的 registry 都不需要在用于 spoke 集群安装的 pull secret 中有一个条目。assisted-service通过确保包含用于安装的每个镜像 registry 的身份验证信息来验证 pull secret。
镜像 registry 会自动添加到 ignore 列表中,不需要在 spec.unauthenticatedRegistries 下添加。在 ConfigMap 中指定 PUBLIC_CONTAINER_REGISTRIES 环境变量会用指定的值覆盖默认值。PUBLIC_CONTAINER_REGISTRIES 默认值是 quay.io 和 registry.svc.ci.openshift.org。
验证
运行以下命令,验证您可以从 hub 集群访问新添加的 registry:
在 hub 集群中打开一个 debug shell 提示符:
$ oc debug node/<node_name>运行以下命令测试对未经身份验证的 registry 的访问:
sh-4.4# podman login -u kubeadmin -p $(oc whoami -t) <unauthenticated_registry>其中:
- <unauthenticated_registry>
-
新的 registry,如
unauthenticated-image-registry.openshift-image-registry.svc:5000。
输出示例
Login Succeeded!
22.2.8. 使用 ArgoCD 配置 hub 集群 复制链接链接已复制到粘贴板!
您可以使用一组 ArgoCD 应用程序来配置 hub 集群,每个站点使用 GitOps 零接触置备 (ZTP) 生成所需的安装和策略自定义资源(CR)。
Red Hat Advanced Cluster Management (RHACM) 使用 SiteConfig CR 为 ArgoCD 生成第 1 天受管集群安装 CR。每个 ArgoCD 应用程序都可以管理最多 300 个 SiteConfig CR。
先决条件
- 已安装 Red Hat Advanced Cluster Management (RHACM) 和 Red Hat OpenShift GitOps 的 OpenShift Container Platform hub 集群。
-
您已从 GitOps ZTP 插件容器中提取了引用部署,如 "Preparing the GitOps ZTP site configuration repository" 部分所述。提取引用部署会创建以下流程中引用的
out/argocd/deployment目录。
流程
准备 ArgoCD 管道配置:
- 创建 Git 存储库,其目录结构类似于 example 目录。如需更多信息,请参阅"准备 GitOps ZTP 站点配置存储库"。
使用 ArgoCD UI 配置对存储库的访问。在 Settings 下配置以下内容:
-
Repositories - 添加连接信息。URL 必须以
.git结尾,例如https://repo.example.com/repo.git和凭证。 - 证书 - 如果需要,为存储库添加公共证书。
-
Repositories - 添加连接信息。URL 必须以
根据您的 Git 仓库修改两个 ArgoCD 应用程序,
out/argocd/deployment/clusters-app.yaml和out/argocd/deployment/policies-app.yaml:-
更新 URL 以指向 Git 存储库。URL 以
.git结尾,例如https://repo.example.com/repo.git。 -
targetRevision表示要监控的 Git 存储库分支。 -
path指定到SiteConfig和PolicyGenTemplateCR 的路径。
-
更新 URL 以指向 Git 存储库。URL 以
要安装 GitOps ZTP 插件,使用相关多集群引擎 (MCE) 订阅镜像对 hub 集群中的 ArgoCD 实例进行补丁。自定义您解压到环境的
out/argocd/deployment/目录中的补丁文件。选择与您的 RHACM 版本匹配的
multicluster-operators-subscription镜像。-
对于 RHACM 2.8 和 2.9,请使用
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v<rhacm_version>镜像。 -
对于 RHACM 2.10 及更高版本,请使用
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v<rhacm_version>镜像。
重要multicluster-operators-subscription镜像的版本必须与 RHACM 版本匹配。从 MCE 2.10 发行版本开始,RHEL 9 是multicluster-operators-subscription镜像的基础镜像。在 OpenShift Operator Life Cycles 中的 "Platform Aligned Operators" 表中点
[Expand for Operator list],查看 OpenShift Container Platform 的完整支持的 Operator 列表。-
对于 RHACM 2.8 和 2.9,请使用
在
out/argocd/deployment/argocd-openshift-gitops-patch.json文件中添加以下配置:{ "args": [ "-c", "mkdir -p /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator && cp /policy-generator/PolicyGenerator-not-fips-compliant /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator/PolicyGenerator"1 ], "command": [ "/bin/bash" ], "image": "registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v2.10",2 3 "name": "policy-generator-install", "imagePullPolicy": "Always", "volumeMounts": [ { "mountPath": "/.config", "name": "kustomize" } ] }对 ArgoCD 实例进行补丁。运行以下命令:
$ oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
在 RHACM 2.7 及更高版本中,多集群引擎默认启用
cluster-proxy-addon功能。应用以下补丁来禁用cluster-proxy-addon功能,并删除负责此附加组件的相关 hub 集群和受管 pod。运行以下命令:$ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type=merge --patch-file out/argocd/deployment/disable-cluster-proxy-addon.json运行以下命令,将管道配置应用到 hub 集群:
$ oc apply -k out/argocd/deployment可选:如果您已有 ArgoCD 应用程序,请运行以下命令验证在
Application资源中设置PrunePropagationPolicy=background策略:$ oc -n openshift-gitops get applications.argoproj.io \ clusters -o jsonpath='{.spec.syncPolicy.syncOptions}' |jq现有策略的输出示例
[ "CreateNamespace=true", "PrunePropagationPolicy=background", "RespectIgnoreDifferences=true" ]如果
spec.syncPolicy.syncOption字段没有包含PrunePropagationPolicy参数,或PrunePropagationPolicy设置为foreground值,请在Application资源中将策略设置为background。请参见以下示例:kind: Application spec: syncPolicy: syncOptions: - PrunePropagationPolicy=background
设置
background删除策略可确保ManagedClusterCR 及其所有相关资源都被删除。
22.2.9. 准备 GitOps ZTP 站点配置存储库 复制链接链接已复制到粘贴板!
在使用 GitOps Zero Touch Provisioning (ZTP) 管道前,您需要准备 Git 存储库来托管站点配置数据。
先决条件
- 已配置了 hub 集群 GitOps 应用程序来生成所需的安装和策略自定义资源 (CR)。
- 已使用 GitOps ZTP 部署受管集群。
流程
使用
SiteConfig和PolicyGenTemplateCR 的单独路径创建一个目录结构。注意在单独的目录中,保持
SiteConfig和PolicyGenTemplateCR。SiteConfig和PolicyGenTemplate目录必须包含一个kustomization.yaml文件,该文件明确包含该目录中的文件。使用以下命令,从
ztp-site-generate容器镜像导出argocd目录:$ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.14$ mkdir -p ./out$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.14 extract /home/ztp --tar | tar x -C ./out检查
out目录是否包含以下子目录:-
out/extra-manifest包含SiteConfig用来生成额外清单configMap的源 CR 文件。 -
out/source-crs包含PolicyGenTemplate用来生成 Red Hat Advanced Cluster Management(RHACM)策略的源 CR 文件。 -
out/argocd/deployment包含补丁和 YAML 文件,可在 hub 集群中应用,以便在此过程的下一步中使用。 -
out/argocd/example包含代表推荐的配置的siteConfig和PolicyGenTemplate文件的示例。
-
-
将
out/source-crs文件夹和内容复制到PolicyGentemplate目录。 out/extra-manifests 目录包含 RAN DU 集群的参考清单。将
out/extra-manifests目录复制到SiteConfig文件夹。此目录应包含来自ztp-site-generate容器的 CR。不要在此处添加用户提供的 CR。如果要使用用户提供的 CR,您必须为其内容创建另一个目录。例如:example/ ├── policygentemplates │ ├── kustomization.yaml │ └── source-crs/ └── siteconfig ├── extra-manifests └── kustomization.yaml-
提交目录结构和
kustomization.yaml文件并推送到 Git 存储库。初始推送到 Git 的推送应包含kustomization.yaml文件。
您可以使用 out/argocd/example 下的目录结构作为 Git 存储库结构和内容的参考。该结构包括用于单节点、三节点和标准集群的 SiteConfig 和 PolicyGenTemplate 引用 CR。删除您对未使用集群类型的引用。
对于所有集群类型,您必须:
-
将
source-crs子目录添加到policygentemplate目录。 -
将
extra-manifests目录添加到siteconfig目录中。
以下示例描述了单节点集群网络的一组 CR:
example/
├── policygentemplates
│ ├── common-ranGen.yaml
│ ├── example-sno-site.yaml
│ ├── group-du-sno-ranGen.yaml
│ ├── group-du-sno-validator-ranGen.yaml
│ ├── kustomization.yaml
│ ├── source-crs/
│ └── ns.yaml
└── siteconfig
├── example-sno.yaml
├── extra-manifests/
├── custom-manifests/
├── KlusterletAddonConfigOverride.yaml
└── kustomization.yaml
22.2.9.1. 为独立版本准备 GitOps ZTP 站点配置存储库 复制链接链接已复制到粘贴板!
您可以使用 GitOps ZTP 管理运行不同版本的 OpenShift Container Platform 的受管集群的源自定义资源(CR)。这意味着,在 hub 集群中运行的 OpenShift Container Platform 版本可以独立于受管集群上运行的版本。
流程
-
使用
SiteConfig和PolicyGenTemplateCR 的单独路径创建一个目录结构。 在
PolicyGenTemplate目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个目录。对于每个版本,创建以下资源:-
明确包含该目录中文件的
kustomization.yaml文件 source-crs目录,其中包含ztp-site-generate容器中的引用 CR 配置文件如果要使用用户提供的 CR,必须为它们创建一个单独的目录。
-
明确包含该目录中文件的
在
/siteconfig目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个子目录。对于每个版本,至少创建一个目录,用于从容器中复制引用 CR。对目录命名或引用目录数量没有限制。如果要使用自定义清单,必须为它们创建单独的目录。以下示例描述了对不同 OpenShift Container Platform 版本使用用户提供的清单和 CR 的结构:
├── policygentemplates │ ├── kustomization.yaml1 │ ├── version_4.132 │ │ ├── common-ranGen.yaml │ │ ├── group-du-sno-ranGen.yaml │ │ ├── group-du-sno-validator-ranGen.yaml │ │ ├── helix56-v413.yaml │ │ ├── kustomization.yaml3 │ │ ├── ns.yaml │ │ └── source-crs/4 │ │ └── reference-crs/5 │ │ └── custom-crs/6 │ └── version_4.147 │ ├── common-ranGen.yaml │ ├── group-du-sno-ranGen.yaml │ ├── group-du-sno-validator-ranGen.yaml │ ├── helix56-v414.yaml │ ├── kustomization.yaml8 │ ├── ns.yaml │ └── source-crs/9 │ └── reference-crs/10 │ └── custom-crs/11 └── siteconfig ├── kustomization.yaml ├── version_4.13 │ ├── helix56-v413.yaml │ ├── kustomization.yaml │ ├── extra-manifest/12 │ └── custom-manifest/13 └── version_4.14 ├── helix57-v414.yaml ├── kustomization.yaml ├── extra-manifest/14 └── custom-manifest/15 - 1
- 创建顶级
kustomizationYAML 文件。 - 2 7
- 在自定义
/policygentemplates目录中创建特定于版本的目录。 - 3 8
- 为每个版本创建一个
kustomization.yaml文件。 - 4 9
- 为每个版本创建一个
source-crs目录,使其包含ztp-site-generate容器中的引用 CR。 - 5 10
- 为从 ZTP 容器中提取的策略 CR 创建
reference-crs目录。 - 6 11
- 可选:为用户提供的 CR 创建一个
custom-crs目录。 - 12 14
- 在自定义
/siteconfig目录中创建一个目录,使其包含ztp-site-generate容器的额外清单。 - 13 15
- 创建用于存放用户提供的清单的文件夹。
注意在上例中,自定义
/siteconfig目录中的每个版本子目录包含两个进一步的子目录,一个子目录包含从容器中复制的引用清单,另一个用于您提供的自定义清单。分配给这些目录的名称是示例。如果使用用户提供的 CR,则SiteConfigCR 中的extraManifests.searchPaths下列出的最后一个目录必须是包含用户提供的 CR 的目录。编辑
SiteConfigCR,使其包含您创建的任何目录的搜索路径。extraManifests.searchPaths下列出的第一个目录必须是包含引用清单的目录。考虑列出目录的顺序。如果目录包含相同名称的文件,则最终目录中的文件将具有优先权。SiteConfig CR 示例
extraManifests: searchPaths: - extra-manifest/1 - custom-manifest/2 编辑顶级
kustomization.yaml文件,以控制哪些 OpenShift Container Platform 版本处于活跃状态。以下是顶层的kustomization.yaml文件示例:resources: - version_4.131 #- version_4.142