5.4. 使用 PolicyGenTemplate CR 自定义受管集群
使用以下步骤自定义应用于使用 GitOps Zero Touch Provisioning (ZTP) 管道置备的受管集群的策略。
先决条件
- 
						已安装 OpenShift CLI(
oc)。 - 
						已以具有 
cluster-admin权限的用户身份登录到 hub 集群。 - 配置了 hub 集群来生成所需的安装和策略 CR。
 - 您创建了 Git 存储库,用于管理自定义站点配置数据。该存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源仓库。
 
流程
为特定于站点的配置 CR 创建
PolicyGenTemplateCR。- 
								从 
out/argocd/example/policygentemplates文件夹中选择适当的 CR 示例,例如example-sno-site.yaml或example-multinode-site.yaml。 更改示例文件中的
bindingRules字段,使其与SiteConfigCR 中包含的特定于站点的标签匹配。在示例SiteConfig文件中,特定于站点的标签是sites: example-sno。注意确保
PolicyGenTemplatebindingRules字段中定义的标签对应于相关受管集群SiteConfigCR 中定义的标签。- 更改示例文件中的内容,使其与所需配置匹配。
 
- 
								从 
 可选:为应用到集群的任何通用配置 CR 创建一个
PolicyGenTemplateCR。- 
								从 
out/argocd/example/policygentemplates文件夹中选择适合您的 CR 示例,例如common-ranGen.yaml。 - 更改示例文件中的内容,使其与所需配置匹配。
 
- 
								从 
 可选:为应用到团队中特定集群组的任何组配置 CR 创建一个
PolicyGenTemplateCR。确保 overlaid spec 文件的内容与您的预期最终状态匹配。作为参考,out/source-crs 目录包含可用于包含并由您的 PolicyGenTemplate 模板提供的 source-crs 的完整列表。
注意根据集群的特定要求,每个集群类型可能需要一个组策略,特别是考虑示例组策略各自有一个 PerformancePolicy.yaml 文件,如果这些集群是由相同的硬件配置,则只能在一组集群中共享。
- 
								从 
out/argocd/example/policygentemplates文件夹中选择适当的 CR 示例,例如group-du-sno-ranGen.yaml。 - 更改示例文件中的内容,使其与所需配置匹配。
 
- 
								从 
 - 
						可选。当 GitOps ZTP 安装和配置完成后,创建验证器通知策略 
PolicyGenTemplateCR。如需更多信息,请参阅"创建验证器通知策略"。 在 YAML 文件中定义所有策略命名空间,类似于示例
out/argocd/example/policygentemplates/ns.yaml文件。重要不要在带有
PolicyGenTemplateCR 的同一文件中包括NamespaceCR。- 
						将 
PolicyGenTemplateCR 和NamespaceCR 添加到 generators 部分中的kustomization.yaml文件中,类似于out/argocd/example/policygentemplates/kustomization.yaml所示的示例。 在 Git 存储库中提交
PolicyGenTemplateCR、NamespaceCR 和关联的kustomization.yaml文件并推送更改。ArgoCD 管道检测到更改并开始受管集群部署。您可以同时将更改推送到
SiteConfigCR 和PolicyGenTemplateCR。