Argo CD 实例
第 1 章 设置 Argo CD 实例
默认情况下,Red Hat OpenShift GitOps 在 openshift-gitops
命名空间中安装 Argo CD 实例,并使用额外的权限来管理某些集群范围的资源。要管理集群配置或部署应用程序,您可以安装和部署新的 Argo CD 实例。默认情况下,任何新实例都只能管理部署它的命名空间中的资源。
1.1. 安装 Argo CD 实例
要管理集群配置或部署应用程序,您可以安装和部署新的 Argo CD 实例。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
- 点 Operators → Installed Operators。
- 从 Project 下拉菜单中选择您要安装 Argo CD 实例的项目。
- 输入实例的 Name。
- 创建外部操作系统路由来访问 Argo CD 服务器。点 Server → Route 并检查 Enabled。
1.2. 为 Argo CD 服务器和存储库服务器启用副本
Argo CD-server 和 Argo CD-repo-server 工作负载是无状态的。要在 pod 中更好地分布工作负载,您可以增加 Argo CD-server 和 Argo CD-repo-server 副本的数量。但是,如果 Argo CD-server 上启用了 pod 横向自动扩展,它会覆盖您设置的副本数。
流程
将
repo
和server
spec 的replicas
参数设置为您要运行的副本数:Argo CD 自定义资源示例
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: repo spec: repo: replicas: <number_of_replicas> server: replicas: <number_of_replicas> route: enabled: true path: / tls: insecureEdgeTerminationPolicy: Redirect termination: passthrough wildcardPolicy: None
1.3. 将资源部署到不同的命名空间中
要允许 Argo CD 管理除安装它外的其他命名空间中的资源,请使用 argocd.argoproj.io/managed-by
标签配置目标命名空间。
流程
配置命名空间:
$ oc label namespace <namespace> \ argocd.argoproj.io/managed-by=<namespace> 1
- 1
- 安装 Argo CD 的命名空间。
1.4. 自定义 Argo CD 控制台链接
在多租户集群中,用户可能需要处理多个 Argo CD 实例。例如,在命名空间中安装 Argo CD 实例后,您可能会在 Console Application Launcher 中找到附加到 Argo CD 控制台链接的不同 Argo CD 实例,而不是在 Console Application Launcher 中找到自己的 Argo CD 实例。
您可以通过设置 DISABLE_DEFAULT_ARGOCD_CONSOLELINK
环境变量来自定义 Argo CD 控制台链接:
-
当您将
DISABLE_DEFAULT_ARGOCD_CONSOLELINK
设置为true
时,Argo CD 控制台链接将永久删除。 -
当您将
DISABLE_DEFAULT_ARGOCD_CONSOLELINK
设置为false
或使用默认值时,Argo CD 控制台链接会被临时删除并在 Argo CD 路由被协调时再次可见。
先决条件
- 以管理员身份登录到 OpenShift Container Platform 集群。
- 已安装 Red Hat OpenShift GitOps Operator。
流程
- 在 Administrator 视角中,进入到 Administration → CustomResourceDefinitions。
- 找到 Subscription CRD 并点它打开它。
- 选择 Instances 选项卡,然后点 openshift-gitops-operator 订阅。
选择 YAML 选项卡并进行自定义:
要启用或禁用 Argo CD 控制台链接,请根据需要编辑
DISABLE_DEFAULT_ARGOCD_CONSOLELINK
的值:apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-gitops-operator spec: config: env: - name: DISABLE_DEFAULT_ARGOCD_CONSOLELINK value: 'true'
第 2 章 Argo CD 自定义资源和组件属性
ArgoCD
自定义资源(CRD)是一个 Kubernetes 自定义资源(CRD),用于描述给定 Argo CD 集群的所需状态,允许您配置组成 Argo CD 集群的组件。
2.1. Argo CD CLI 工具
Argo CD CLI 工具用于通过命令行配置 Argo CD。Red Hat OpenShift GitOps 不支持这个二进制文件。使用 OpenShift Console 配置 Argo CD。
2.2. Argo CD 自定义资源属性
Argo CD 自定义资源由以下属性组成:
Name | 描述 | Default(默认) | Properties |
|
Argo CD 注入应用程序名称的 |
| |
|
|
|
|
| 添加配置管理插件。 |
| |
| Argo CD Application Controller 选项。 |
|
|
| 禁用内置的 admin 用户。 |
| |
| 使用 Google Analytics 跟踪 ID。 |
| |
| 启用发送至 google 分析的散列用户名。 |
| |
| 高可用性选项。 |
|
|
|
| ||
| 显示在进行聊天帮助的文本框中。 |
| |
|
所有 Argo CD 组件的容器镜像。这会覆盖 |
| |
| Ingress 配置选项。 |
| |
| 初始 Git 存储库,将 Argo CD 配置为在创建集群时使用。 |
| |
| 通知控制器配置选项。 |
|
|
| Git 存储库凭证模板,将 Argo CD 配置为在创建集群时使用。 |
| |
| 创建集群时要使用的初始 SSH 已知问题供 Argo CD 使用。 |
| |
|
用于 |
| |
| OIDC 配置作为 Dex 的替代方案。 |
| |
|
添加 |
| |
| Prometheus 配置选项。 |
| |
| RBAC 配置选项。 |
|
|
| Redis 配置选项。 |
|
|
| 自定义资源行为。 |
| |
| 完全忽略整个资源组类别。 |
| |
| 配置要应用哪些资源组/kinds 的配置。 |
| |
| Argo CD Server 配置选项。 |
|
|
| 单点登录选项。 |
|
|
| 启用应用程序状态徽标。 |
| |
| TLS 配置选项。 |
| |
| 启用匿名用户访问。 |
| |
| 用于所有 Argo CD 组件的容器镜像的标签。 | 最新的 Argo CD 版本 | |
| 添加 UI 横幅消息。 |
| |
2.3. 仓库服务器属性
以下属性可用于配置 Repo 服务器组件:
Name | 默认 | 描述 |
|
| 容器计算资源。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Argo CD Repo 服务器的容器镜像。这会覆盖 |
|
与 | 与 Argo CD Repo 服务器一起使用的标签。 |
|
|
Argo CD Repo 服务器使用的日志级别。有效选项包括 |
|
|
Argo CD Repo 服务器使用的日志格式。有效选项为 |
|
|
|
|
| 为仓库服务器工作负载设置的环境。 |
|
|
Argo CD Repo 服务器的副本数。必须大于或等于 |
2.4. 使用 Argo CD 实例启用通知
先决条件
流程
- 导航到 Operators → Installed Operators 页面。
Example
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: openshift-gitops spec: notifications: enabled: true #....
- 点击 Save。
例如:
oc patch argocd openshift-gitops -n openshift-gitops --type merge --patch '{"spec": {"notifications": {"enabled": true}}}'