5.9. Argo CD Operator


ArgoCD 自定义资源(CRD)是一个 Kubernetes 自定义资源(CRD),用于描述给定 Argo CD 集群的所需状态,允许您配置组成 Argo CD 集群的组件。

5.9.1. Argo CD CLI 工具

Argo CD CLI 工具用于通过命令行配置 Argo CD。Red Hat OpenShift GitOps 不支持这个二进制文件。使用 OpenShift Console 配置 Argo CD。

5.9.2. Argo CD 自定义资源属性

Argo CD 自定义资源由以下属性组成:

Name

描述

default

Properties

ApplicationInstanceLabelKey

Argo CD 注入应用程序名称的 metadata.label 键名称作为一个跟踪标签。

app.kubernetes.io/instance

 

ApplicationSet

ApplicationSet 控制器配置选项。

<Object>

  • <Image> - ApplicationSet 控制器的容器镜像。这会覆盖 ARGOCD_APPLICATIONSET_IMAGE 环境变量。
  • <Version> - ApplicationSet 容器镜像使用的标签。
  • <Resources> - 容器计算资源。
  • <LogLevel> - Argo CD Application Controller 组件使用的日志级别。有效选项包括 debuginfoerrorwarn
  • <LogFormat> - Argo CD Application Controller 组件使用的日志格式。有效选项为 textjson
  • <PrallelismLimit> - 为控制器设置的 kubectl parallelism 限制 (--kubectl-parallelism-limit 标志)

ConfigManagementPlugins

添加配置管理插件。

<empty>

 

Controller

Argo CD Application Controller 选项。

<Object>

  • <Processors.Operation> - 操作处理器数量。
  • <Processors.Status> - 状态处理器数量。
  • <Resources> - 容器计算资源。
  • <LogLevel> - Argo CD Application Controller 组件使用的日志级别。有效选项包括 debuginfoerrorwarn
  • <AppSync> - AppSync 用于控制 Argo CD 应用程序的同步频率
  • <Sharding.enabled> - 在 Argo CD Application Controller 组件中启用分片。此属性用于管理大量集群,以减轻控制器组件的内存压力。
  • <Sharding.replicas> - 用于支持 Argo CD Application Controller 的分片的副本数量。
  • <Env> - 为应用程序控制器工作负载设置的环境。

DisableAdmin

禁用内置的 admin 用户。

false

 

GATrackingID

使用 Google Analytics 跟踪 ID。

<empty>

 

GAAnonymizeusers

启用发送至 google 分析的散列用户名。

false

 

HA

高可用性选项。

<Object>

  • <Enabled> - 为 Argo CD 切换全局的高可用性支持。
  • <RedisProxyImage> - Redis HAProxy 容器镜像。这会覆盖 ARGOCD_REDIS_HA_PROXY_IMAGE 环境变量。
  • <RedisProxyVersion> - 用于 Redis HAProxy 容器镜像的标签。

HelpChatURL

用于获取聊天帮助的 URL(通常是您的 Slack 频道支持)。

https://mycorp.slack.com/argo-cd

 

HelpChatText

显示在进行聊天帮助的文本框中。

现在聊天!

 

Image

所有 Argo CD 组件的容器镜像。这会覆盖 ARGOCD_IMAGE 环境变量。

argoproj/argocd

 

入口

Ingress 配置选项。

<Object>

 

InitialRepositories

初始 Git 存储库,将 Argo CD 配置为在创建集群时使用。

<empty>

 

通知

通知控制器配置选项。

<Object>

  • <Enabled> - 切换启动 notifications-controller。
  • <Image> - 所有 Argo CD 组件的容器镜像。这会覆盖 ARGOCD_IMAGE 环境变量。
  • <Version> - 与 Notifications 容器镜像一起使用的标签。
  • <Resources> - 容器计算资源。
  • <LogLevel> - Argo CD Application Controller 组件使用的日志级别。有效选项包括 debuginfoerrorwarn

RepositoryCredentials

Git 存储库凭证模板,将 Argo CD 配置为在创建集群时使用。

<empty>

 

InitialSSHKnownHosts

创建集群时要使用的初始 SSH 已知问题供 Argo CD 使用。

<default_Argo_CD_Known_Hosts>

 

KustomizeBuildOptions

用于 kustomize build 的构建选项和参数。

<empty>

 

OIDCConfig

OIDC 配置作为 Dex 的替代方案。

<empty>

 

NodePlacement

添加 nodeSelectortolerations

<empty>

 

Prometheus

Prometheus 配置选项。

<Object>

  • <Enabled> - 为 Argo CD 切换全局的 Prometheus 支持。
  • <Host> - 用于 Ingress 或 Route 资源的主机名。
  • <Ingress> - 为 Prometheus 切换 Ingress。
  • <Route> - 路由配置选项。
  • <Size> - Prometheus StatefulSet 的副本数。

RBAC

RBAC 配置选项。

<Object>

  • <DefaultPolicy> - 在 argocd-rbac-cm 配置映射的 policy.default 属性。在授权 API 请求时,Argo CD 将回退到的默认角色的名称。
  • <Policy> - argocd-rbac-cm 配置映射中的 policy.csv 属性。包含用户定义的 RBAC 策略和角色定义的 CSV 数据。
  • <Scopes> - argocd-rbac-cm 配置映射中的 scopes 属性。控制在 RBAC 执行过程中要检查的 OIDC 范围(子范围除外)。

