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.15
$ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p ./out
$ mkdir -p ./outCopy to Clipboard Copied! Toggle word wrap Toggle overflow podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15 extract /home/ztp --tar | tar x -C ./out
$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15 extract /home/ztp --tar | tar x -C ./outCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
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,您必须为其内容创建另一个目录。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
提交目录结构和
kustomization.yaml文件并推送到 Git 存储库。初始推送到 Git 的推送应包含kustomization.yaml文件。
您可以使用 out/argocd/example 下的目录结构作为 Git 存储库结构和内容的参考。该结构包括用于单节点、三节点和标准集群的 SiteConfig 和 PolicyGenTemplate 引用 CR。删除您对未使用集群类型的引用。
对于所有集群类型,您必须:
-
将
source-crs子目录添加到policygentemplate目录。 -
将
extra-manifests目录添加到siteconfig目录中。
以下示例描述了单节点集群网络的一组 CR:
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 的结构:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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/ - custom-manifest/extraManifests: searchPaths: - extra-manifest/1 - custom-manifest/2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑顶级
kustomization.yaml文件,以控制哪些 OpenShift Container Platform 版本处于活跃状态。以下是顶层的kustomization.yaml文件示例:resources: - version_4.13 #- version_4.14
resources: - version_4.131 #- version_4.142 Copy to Clipboard Copied! Toggle word wrap Toggle overflow