第 5 章 部署应用程序并查看安全分析
组织利用结构化的应用程序部署方法,通常涉及开发、预生产和生产阶段。此过程通常是自动化和受定义的规则和触发器的管制。
本指南概述了在 OpenShift GitOps 中通过 ArgoCD 部署应用程序,从而在所有阶段都启用持续部署。ArgoCD 有助于基于 GitOps 的部署策略,将 Git 存储库作为基础架构配置的单一数据源进行读取。此存储库更新会在环境中触发部署。
本指南演示了一个部署方法示例;机构可能会采用适合其工作流的任何方法。
5.1. 将构建提升到预生产环境或生产环境 复制链接链接已复制到粘贴板!
将构建从一个环境提升到另一个环境(如从 development 到 stage 或 production)涉及通过拉取请求(PR)更新 GitOps 存储库。
- 在 RHDH 平台上,选择 Catalog。
- 从 Kind 下拉列表中,选择 Resource,然后选择适当的 GitOps 存储库。
- 在 Overview 选项卡中,选择 View Source。
(可选)选择 Catalog,然后在 Overview 选项卡中选择 View TechDocs
- 在 Home > Repository 部分中,选择 GitOps 存储库。
克隆 GitOps 存储库,再前往
component/<app-name>目录。注意确保本地克隆为最新版本。
- 签出新分支。
-
在存储库中,找到
component/<app-name>/overlays目录,在其中找到开发、stage和prod子目录,各自对应于一个环境。 手动将应用程序从开发环境移到阶段或生产环境。
Expand 移动应用程序 执行此操作 从开发到暂存环境
-
展开
development目录,再选择deployment-patch.yaml。 - 复制容器镜像 URL。例如: quay.io/<username>/<app-name>/imageurl。
-
进入
stage目录,选择deployment-patch.yaml,并将现有容器镜像 URL 替换为复制的目录。
注意如果要提升其他配置更改(例如,副本)除了开发到阶段环境的容器镜像外,请复制
development目录中的deployment-patch.yaml文件中的更改,并将它们粘贴到stage目录中的deployment-patch.yaml文件中。从阶段到生产环境
-
展开
stage目录,再选择deployment-patch.yaml。 - 复制容器镜像 URL。例如: quay.io/<username>/<app-name>/imageurl。
-
前往
prod目录,选择deployment-patch.yaml,并将现有的容器镜像 URL 替换为复制的镜像 URL。
注意如果要提升其他配置更改(例如,副本)除了从阶段到生产环境的容器镜像外,请复制
stage目录中的deployment-patch.yaml文件中的更改,并将它们粘贴到prod目录中的deployment-patch.yaml文件中。-
展开
- 提交并推送您的更新。
创建拉取请求(PR)。此操作将启动一个提升管道运行,用于根据 Red Hat Enterprise Contract (Enterprise Contract)策略验证更新的容器镜像。管道运行以可视化方式表示所有任务,绿色 状态表示成功完成。
- 查看 RHDH 中的 CI 选项卡中的提升管道。
检查并合并 PR。合并 PR 触发器 ArgoCD,然后自动应用必要的更改,将构建提升到下一个环境。
- 查看 RHDH 中的 CD 选项卡中的最新部署更新。它显示应用的当前状态、部署详情、管道运行的作者、提交消息(例如,Promote stage 到 prod),以及容器镜像是否适用于生产环境。
验证
- 要评估应用程序成功提升,请进入 Topology 选项卡。您可以在指定命名空间中查看应用程序的发布。