2.10. 为独立版本准备 GitOps ZTP 站点配置存储库
您可以使用 GitOps ZTP 管理运行不同版本的 OpenShift Container Platform 的受管集群的源自定义资源(CR)。这意味着,在 hub 集群中运行的 OpenShift Container Platform 版本可以独立于受管集群上运行的版本。
以下流程假设您使用 PolicyGenerator
资源而不是 PolicyGentemplate
资源进行集群策略管理。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录。
流程
-
使用
SiteConfig
和PolicyGenerator
CR 的单独路径创建一个目录结构。 在
PolicyGenerator
目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个目录。对于每个版本,创建以下资源:-
明确包含该目录中文件的
kustomization.yaml
文件 source-crs
目录,其中包含ztp-site-generate
容器中的引用 CR 配置文件如果要使用用户提供的 CR,必须为它们创建一个单独的目录。
-
明确包含该目录中文件的
在
/siteconfig
目录中,为您要提供的每个 OpenShift Container Platform 版本创建一个子目录。对于每个版本,至少创建一个目录,用于从容器中复制引用 CR。对目录命名或引用目录数量没有限制。如果要使用自定义清单,必须为它们创建单独的目录。以下示例描述了对不同 OpenShift Container Platform 版本使用用户提供的清单和 CR 的结构:
├── acmpolicygenerator │ ├── kustomization.yaml 1 │ ├── version_4.13 2 │ │ ├── common-ranGen.yaml │ │ ├── group-du-sno-ranGen.yaml │ │ ├── group-du-sno-validator-ranGen.yaml │ │ ├── helix56-v413.yaml │ │ ├── kustomization.yaml 3 │ │ ├── ns.yaml │ │ └── source-crs/ 4 │ │ └── reference-crs/ 5 │ │ └── custom-crs/ 6 │ └── version_4.14 7 │ ├── common-ranGen.yaml │ ├── group-du-sno-ranGen.yaml │ ├── group-du-sno-validator-ranGen.yaml │ ├── helix56-v414.yaml │ ├── kustomization.yaml 8 │ ├── 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
- 创建顶级
kustomization
YAML 文件。 - 2 7
- 在自定义
/acmpolicygenerator
目录中创建特定于版本的目录。 - 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,则SiteConfig
CR 中的extraManifests.searchPaths
下列出的最后一个目录必须是包含用户提供的 CR 的目录。编辑
SiteConfig
CR,使其包含您创建的任何目录的搜索路径。extraManifests.searchPaths
下列出的第一个目录必须是包含引用清单的目录。考虑列出目录的顺序。如果目录包含相同名称的文件,则最终目录中的文件将具有优先权。SiteConfig CR 示例
extraManifests: searchPaths: - extra-manifest/ 1 - custom-manifest/ 2
编辑顶级
kustomization.yaml
文件,以控制哪些 OpenShift Container Platform 版本处于活跃状态。以下是顶层的kustomization.yaml
文件示例:resources: - version_4.13 1 #- version_4.14 2