第 3 章 在非 control plane 命名空间中管理应用程序资源


作为集群管理员,您可以在 openshift-gitops control plane 命名空间以外的非 control plane 命名空间中创建和管理应用程序资源。此功能在 Argo CD 开源项目的任何命名空间中称为 Applications

注意

作为开发者,如果您要在 openshift-gitops control plane 命名空间以外的非 control plane 命名空间中创建 Argo CD 应用程序,请确保集群管理员为它们授予必要的权限。

否则,在 Argo CD 协调后,您会看到类似以下示例的错误消息:

错误信息示例

error while validating and normalizing app: error getting application's project: application 'app' in namespace 'dev' is not allowed to use project 'default'

要使用这个功能,您必须在以下对象中显式启用和配置目标命名空间:

  • 用户定义的集群范围的 Argo CD 实例的 ArgoCD 自定义资源(CR)
  • AppProject 自定义资源(CR)
  • Application CR

在非 control plane 命名空间中创建和管理应用程序资源的过程由以下步骤组成:

当您要为隔离的团队管理 Argo CD 应用程序部署时,此功能在多租户环境中很有用。

重要

要防止应用程序团队的特权升级,您必须满足以下要求:

  • 不要在任何 privileged AppProject 实例的 .spec.sourceNamespaces 字段中配置非 control plane 命名空间,例如,在 openshift-gitops control plane 命名空间或您定义的命名空间中安装的 AppProject CR 的默认 实例。
  • 不要在 AppProject CRD 中授予对 openshift-gitops control plane 命名空间的访问权限。
  • openshift-gitops control plane 命名空间中始终创建和配置用户定义的 AppProject 实例,然后在对应的用户定义的 AppProject 实例中在 .spec.sourceNamespaces 字段中配置非 control plane 命名空间。

3.1. 先决条件

  • 您已在 OpenShift Container Platform 集群上安装 Red Hat OpenShift GitOps 1.13.0 或更高版本。
  • 在定义的命名空间中有一个用户定义的 集群范围的 Argo CD 实例,如 spring-petclinic 命名空间。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.