2.8. 使用 ArgoCD 配置 hub 集群
您可以使用一组 ArgoCD 应用程序来配置 hub 集群,每个站点使用 GitOps 零接触置备 (ZTP) 生成所需的安装和策略自定义资源(CR)。
Red Hat Advanced Cluster Management (RHACM) 使用 SiteConfig
CR 为 ArgoCD 生成第 1 天受管集群安装 CR。每个 ArgoCD 应用程序都可以管理最多 300 个 SiteConfig
CR。
先决条件
- 已安装 Red Hat Advanced Cluster Management (RHACM) 和 Red Hat OpenShift GitOps 的 OpenShift Container Platform hub 集群。
-
您已从 GitOps ZTP 插件容器中提取了引用部署,如 "Preparing the GitOps ZTP site configuration repository" 部分所述。提取引用部署会创建以下流程中引用的
out/argocd/deployment
目录。
流程
准备 ArgoCD 管道配置:
- 创建 Git 存储库,其目录结构类似于 example 目录。如需更多信息,请参阅"准备 GitOps ZTP 站点配置存储库"。
使用 ArgoCD UI 配置对存储库的访问。在 Settings 下配置以下内容:
-
Repositories - 添加连接信息。URL 必须以
.git
结尾,例如https://repo.example.com/repo.git
和凭证。 - 证书 - 如果需要,为存储库添加公共证书。
-
Repositories - 添加连接信息。URL 必须以
根据您的 Git 仓库修改两个 ArgoCD 应用程序,
out/argocd/deployment/clusters-app.yaml
和out/argocd/deployment/policies-app.yaml
:-
更新 URL 以指向 Git 存储库。URL 以
.git
结尾,例如https://repo.example.com/repo.git
。 -
targetRevision
表示要监控的 Git 存储库分支。 -
path
用于指定到SiteConfig
和PolicyGenerator
或PolicyGentemplate
CR 的路径。
-
更新 URL 以指向 Git 存储库。URL 以
要安装 GitOps ZTP 插件,使用相关多集群引擎 (MCE) 订阅镜像对 hub 集群中的 ArgoCD 实例进行补丁。自定义您解压到环境的
out/argocd/deployment/
目录中的补丁文件。选择与您的 RHACM 版本匹配的
multicluster-operators-subscription
镜像。表 2.5. multicluster-operators-subscription 镜像版本 OpenShift Container Platform 版本 RHACM 版本 MCE 版本 MCE RHEL 版本 MCE 镜像 4.14, 4.15, 4.16
2.8, 2.9
2.8, 2.9
RHEL 8
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v2.8
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel8:v2.9
4.14, 4.15, 4.16
2.10
2.10
RHEL 9
registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v2.10
重要multicluster-operators-subscription
镜像的版本应与 RHACM 版本匹配。从 MCE 2.10 发行版本开始,RHEL 9 是multicluster-operators-subscription
镜像的基础镜像。在
out/argocd/deployment/argocd-openshift-gitops-patch.json
文件中添加以下配置:{ "args": [ "-c", "mkdir -p /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator && cp /policy-generator/PolicyGenerator-not-fips-compliant /.config/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator/PolicyGenerator" 1 ], "command": [ "/bin/bash" ], "image": "registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v2.10", 2 3 "name": "policy-generator-install", "imagePullPolicy": "Always", "volumeMounts": [ { "mountPath": "/.config", "name": "kustomize" } ] }
对 ArgoCD 实例进行补丁。运行以下命令:
$ oc patch argocd openshift-gitops \ -n openshift-gitops --type=merge \ --patch-file out/argocd/deployment/argocd-openshift-gitops-patch.json
在 RHACM 2.7 及更高版本中,多集群引擎默认启用
cluster-proxy-addon
功能。应用以下补丁来禁用cluster-proxy-addon
功能,并删除负责此附加组件的相关 hub 集群和受管 pod。运行以下命令:$ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type=merge --patch-file out/argocd/deployment/disable-cluster-proxy-addon.json
运行以下命令,将管道配置应用到 hub 集群:
$ oc apply -k out/argocd/deployment