Argo CD 应用程序集
在非 control plane 命名空间中管理应用程序设置资源
摘要
第 1 章 在非 control plane 命名空间中管理应用程序设置资源 复制链接链接已复制到粘贴板!
非 control plane 命名空间中的 Argo CD 应用程序设置只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
通过使用应用程序集,您可以声明性地从单个 mono-repository 到多个集群的部署,同时具有更大的灵活性来自动管理多个 Argo CD 应用程序部署。
在 Red Hat OpenShift GitOps 1.12 及之后的版本中,作为集群管理员,您可以通过在非 control plane 命名空间中声明(除 openshift-gitops control plane 命名空间外)中创建和管理 ApplicationSet 资源,根据您的要求明确启用和配置 ArgoCD 和 ApplicationSet 自定义资源(CR)。当您想为隔离的团队管理 Argo CD 应用程序部署时,此功能在多租户环境中特别有用。此功能在 Argo CD 开源项目的任何命名空间功能 中称为 ApplicationSet。
生成的 Argo CD 应用程序可以在任何非 control plane 命名空间中创建资源。但是,应用程序本身将与应用程序设置资源位于同一个命名空间中。
1.1. 先决条件 复制链接链接已复制到粘贴板!
-
在定义的命名空间中有一个用户定义的 集群范围的 Argo CD 实例。例如,
spring-petclinic命名空间。 -
您已在
ArgoCDCR 中 显式启用并配置了 目标命名空间,以管理非 control plane 命名空间中的应用程序资源。
1.2. 在非 control plane 命名空间中启用应用程序设置资源 复制链接链接已复制到粘贴板!
作为集群管理员,您可以定义一组特定的非 control plane 命名空间,用户可以在其中创建、更新和协调 ApplicationSet 资源。您必须根据要求明确启用并配置 ArgoCD 和 ApplicationSet 自定义资源(CR)。
流程
将
applicationSetspec 的sourceNamespaces参数设置为包含非 control plane 命名空间:Argo CD 自定义资源示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意目前,
.spec.applicationSet.sourceNamespaces字段不支持使用通配符(*)。验证 GitOps Operator 是否创建或修改以下基于角色的访问控制(RBAC)资源:
Expand Name Kind 用途 <argocd_name>-<argocd_namespace>-argocd-applicationset-controllerClusterRole和ClusterRoleBinding对于 Argo CD ApplicationSet Controller,以观察和列出集群级别的
ApplicationSet资源<argocd_name>-<argocd_namespace>-applicationsetRole和RoleBinding对于 Argo CD ApplicationSet Controller,以管理目标命名空间中的
ApplicationSet资源<argocd_name>-<target_namespace>Role和RoleBinding要使 Argo CD 服务器通过 UI、API 或 CLI 管理目标命名空间中的
ApplicationSet资源注意Operator 将
argocd.argoproj.io/applicationset-managed-by-cluster-argocd标签添加到目标命名空间。
1.3. 允许源代码管理器供应商 复制链接链接已复制到粘贴板!
请仔细阅读本节。错误配置可能会导致潜在的安全问题。
在非 control plane 命名空间中允许 ApplicationSet 资源,可能会导致通过 Source Code Manager (SCM) Provider 或 Pull Request (PR) generators 中的恶意 API 端点扩展 secret。为了防止未授权访问敏感信息,Operator 会默认禁用 SCM 提供程序和 PR 生成器作为预防措施。
流程
要使用 SCM 提供程序和 PR 生成器,请明确定义允许的 SCM 提供程序列表:
Argo CD 自定义资源示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的 SCM 提供者的 URL 列表。
如果您使用不在允许的 SCM 提供者列表中的 URL,Argo CD ApplicationSet Controller 将拒绝它。