11.2. 将新 ConfigMap 更改同步到现有的 PolicyGenerator 或 PolicyGentemplate CR
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
已以具有
cluster-admin
权限的用户身份登录到 hub 集群。 -
您已创建了
PolicyGenerator
或PolicyGentemplate
CR,它使用 hub 集群模板从ConfigMap
CR 中拉取信息。
流程
-
更新
ConfigMap
CR 的内容,并应用 hub 集群中的更改。 要将更新的
ConfigMap
CR 的内容同步到部署的策略中,请执行以下操作之一:选项 1:删除现有策略。ArgoCD 使用
PolicyGenerator
或PolicyGentemplate
CR 立即重新创建已删除的策略。例如,运行以下命令:$ oc delete policy <policy_name> -n <policy_namespace>
选项 2:在每次更新 ConfigMap 时,每次更新
ConfigMap
时,将特殊注解policy.open-cluster-management.io/trigger-update
应用到策略。例如:$ oc annotate policy <policy_name> -n <policy_namespace> policy.open-cluster-management.io/trigger-update="1"
注意您必须应用更新的策略才能使更改生效。如需更多信息,请参阅重新处理的特殊注解。
可选:如果存在,删除包含策略的
ClusterGroupUpdate
CR。例如:$ oc delete clustergroupupgrade <cgu_name> -n <cgu_namespace>
创建新的
ClusterGroupUpdate
CR,其中包含要应用更新的ConfigMap
更改的策略。例如,将以下 YAML 添加到文件cgr-example.yaml
中:apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: <cgr_name> namespace: <policy_namespace> spec: managedPolicies: - <managed_policy> enable: true clusters: - <managed_cluster_1> - <managed_cluster_2> remediationStrategy: maxConcurrency: 2 timeout: 240
应用更新的策略:
$ oc apply -f cgr-example.yaml