4.4. 配置 Argo CD 与应用程序递归同步 Git 存储库

4.4.1. 通过部署带有集群配置的应用程序来配置 OpenShift 集群

使用 Red Hat OpenShift GitOps,您可以将 Argo CD 配置为将 Git 目录的内容与包含集群自定义配置的应用程序递归同步。

先决条件

  • 在集群中安装了 Red Hat OpenShift GitOps。

4.4.1.1. 使用您的 OpenShift 凭证登录到 Argo CD 实例

Red Hat OpenShift GitOps Operator 会自动创建一个可用的 Argo CD 实例,可在 openshift-gitops 命名空间中使用。

先决条件

  • 在集群中安装了 Red Hat OpenShift GitOps Operator。

流程

  1. 在 Web 控制台的 Administrator 视角中,导航到 OperatorsInstalled Operators,以验证是否安装了 Red Hat OpenShift GitOps Operator。
  2. 导航到 red hat applications menu icon 菜单 → OpenShift GitOpsCluster Argo CD。Argo CD UI 的登录页面显示在新窗口中。
  3. 获取 Argo CD 实例的密码:

    1. 导航到 web 控制台的 Developer 视角。此时会显示可用项目列表。
    2. 导航到 openshift-gitops 项目。
    3. 使用左侧导航面板导航到 Secrets 页面。
    4. 选择 openshift-gitops-cluster 实例来显示密码。
    5. 复制密码。
  4. 使用此密码和 admin 作为用户名在新窗口中登录到 Argo CD UI。

4.4.1.2. 使用 Argo CD 仪表板创建应用程序

Argo CD 提供了一个仪表板,供您创建应用程序。

此示例工作流逐步指导您完成将 Argo CD 配置为递归将 cluster 目录中的内容同步到 cluster-configs- 应用程序。目录定义 OpenShift Container Platform Web 控制台集群配置,在 web 控制台的 red hat applications menu icon 菜单下添加指向 Red Hat Developer Blog - Kubernetes 的链接,并在集群中定义命名空间 spring-petclinic

流程

  1. 在 Argo CD 控制面板中,单击 NEW APP 以添加新 Argo CD 应用。
  2. 对于此工作流,使用以下配置创建一个 cluster-configs 应用程序:

    应用程序名称
    cluster-configs
    Project(项目)
    default
    同步策略
    Manual
    仓库 URL
    https://github.com/redhat-developer/openshift-gitops-getting-started
    修订
    HEAD
    路径
    集群
    目的地
    https://kubernetes.default.svc
    命名空间
    spring-petclinic
    Directory Recurse
    checked
  3. 单击 CREATE 以创建应用程序。
  4. 打开 Web 控制台的 Administrator 视角,并导航到左侧菜单中的 AdministrationNamespaces
  5. 搜索并选择命名空间,然后在 Label 字段中输入 argocd.argoproj.io/managed-by=openshift-gitops,以便 openshift-gitops 命名空间中的 Argo CD 实例可以管理您的命名空间。

4.4.1.3. 使用 oc 工具创建应用程序

您可以使用 oc 工具在终端中创建 Argo CD 应用程序。

流程

  1. 下载 示例应用程序

    $ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
  2. 创建应用程序:

    $ oc create -f openshift-gitops-getting-started/argo/cluster.yaml
  3. 运行 oc get 命令以查看所创建的应用程序:

    $ oc get application -n openshift-gitops
  4. 在部署应用程序的命名空间中添加标签,以便 openshift-gitops 命名空间中的 Argo CD 实例可以管理它:

    $ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops

4.4.1.4. 将应用程序与 Git 存储库同步

流程

  1. 在 Argo CD 仪表板中,cluster-configs Argo CD 应用程序的状态为 MissingOutOfSync。因为应用程序配置了手动同步策略,所以 Argo CD 不会自动同步。
  2. 单击 cluster-configs 标题上的 SYNC,查看更改,然后单击 SYNCHRONIZE。Argo CD 将自动检测 Git 存储库中的任何更改。如果更改了配置,Argo CD 会将 cluster-configs 的状态改为 OutOfSync。您可以修改 Argo CD 的同步策略,以自动将 Git 存储库中的更改应用到集群。
  3. 现在,cluster-configs Argo CD 应用程序的状态为 HealthySynced。点 cluster-configs 标题检查同步资源的详情及其在集群中的状态。
  4. 导航到 OpenShift Container Platform Web 控制台并点 red hat applications menu icon 以验证现在是否存在到 Red Hat Developer Blog - Kubernetes 的链接。
  5. 导航到 Project 页面并搜索 spring-petclinic 命名空间,以验证它是否已添加到集群中。

    集群配置已成功与集群同步。