第 6 章 启用对命名空间范围的 Argo Rollouts 安装的支持


Red Hat OpenShift GitOps 支持 Argo Rollouts 安装的两种模式:

  • 集群范围的安装 (默认):任何命名空间中定义的 Argo Rollouts 自定义资源(CR)由 Argo Rollouts 实例协调。因此,您可以在集群的任意命名空间中使用 Argo Rollouts CR。
  • 命名空间范围的安装 :Argo Rollouts 实例安装在特定命名空间中,并只处理同一命名空间中的 Argo Rollouts CR。这个安装模式包括以下优点:

    • 这个模式不需要集群范围的 ClusterRoleClusterRoleBinding 权限。您可以在单一命名空间中安装和使用 Argo Rollouts,而无需集群权限。
    • 此模式通过将单个 Argo Rollouts 实例的集群范围限制为特定命名空间来提供安全优势。
注意

为了防止意外的权限升级,Red Hat OpenShift GitOps 一次只允许一个模式 Argo Rollout 安装。

要在集群范围的 Argo Rollouts 安装间切换,请完成以下步骤。

6.1. 配置命名空间范围的 Argo Rollouts 安装

要配置命名空间范围的实例 Argo Rollouts 安装,请完成以下步骤。

先决条件

  • 以管理员身份登录到 Red Hat OpenShift GitOps 集群。
  • 您已在 Red Hat OpenShift GitOps 集群上安装了 Red Hat OpenShift GitOps。

流程

  1. 在 Web 控制台的 Administrator 视角中,进入 Administration CustomResourceDefinitions
  2. 搜索 Subscription 并点 Subscription CRD。
  3. Instances 选项卡,然后点 openshift-gitops-operator 订阅。
  4. YAML 选项卡并编辑 YAML 文件。

    1. 指定 NAMESPACE_SCOPED_ARGO_ROLLOUTS 环境变量,并在 .spec.config.env 属性中设置为 true

      配置命名空间范围的 Argo Rollouts 安装示例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-gitops-operator
      spec:
        # (...)
        config:
          env:
            - name: NAMESPACE_SCOPED_ARGO_ROLLOUTS
              value: 'true' 1

      1
      设置为 'true' 可启用命名空间范围的安装。如果值设为 'false' 或没有指定安装,则默认为集群范围的模式。
    2. 点击 Save

      Red Hat OpenShift GitOps Operator 有助于协调命名空间范围的安装中的 Argo Rollouts 自定义资源。

  5. 通过查看 GitOps 容器的日志来验证 Red Hat OpenShift GitOps Operator 是否已启用了命名空间范围的 Argo Rollouts 安装:

    1. 在 Web 控制台的 Administrator 视角中,进入 Workloads Pods
    2. openshift-gitops-operator-controller-manager pod,然后点 Logs 选项卡。
    3. 查找以下日志语句: 在全命名空间范围模式中运行。此声明表示 Red Hat OpenShift GitOps Operator 启用了命名空间范围的 Argo Rollouts 安装。
  6. 创建一个 RolloutManager 资源,以完成命名空间范围的 Argo Rollouts 安装:

    1. 进入 Operators Installed Operators Red Hat OpenShift GitOps,然后点击 RolloutManager 选项卡。
    2. 单击 Create RolloutManager
    3. 选择 YAML 视图 并输入以下片断:

      命名空间范围的 Argo Rollouts 安装的 RolloutManager CR 示例

      apiVersion: argoproj.io/v1alpha1
      kind: RolloutManager
      metadata:
        name: rollout-manager
        namespace: my-application 1
      spec:
        namespaceScoped: true

      1
      指定要安装命名空间范围的 Argo Rollouts 实例的项目名称。
    4. Create

      创建 RolloutManager CR 后,Red Hat OpenShift GitOps 开始将命名空间范围的 Argo Rollouts 实例安装到所选命名空间中。

  7. 验证命名空间范围的安装是否成功。

    1. RolloutManager 选项卡中,确保 RolloutManagers 部分下的 Status 字段是 Phase: Available
    2. RolloutManagers 部分下的 YAML 标签页中检查以下输出,以确保安装成功:

      命名空间范围的 Argo Rollouts 安装 YAML 文件示例

      spec:
        namespaceScoped: true
      status:
        conditions:
          lastTransitionTime: '2024-07-10T14:20:5z`
          message: ''
          reason: Success
          status: 'True' 1
          type: 'Reconciled'
        phase: Available
        rolloutController: Available

      1
      此状态表示命名空间范围 Argo Rollouts 安装已被成功启用。

      如果您试图在集群范围的安装已存在于集群中时安装特定于命名空间的 Argo Rollouts 实例,则会显示错误消息:

      出错信息安装示例

      spec:
        namespaceScoped: true
      status:
        conditions:
         lastTransitionTime: '2024-07-10T14:10:7z`
         message: 'when Subscription has environment variable NAMESPACE_SCOPED_ARGO_ROLLOUTS set to False, there may not exist any namespace-scoped RolloutManagers: only a single cluster-scoped RolloutManager is supported'
         reason: InvalidRolloutManagerScope
         status: 'False' 1
         type: 'Reconciled'
        phase: Failure
        rolloutController: Failure

      1
      此状态表示命名空间范围的 Argo Rollouts 安装没有成功启用。安装默认为集群范围的模式。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.