Argo CD 应用程序
使用 Argo CD 仪表板、oc 工具或 GitOps CLI 在 OpenShift 集群中创建并部署应用程序
摘要
第 1 章 使用 Argo CD 部署 Spring Boot 应用程序 复制链接链接已复制到粘贴板!
使用 Argo CD,您可以使用 Argo CD 仪表板或使用 oc 工具将应用程序部署到 OpenShift Container Platform 集群。
1.1. 使用 Argo CD 仪表板创建应用程序 复制链接链接已复制到粘贴板!
Argo CD 提供了一个仪表板,供您创建应用程序。
先决条件
- 以管理员身份登录到 OpenShift Container Platform 集群。
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
- 已登陆到 Argo CD 实例。
流程
- 在 Argo CD 控制面板中,单击 NEW APP 以添加新 Argo CD 应用。
对于此工作流,使用以下配置创建一个 spring-petclinic 应用程序:
- 应用程序名称
-
spring-petclinic - project
-
default - 同步策略
-
自动 - 仓库 URL
-
https://github.com/redhat-developer/openshift-gitops-getting-started - 修订
-
HEAD - 路径
-
app - 目的地
-
https://kubernetes.default.svc - 命名空间
-
spring-petclinic
- 单击 CREATE 以创建应用程序。
- 打开 Web 控制台的 Administrator 视角,再展开 Administration → Namespaces。
-
搜索并选择命名空间,然后在 Label 字段中输入
argocd.argoproj.io/managed-by=openshift-gitops,以便openshift-gitops命名空间中的 Argo CD 实例可以管理您的命名空间。
1.2. 使用 oc 工具创建应用程序 复制链接链接已复制到粘贴板!
您可以使用 oc 工具在终端中创建 Argo CD 应用程序。
先决条件
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
- 已登陆到 Argo CD 实例。
流程
下载 示例应用程序:
$ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git创建应用程序:
$ oc create -f openshift-gitops-getting-started/argo/app.yaml运行
oc get命令以查看所创建的应用程序:$ oc get application -n openshift-gitops在部署应用程序的命名空间中添加标签,以便
openshift-gitops命名空间中的 Argo CD 实例可以管理它:$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
1.3. 验证 Argo CD 自助行为 复制链接链接已复制到粘贴板!
Argo CD 持续监控已部署应用程序的状态,检测 Git 中指定清单和集群中的实时更改之间的差别,然后自动更正它们。这个行为被称为自我管理。
您可以在 Argo CD 中测试并观察自我管理的行为。
先决条件
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
- 已登陆到 Argo CD 实例。
-
已部署并配置
app-spring-petclinic应用程序示例。
流程
-
在 Argo CD 仪表板中,验证您的应用程序是否具有
Synced状态。 -
点 Argo CD 仪表板中的
app-spring-petclinic标题,查看部署到集群中的应用程序资源。 - 在 OpenShift Container Platform web 控制台中进入 Developer 视角。
修改 Spring PetClinic 部署,并将更改提交到 Git 仓库的
app/目录。Argo CD 将自动将更改部署到集群。- Fork OpenShift GitOps getting started repository。
-
在
deployment.yaml文件中,将failureThreshold值改为5。 在部署集群中,运行以下命令验证
failureThreshold字段更改的值:$ oc edit deployment spring-petclinic -n spring-petclinic
通过修改集群上的部署并扩展到两个容器集来测试自我修复行为,同时在 OpenShift Container Platform Web 控制台中观察应用程序。
运行以下命令修改部署:
$ oc scale deployment spring-petclinic --replicas 2 -n spring-petclinic- 在 OpenShift Container Platform Web 控制台中,请注意部署最多扩展两个 pod,并立即缩减到一个 pod。Argo CD 检测到与 Git 存储库的区别,并在 OpenShift Container Platform 集群中自动修复应用程序。
- 在 Argo CD 仪表板中,点 app-spring-petclinic 标题 → APP DETAILS → EVENTS。EVENTS 选项卡显示以下事件: Argo CD 检测集群中缺少同步部署资源,然后重新同步 Git 存储库进行更正。
第 2 章 使用 GitOps CLI 创建应用程序 复制链接链接已复制到粘贴板!
使用 Argo CD,您可以使用 GitOps argocd CLI 在 OpenShift Container Platform 集群中创建应用程序。
2.1. 使用 GitOps CLI 在默认模式中创建应用程序 复制链接链接已复制到粘贴板!
您可以使用 GitOps argocd CLI 在默认模式中创建应用程序。
先决条件
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
-
已安装 OpenShift CLI(
oc)。 -
已安装 Red Hat OpenShift GitOps
argocdCLI。 - 已登陆到 Argo CD 实例。
流程
获取 Argo CD 服务器的
admin帐户密码:$ ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)获取 Argo CD 服务器 URL:
$ SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')使用
admin帐户密码并用单引号括起来来登录到 Argo CD 服务器:重要用单引号括起密码可确保 shell 不会误解特殊字符,如
$。始终使用单引号括起密码的字面值。$ argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}Example
$ argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testing通过列出所有应用程序,验证您是否可以在默认模式下运行
argocd命令:$ argocd app list如果配置正确,则现有应用程序将使用以下标头列出:
输出示例
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET以默认模式创建应用程序:
$ argocd app create app-spring-petclinic \ --repo https://github.com/redhat-developer/openshift-gitops-getting-started.git \ --path app \ --revision main \ --dest-server https://kubernetes.default.svc \ --dest-namespace spring-petclinic \ --directory-recurse \ --sync-policy automated \ --self-heal \ --sync-option Prune=true \ --sync-option CreateNamespace=true标记
spring-petclinic目标命名空间,使其由openshif-gitopsArgo CD 实例管理:$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"列出可用的应用程序,以确认应用程序已成功创建并重复命令,直到应用程序具有
Healthy和Synced状态:$ argocd app list
2.2. 使用 GitOps CLI 以核心模式创建应用程序 复制链接链接已复制到粘贴板!
您可以使用 GitOps argocd CLI 在 core 模式中创建应用程序。
先决条件
- 您已在 OpenShift Container Platform 集群中安装了 Red Hat OpenShift GitOps Operator。
-
已安装 OpenShift CLI(
oc)。 -
已安装 Red Hat OpenShift GitOps
argocdCLI。
流程
使用
ocCLI 工具登录到 OpenShift Container Platform 集群:$ oc login -u <username> -p <password> <server_url>Example
$ oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443检查
kubeconfig文件中是否正确设置了上下文:$ oc config current-context将当前上下文的默认命名空间设置为
openshift-gitops:$ oc config set-context --current --namespace openshift-gitops设置以下环境变量来覆盖 Argo CD 组件名称:
$ export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-server通过列出所有应用程序,验证您是否可以在
core模式下运行argocd命令:$ argocd app list --core如果配置正确,则现有应用程序将使用以下标头列出:
输出示例
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET以
core模式创建应用程序:$ argocd app create app-spring-petclinic --core \ --repo https://github.com/redhat-developer/openshift-gitops-getting-started.git \ --path app \ --revision main \ --dest-server https://kubernetes.default.svc \ --dest-namespace spring-petclinic \ --directory-recurse \ --sync-policy automated \ --self-heal \ --sync-option Prune=true \ --sync-option CreateNamespace=true标记
spring-petclinic目标命名空间,使其由openshif-gitopsArgo CD 实例管理:$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"列出可用的应用程序,以确认应用程序已成功创建并重复命令,直到应用程序具有
Healthy和Synced状态:$ argocd app list --core