Redis

Redis 配置选项。

<Object>

  • <AutoTLS> - 使用供应商创建 Redis 服务器的 TLS 证书 (one of: openshift)。目前仅适用于 OpenShift Container Platform。
  • <DisableTLSVerification> - 定义 Redis 服务器是否应该使用严格的 TLS 验证进行访问。
  • <Image> - Redis 的容器镜像。这会覆盖 ARGOCD_REDIS_IMAGE 环境变量。
  • <Resources> - 容器计算资源。
  • <Version> - 与 Redis 容器镜像一起使用的标签。

ResourceCustomizations

自定义资源行为。

<empty>

 

ResourceExclusions

完全忽略整个资源组类别。

<empty>

 

ResourceInclusions

配置要应用哪些资源组/kinds 的配置。

<empty>

 

Server

Argo CD Server 配置选项。

<Object>

  • <Autoscale> - 服务器自动扩展配置选项。
  • <ExtraCommandArgs> - Operator 设置的现有参数列表。
  • <GRPC> - GRPC 配置选项。
  • <Host> - 用于 Ingress 或 Route 资源的主机名。
  • <Ingress> - Argo CD 服务器组件的 Ingress 配置。
  • <insecure> - 切换 Argo CD 服务器的 insecure 标志。
  • <Resources> - 容器计算资源。
  • <Replicas> - Argo CD 服务器的副本数量。必须大于或等于 0。如果启用了 Autoscale,则忽略 Replicas
  • <Route> - 路由配置选项。
  • <Service.Type> - 用于服务资源的 ServiceType
  • <Loglevel> - Argo CD Server 组件使用的日志级别。有效选项包括 debuginfoerrorwarn
  • <LogFormat> - Argo CD Application Controller 组件使用的日志格式。有效选项为 textjson
  • <Env> - 为服务器工作负载设置的环境。

SSO

单点登录选项。

<Object>

  • <Image> - Keycloak 的容器镜像。这会覆盖 ARGOCD_KEYCLOAK_IMAGE 环境变量。
  • <Keycloak> - Keycloak SSO 供应商的配置选项。
  • <Dex> - Dex SSO 供应商的配置选项。
  • <Provider> - 配置单点登录的供应商名称。现在,支持的选项有 Dex 和 Keycloak。
  • <Resources> - 容器计算资源。
  • <VerifyTLS> - 与 Keycloak 服务通信时用于强制进行严格的 TLS 检查。
  • <Version> - 与 Keycloak 容器镜像一起使用的标签。

StatusBadgeEnabled

启用应用程序状态徽标。

true

 

TLS

TLS 配置选项。

<Object>

  • <CA.ConfigMapName> - 包含 CA 证书的 ConfigMap 名称。
  • <CA.SecretName> - 包含 CA 证书和密钥的 secret 名称。
  • <InitialCerts> - argocd-tls-certs-cm 配置映射中的初始证书集合,以通过 HTTPS 连接 Git 存储库。

UserAnonyousEnabled

启用匿名用户访问。

true

 

版本

用于所有 Argo CD 组件的容器镜像的标签。

最新的 Argo CD 版本

 

横幅

添加 UI 横幅消息。

<Object>

  • <Banner.Content> - 横幅消息内容(如果显示了横幅,则必需)。
  • <Banner.URL.SecretName> - 横幅消息链接 URL (可选)。

5.9.3. 仓库服务器属性

以下属性可用于配置 Repo 服务器组件:

Name

默认

描述

Resources

<empty>

容器计算资源。

MountSAToken

false

ServiceAccount 令牌是否应挂载到 repo-server pod。

ServiceAccount

""

与 repo-server pod 搭配使用的 ServiceAccount 的名称。

VerifyTLS

false

在与仓库服务器通信时,是否在所有组件上执行严格的 TLS 检查。

AutoTLS

""

用于设置 TLS provider,用于设置 repo-server 的 gRPC TLS 证书(:openshift 之一)。目前仅适用于 OpenShift。

Image

argoproj/argocd

Argo CD Repo 服务器的容器镜像。这会覆盖 ARGOCD_REPOSERVER_IMAGE 环境变量。

版本

.spec.Version 相同

与 Argo CD Repo 服务器一起使用的标签。

LogLevel

info

Argo CD Repo 服务器使用的日志级别。有效选项包括 debug、info、error 和 warn。

LogFormat

text

Argo CD Repo 服务器使用的日志格式。有效选项为 text 或 json。

ExecTimeout

180

呈现工具(如 Helm、Kustomize)的执行超时(如 Helm、Kustomize)。

Env

<empty>

为仓库服务器工作负载设置的环境。

Replicas

<empty>

Argo CD Repo 服务器的副本数。必须大于或等于 0

5.9.4. 使用 Argo CD 实例启用通知

要启用或禁用 Argo CD 通知控制器,在 Argo CD 自定义资源中设置参数。默认情况下禁用通知。要启用通知,在 .yaml 文件中将 enabled 参数设置为 true

流程

  1. enabled 参数设置为 true
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: example-argocd
spec:
  notifications:
    enabled: true
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.