1.5. 使用 Red Hat OpenShift GitOps 管理策略定义
使用 ArgoCD
资源,您可以使用 Red Hat OpenShift GitOps 通过授予 OpenShift GitOps 访问权限在 Red Hat Advanced Cluster Management hub 集群上创建策略来管理策略定义。
1.5.1. 前提条件 复制链接链接已复制到粘贴板!
您必须登录到您的 hub 集群。
需要的访问权限:集群管理员
已弃用: PlacementRule
1.5.2. 为 OpenShift GitOps 创建 ClusterRole 资源 复制链接链接已复制到粘贴板!
要为 OpenShift GitOps 创建 ClusterRole
资源,可访问创建、读取、更新和删除策略和放置:
从控制台创建
ClusterRole
。您的ClusterRole
可能类似以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,创建一个
ClusterRoleBinding
对象来授予 OpenShift GitOps 服务帐户对openshift-gitops-policy-admin
ClusterRole
对象的访问权限。ClusterRoleBinding
可能类似以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注: - 当使用 OpenShift GitOps 部署 Red Hat Advanced Cluster Management 策略定义时,会在每个受管集群命名空间中创建一个策略副本,以解决 hub 模板的不同。这些副本称为复制策略。- 为了防止 OpenShift GitOps 重复删除此复制策略,或者显示 Argo CD
应用程序
没有同步,argocd.argoproj.io/compare-options:IgnoreExtraneous
注解由 Red Hat Advanced Cluster Management 策略框架自动在每个复制策略上设置。-
Argo CD 使用标签和注解来跟踪对象。对于没有在 Argo CD 中显示复制策略,请在 Red Hat Advanced Cluster Management 策略定义中将
spec.copyPolicyMetadata
设置为false
来禁用 Argo CD 跟踪标签和注解。
1.5.3. 将策略生成器与 OpenShift GitOps 集成 复制链接链接已复制到粘贴板!
您可以使用 OpenShift GitOps 通过 GitOps 使用 Policy Generator 生成策略。由于 OpenShift GitOps 容器镜像中没有预安装 Policy Generator,所以您必须完成自定义。
1.5.3.1. 先决条件 复制链接链接已复制到粘贴板!
- 您必须在 Red Hat Advanced Cluster Management hub 集群上安装 OpenShift GitOps。
- 您必须登录到 hub 集群。
1.5.3.2. 从 OpenShift GitOps 访问策略生成器 复制链接链接已复制到粘贴板!
要从 OpenShift GitOps 访问 Policy Generator,您必须配置 Init 容器,以便从 Red Hat Advanced Cluster Management Application Subscription 容器镜像复制 Policy Generator 二进制文件。您还必须通过在运行 Kustomize 时提供 --enable-alpha-plugins
标志来配置 OpenShift GitOps。
要使用 Policy Generator 创建、读取、更新和删除策略和放置,请授予对 OpenShift GitOps 的 Policy Generator 的访问权限。完成以下步骤:
使用以下命令编辑 OpenShift GitOps
argocd
对象:oc -n openshift-gitops edit argocd openshift-gitops
oc -n openshift-gitops edit argocd openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将 Policy Generator 更新至较新的版本,请将 Init 容器使用的
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9
镜像添加到较新的标签。将 <version
> 参数替换为ArgoCD
资源中的最新 Red Hat Advanced Cluster Management 版本。您的
ArgoCD
资源可能类似以下 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注: 另外,您可以创建一个包含
ArgoCD
清单和模板的ConfigurationPolicy
资源,以匹配MulticlusterHub
中设置的版本:image: '{{ (index (lookup "apps/v1" "Deployment" "open-cluster-management" "multicluster-operators-hub-subscription").spec.template.spec.containers 0).image }}'
image: '{{ (index (lookup "apps/v1" "Deployment" "open-cluster-management" "multicluster-operators-hub-subscription").spec.template.spec.containers 0).image }}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在生成策略前在 Kustomize 目录中启用 Helm chart 处理,请在
spec.repo.env
字段中将POLICY_GEN_ENABLE_HELM
环境变量设置为"true"
:env: - name: POLICY_GEN_ENABLE_HELM value: "true"
env: - name: POLICY_GEN_ENABLE_HELM value: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要创建、读取、更新和删除策略和放置,请创建一个
ClusterRoleBinding
对象来授予 OpenShift GitOps 服务帐户对 Red Hat Advanced Cluster Management hub 集群的访问权限。ClusterRoleBinding
可能类似以下资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4. 其他资源 复制链接链接已复制到粘贴板!
- 请参阅 了解 OpenShift GitOps 文档。