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